Summary
ClaudeBar's binary locator should support users whose default shell is Nushell, Fish, or other non-POSIX shells.
Problem
BinaryLocator currently assumes POSIX shell syntax when running which and reading $PATH. Users with Nushell as their login shell experience failures because:
- Nushell's built-in
which outputs tables instead of plain paths
- Nushell uses
$env.PATH (a list) instead of $PATH (a colon-separated string)
This prevents ClaudeBar from finding CLI tools installed via nix-darwin, Homebrew, or other package managers for Nushell users.
Proposed Solution
Introduce a Shell enum that encapsulates shell-specific behavior:
- Detect shell type from
$SHELL environment variable
- Generate appropriate
which command syntax per shell
- Generate appropriate PATH retrieval command per shell
- Parse shell-specific output formats
Supported Shells
| Shell |
which Command |
PATH Command |
| POSIX (bash, zsh) |
which <tool> |
echo $PATH |
| Fish |
which <tool> |
echo $PATH |
| Nushell |
^which <tool> |
$env.PATH | str join ':' |
Acceptance Criteria
🤖 This issue was generated with AI assistance using Claude Opus 4.5 (latest).
Summary
ClaudeBar's binary locator should support users whose default shell is Nushell, Fish, or other non-POSIX shells.
Problem
BinaryLocatorcurrently assumes POSIX shell syntax when runningwhichand reading$PATH. Users with Nushell as their login shell experience failures because:whichoutputs tables instead of plain paths$env.PATH(a list) instead of$PATH(a colon-separated string)This prevents ClaudeBar from finding CLI tools installed via nix-darwin, Homebrew, or other package managers for Nushell users.
Proposed Solution
Introduce a
Shellenum that encapsulates shell-specific behavior:$SHELLenvironment variablewhichcommand syntax per shellSupported Shells
whichCommandwhich <tool>echo $PATHwhich <tool>echo $PATH^which <tool>$env.PATH | str join ':'Acceptance Criteria
$SHELLenvironment variable🤖 This issue was generated with AI assistance using Claude Opus 4.5 (latest).