claude-memory/graph/decisions/decision-fish-configfish-exports-shellbinbash-for-tool-compa-acfad6.md
2026-02-27 22:53:40 -06:00

1.9 KiB

id type title tags importance confidence created updated relations
acfad6b5-9a2c-4e51-9525-04b4c4112e69 decision Decision: fish config.fish exports SHELL=/bin/bash for tool compatibility
fish
bash
dotfiles
workstation
shell
config
0.6 0.8 2026-02-27T05:55:50.719305+00:00 2026-02-28T04:53:40.764907+00:00
target type direction strength edge_id
6b1ef7c1-547f-4a79-aad7-23a720378c03 RELATED_TO incoming 0.9 694e662f-01cf-4826-a2c9-6da4c843d3bb
target type direction strength edge_id
66bac9cf-1b1e-42f5-903d-d28a9d5e1e1a BUILDS_ON outgoing 0.9 a77fc3a3-fc45-4ea6-9a1a-2b4eb80eba64
target type direction strength edge_id
055aea5f-7084-48ae-a096-69ee1c35e114 RELATED_TO outgoing 0.8 ae5397cb-cbe5-4864-9646-c9ecdf6f054d
target type direction strength edge_id
fba35b41-aced-4f74-ae01-dfa062df0764 RELATED_TO incoming 0.95 9d15e63e-b70c-4ed3-b2b0-63c0aa8c0c3b

Decision: fish config.fish exports SHELL=/bin/bash for tool compatibility

Decision

~/.config/fish/config.fish has set -x SHELL /bin/bash on line 1.

Rationale

Tools that spawn subshells based on $SHELL (tmux panes, editors like Neovim, some scripts) will use bash rather than fish. Fish is the interactive shell for Cal's terminal experience, but bash remains the scripting/subshell language. This avoids breakage in tools that assume POSIX-ish shell behaviour when they read $SHELL.

Scope

  • Fish is the interactive login shell (set via chsh)
  • Bash is the subshell/scripting shell (exported via $SHELL)
  • Claude Code is unaffected — it spawns its own internal bash regardless of the user's $SHELL

Do Not Change

Do not update this line to /usr/bin/fish. If tooling issues arise with bash subshells, investigate the specific tool rather than removing this override.

File

/home/cal/.config/fish/config.fish, line 1