[FEATURE] Allow users to configure which shell the Bash tool uses or inherit initial shell
### Preflight Checklist - [x] I have searched [existing requests](https://github.com/anthropics/claude-code/issues?q=is%3Aissue%20label%3Aenhancement) and this feature hasn't been requested yet - [x] This is a single feature request (not multiple features) ### Problem Statement Claude Code's Bash tool currently uses the system's default shell rather than respecting the shell environment it was launched from. On macOS, it uses zsh even when explicitly launched with fish, for example, losing access to PATHs, aliases, etc. It's impractical to maintain two shell environments (e.g., ensuring PATHs and ENV are identical) when one is never used interactively. I use fish for development work in iterm but cannot change the system default via chsh because macOS system updates can fail when anything but zsh is set as the default shell (reported it to Apple years ago, no fix). ### Proposed Solution Claude Code should respect the shell environment it was launched from at the very least. When I run `SHELL=/opt/homebrew/bin/fish claude`, the Bash tool should use fish shell, not the system default. Ideally, users could configure their preferred shell via a slash command. The interface could show which shell is actually being used, and commands should execute in that shell environment. ### Alternative Solutions I've tried every workaround I can think of other than `chsh` because it's not an option. I spent $20 on a claude code session trying to find workarounds, nothing worked. ###
Posted by jspiro on Sep 12, 2025, 2:46 AM
Tags
Related issues
- [BUG] Cowork (Windows): all Plan9 shares fail with "Plan9 mount failed: invalid argument" after Windows update KB5124008 (26200.9445) — uninstalling the KB fixe
- Feature Request: Auto-resume CLI session when usage limit resets
- Please deobfuscate the Python
- [Bug] MLX version of Gemma 4 26B fails to load: "Model type gemma4 not supported" (macOS)
- # 233 Developers Discussed Abandoning the Office Add-in Platform — An Open Letter on the Office.js Stability, Security & Trust Crisis
- Admin Materials and Surfaces
Raise real-world problems, find people facing the same issue, and discuss solutions.2,000 issues0 comments
reliability (Software)
[BUG] Cowork (Windows): all Plan9 shares fail with "Plan9 mount failed: invalid argument" after Windows update KB5124008 (26200.9445) — uninstalling the KB fixe
Feature Request: Auto-resume CLI session when usage limit resets
Please deobfuscate the Python
[Bug] MLX version of Gemma 4 26B fails to load: "Model type gemma4 not supported" (macOS)
# 233 Developers Discussed Abandoning the Office Add-in Platform — An Open Letter on the Office.js Stability, Security & Trust Crisis
[FEATURE] Allow users to configure which shell the Bash tool uses or inherit initial shell
Admin Materials and Surfaces
AMD Support
[FEATURE] Allow users to configure which shell the Bash tool uses or inherit initial shell
### Preflight Checklist - [x] I have searched [existing requests](https://github.com/anthropics/claude-code/issues?q=is%3Aissue%20label%3Aenhancement) and this feature hasn't been requested yet - [x] This is a single feature request (not multiple features) ### Problem Statement Claude Code's Bash tool currently uses the system's default shell rather than respecting the shell environment it was launched from. On macOS, it uses zsh even when explicitly launched with fish, for example, losing access to PATHs, aliases, etc. It's impractical to maintain two shell environments (e.g., ensuring PATHs and ENV are identical) when one is never used interactively. I use fish for development work in iterm but cannot change the system default via chsh because macOS system updates can fail when anything but zsh is set as the default shell (reported it to Apple years ago, no fix). ### Proposed Solution Claude Code should respect the shell environment it was launched from at the very least. When I run `SHELL=/opt/homebrew/bin/fish claude`, the Bash tool should use fish shell, not the system default. Ideally, users could configure their preferred shell via a slash command. The interface could show which shell is actually being used, and commands should execute in that shell environment. ### Alternative Solutions I've tried every workaround I can think of other than `chsh` because it's not an option. I spent $20 on a claude code session trying to find workarounds, nothing worked. ###
Comments (0)
No comments yet. Start the discussion.