The cleanest way to install claude-switch - no script execution, proper dependency management, easy updates.
# Add tap
brew tap FlorianBruniaux/tap
# Install
brew install cc-copilot-bridge
# Enable shell aliases
eval "$(claude-switch --shell-config)"Recommended - Add to ~/.zshrc or ~/.bashrc:
# Claude Code Multi-Provider
eval "$(claude-switch --shell-config)"Or with lazy loading:
# Claude Code Multi-Provider (lazy load)
if command -v claude-switch &> /dev/null; then
eval "$(claude-switch --shell-config)"
fibrew update
brew upgrade claude-switchbrew uninstall claude-switch
brew untap FlorianBruniaux/tap# Download latest release
VERSION="1.5.3" # Check releases page for latest
wget https://github.com/FlorianBruniaux/cc-copilot-bridge/releases/download/v${VERSION}/claude-switch_${VERSION}.deb
# Install
sudo dpkg -i claude-switch_${VERSION}.deb
# Install dependencies if missing
sudo apt-get install -f
# Enable shell aliases
eval "$(claude-switch --shell-config)"Add to ~/.bashrc or ~/.zshrc:
# Claude Code Multi-Provider
eval "$(claude-switch --shell-config)"# Download new version
VERSION="1.5.3" # New version
wget https://github.com/FlorianBruniaux/cc-copilot-bridge/releases/download/v${VERSION}/claude-switch_${VERSION}.deb
sudo dpkg -i claude-switch_${VERSION}.debsudo dpkg -r claude-switch# Download latest release
VERSION="1.5.3" # Check releases page for latest
wget https://github.com/FlorianBruniaux/cc-copilot-bridge/releases/download/v${VERSION}/claude-switch-${VERSION}-1.noarch.rpm
# Install
sudo rpm -i claude-switch-${VERSION}-1.noarch.rpm
# Enable shell aliases
eval "$(claude-switch --shell-config)"Add to ~/.bashrc or ~/.zshrc:
# Claude Code Multi-Provider
eval "$(claude-switch --shell-config)"# Download new version
VERSION="1.5.3" # New version
wget https://github.com/FlorianBruniaux/cc-copilot-bridge/releases/download/v${VERSION}/claude-switch-${VERSION}-1.noarch.rpm
sudo rpm -U claude-switch-${VERSION}-1.noarch.rpmsudo rpm -e claude-switchAdvantages: Always up-to-date with script updates, no file to maintain Disadvantages: Slight shell startup delay (~10ms)
# ~/.zshrc or ~/.bashrc
eval "$(claude-switch --shell-config)"Advantages: Faster shell startup, can customize aliases Disadvantages: Manual updates when aliases change
# Generate once
claude-switch --shell-config > ~/.claude/aliases.sh
# Add to ~/.zshrc or ~/.bashrc
source ~/.claude/aliases.shAdvantages: Zero startup delay, loads only when needed Disadvantages: Slight delay on first use
# ~/.zshrc or ~/.bashrc
claude-switch() {
unfunction claude-switch
eval "$(command claude-switch --shell-config)"
claude-switch "$@"
}# Generate static file
claude-switch --shell-config > ~/.claude/aliases.sh
# Add to ~/.zshrc
antigen bundle ~/.claude/aliases.sh# Create plugin
mkdir -p $ZSH_CUSTOM/plugins/claude-switch
claude-switch --shell-config > $ZSH_CUSTOM/plugins/claude-switch/claude-switch.plugin.zsh
# Add to ~/.zshrc plugins
plugins=(... claude-switch)| Feature | Package Managers | Curl Install |
|---|---|---|
| Dependency Management | ✅ Automatic (netcat, etc.) | ❌ Manual check |
| Updates | ✅ brew upgrade, apt upgrade |
❌ Re-run script |
| Uninstall | ✅ Clean removal | |
| System Integration | ✅ Standard paths | ~/bin |
| Security | ✅ Signed packages (distro) | |
| Shell Config | ✅ eval "$(claude-switch --shell-config)" |
.zshrc |
| Distribution | ✅ Official packages | ❌ GitHub only |
Homebrew:
# Verify install
brew list claude-switch
# Check PATH
echo $PATH | grep -o '/usr/local/bin'
# Reload shell
source ~/.zshrcDebian/Ubuntu:
# Verify install
dpkg -l | grep claude-switch
# Check path
which claude-switch
# Should be: /usr/local/bin/claude-switchRHEL/Fedora:
# Verify install
rpm -qa | grep claude-switch
# Check path
which claude-switchSolution: You need to enable shell config
# Test immediately
source <(claude-switch --shell-config)
# Add permanently
echo 'eval "$(claude-switch --shell-config)"' >> ~/.zshrc
source ~/.zshrcHomebrew - Dependency issues:
# Update Homebrew
brew update
# Install dependencies manually
brew install netcatDebian/Ubuntu - Dependency issues:
# Fix broken dependencies
sudo apt-get install -f
# Install netcat manually
sudo apt-get install netcatRHEL/Fedora - Dependency issues:
# Install netcat (nmap-ncat)
sudo dnf install nmap-ncat
# or
sudo yum install nmap-ncat- Familiar workflow: Same commands as other tools (
brew install,apt install) - Dependency management: Automatic netcat, proper PATH setup
- Easy updates:
brew upgrade,apt upgrade- no re-running scripts - Clean uninstall: Remove cleanly without leftover files
- System integration: Works with system package managers
- No repository push needed: GitHub Actions builds packages automatically
- Distro maintainers handle distribution: Community can package for Arch, Nix, etc.
- Homebrew tap: Users install via
brew tap FlorianBruniaux/tap - CI/CD friendly: Automated builds on tag push
- LLM-assisted: Easy to explain to Claude: "install via brew/apt/rpm"
If you previously used curl | bash installer:
# Remove script
rm ~/bin/claude-switch
# Remove old aliases file (if exists)
rm ~/.claude/aliases.sh
# Remove from shell config
# Edit ~/.zshrc or ~/.bashrc and remove:
# source ~/.claude/aliases.shChoose your platform above (Homebrew, .deb, or .rpm)
# Add to ~/.zshrc or ~/.bashrc
eval "$(claude-switch --shell-config)"source ~/.zshrc # or ~/.bashrcDone! Your aliases (ccd, ccc, cco) should work.
Community contributions welcome for:
- Arch Linux (AUR package)
- Nix/NixOS (nixpkgs)
- Chocolatey (Windows)
- Scoop (Windows)
- MacPorts (macOS alternative to Homebrew)
See CONTRIBUTING.md for guidelines.