The installer respects your shell configuration and offers multiple integration methods.
curl -fsSL https://raw.githubusercontent.com/FlorianBruniaux/cc-copilot-bridge/main/install.sh | bashThe installer will:
- Download
claude-switchto~/bin/ - Create
~/.claude/aliases.shwith all aliases - ASK if you want automatic
.zshrcmodification
Default choice: Manual setup (option 2)
Automatic (if you chose option 1 during install):
# Already added to your .zshrc/.bashrc:
source ~/.claude/aliases.shManual:
echo 'source ~/.claude/aliases.sh' >> ~/.zshrc
source ~/.zshrcAdd to your .zshrc:
# Claude Code Multi-Provider
antigen bundle ~/.claude/aliases.shThen reload:
source ~/.zshrcCreate a custom plugin:
ln -s ~/.claude/aliases.sh $ZSH_CUSTOM/plugins/claude-switch.plugin.zshAdd to .zshrc plugins:
plugins=(... claude-switch)Reload:
source ~/.zshrcAdd to .zshrc:
zinit light ~/.claude/aliases.shAdd to .zshrc:
zgen load ~/.claude/aliases.shAdd to ~/.config/sheldon/plugins.toml:
[plugins.claude-switch]
local = "~/.claude"
use = ["aliases.sh"]If you prefer to review before running:
mkdir -p ~/bin
curl -fsSL https://raw.githubusercontent.com/FlorianBruniaux/cc-copilot-bridge/main/claude-switch -o ~/bin/claude-switch
chmod +x ~/bin/claude-switchmkdir -p ~/.claude
curl -fsSL https://raw.githubusercontent.com/FlorianBruniaux/cc-copilot-bridge/main/scripts/generate-aliases.sh -o ~/.claude/generate-aliases.sh
bash ~/.claude/generate-aliases.shRemove all components:
# Remove script
rm ~/bin/claude-switch
# Remove aliases file
rm ~/.claude/aliases.sh
# Remove from shell config (if auto-installed)
# Edit ~/.zshrc or ~/.bashrc and remove:
# source ~/.claude/aliases.sh
# Remove logs (optional)
rm ~/.claude/claude-switch.logccd- Anthropic Directccc- GitHub Copilot (default: Claude Sonnet 4.5)cco- Ollama Local (default: devstral-small-2)ccs- Status check (all providers)
ccc-opus- Claude Opus 4.5ccc-sonnet- Claude Sonnet 4.5ccc-haiku- Claude Haiku 4.5ccc-gpt- GPT-4.1ccc-gemini- Gemini 2.5 Proccc-gemini3- Gemini 3 Flash Previewccc-gemini3-pro- Gemini 3 Pro Preview
cco-devstral- Devstral Small 2 (best agentic)cco-granite- IBM Granite4 Small (70% less VRAM)
ccunified- Launch unified copilot-api forkccc-codex- GPT-5.2 Codexccc-codex-mini- GPT-5.1 Codex Mini
The aliases file adds ~/bin to your PATH:
export PATH="$HOME/bin:$PATH"If you already manage your PATH elsewhere, you can remove this line from ~/.claude/aliases.sh.
Respects your configuration management:
- No surprise modifications to
.zshrc/.bashrc - Works with modern plugin managers (antigen, oh-my-zsh, zinit)
- Single source of truth:
~/.claude/aliases.sh - Easy to disable: just don't source the file
- Easy to customize: edit one file
Clean uninstall:
- Remove one line from shell config
- Delete one directory (
~/.claude) - No scattered modifications
Symptoms: command not found: ccd
Solution: You need to source the aliases file. See Integration Methods above.
Symptoms: ccc already exists (e.g., Clear Compiled Cache)
Solution: Edit ~/.claude/aliases.sh and rename conflicting aliases:
alias cccode='claude-switch copilot' # Instead of cccSymptoms: Antigen doesn't recognize ~/.claude/aliases.sh
Solution: Antigen expects .plugin.zsh extension. Create a symlink:
ln -s ~/.claude/aliases.sh ~/.claude/claude-switch.plugin.zsh
antigen bundle ~/.claude/claude-switch.plugin.zsh