github / github/copilot-cli

Feature Request: Load user shell configuration files when executing commands

オープン
#1,131 コメント 1 件 リアクション 2 件 担当者 0 名 GitHub で見る
area:non-interactive area:tools
主要言語
Shell
スター
11.2k
フォーク
1.9k
平均マージ
14時間 16分
マージ済み PR(30日)
6

説明

### 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

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。