Feature Request: Load user shell configuration files when executing commands
- Vorherrschende Sprache
- Shell
- Sterne
- 11.2k
- Forks
- 1.9k
- Ø Merge
- 14 Std. 16 Min.
- Gemergte PRs (30 T.)
- 6
Beschreibung
### Describe the feature or problem you'd like to solve
Commands executed via the `!` prefix or `bash` tool don't load user shell configuration files (.zshrc, .zprofile, .bashrc), causing PATH issues, missing aliases/functions, and inconsistent behavior with the user's normal terminal environment.
### Proposed solution
Allow users to specify which shell to use when executing commands, and have that shell load the user's configuration files.
How it benefits Copilot CLI and its users:
- Consistency: Commands behave the same way in Copilot CLI as in the user's normal terminal
- Zero configuration: Users can immediately access their existing shell setup without duplicating configurations
- Team productivity: Teams with standardized shell configurations can use them seamlessly
- Developer experience: Reduces friction and cognitive load when switching between terminal and Copilot CLI
- Tool compatibility: Modern development tools (version managers, containerization tools, etc.) work out of the box
Implementation approach:
- Respect the $SHELL environment variable to determine which shell to use
- Or provide a configuration option to specify the preferred shell
- Invoke the shell in interactive/login mode to load rc files (e.g., `zsh -l -i -c "command"` instead of `sh -c "command"`)
### Example prompts or workflows
1. Custom PATH from .zshrc
User has custom tooling paths defined in .zshrc:
# ~/.zshrc
export PATH="$HOME/.local/bin:$PATH"
export PATH="/opt/homebrew/bin:$PATH"
With this feature: `! mytool --version` would automatically access tools in the custom PATH.
2. Team-specific aliases
Development team uses shared zsh aliases:
# ~/.zshrc
alias dc='docker-compose'
alias k='kubectl'
### Additional context
- GitHub Copilot CLI version: v0.0.395
- Operating System: macOS
- Current workaround:
- Manually use `! zsh -l -i -c "command"` for each command
- Or define environment variables in .zshenv (loaded in non-interactive mode, but not standard for most users)
- Impact: This affects any user who has customized their shell environment, which is common practice in software development
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.