github / github/copilot-cli

Feature Request: Load user shell configuration files when executing commands

Abierto
#1,131 1 comentario 2 reacciones 0 asignados Ver en GitHub
area:non-interactive area:tools
Lenguaje dominante
Shell
Estrellas
11.2k
Forks
1.9k
Merge medio
14 h 16 min
PR fusionados (30 d)
6

Descripción

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

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.