Add `nu` (nushell) as a supported value for `defaultShell`

Resolved 💬 2 comments Opened May 12, 2026 by zalewskigrzegorz Closed Jun 11, 2026

Feature request

defaultShell in settings.json currently accepts only "bash" and "powershell". Please add "nu" (or a more general "use $SHELL" option) so users whose login shell is nushell can run !-prefixed input-box commands in their actual shell.

Why

Nushell is increasingly common as a daily-driver shell on macOS/Linux. When my $SHELL=/opt/homebrew/bin/nu and I type !apilogs (where apilogs is a nu alias/custom command), Claude Code routes it through bash/zsh, which doesn't know about my nu aliases — so the command fails with command not found.

Current workarounds are clunky:

  • !nu -c "apilogs" for every invocation
  • Convert every nu alias into a standalone executable script

Proposed behavior

"defaultShell": "nu" would invoke commands via nu -c "<command>" (or equivalent), letting users keep their existing nu aliases and custom commands.

Notes

  • This only needs to affect the ! input-box path. The Bash tool (used by the model) can keep requiring POSIX semantics — hooks, jq pipelines, etc. rely on it.
  • Similarly, hook shell field could optionally accept "nu", but that's a separate, lower-priority ask.

Environment

  • Claude Code on macOS (Darwin 25.4.0)
  • Shell: /opt/homebrew/bin/nu

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗