claude-code-model-switch
v2.2.0
Published
Launch Claude Code with preconfigured model environments
Readme
Claude Code Model Switch (CCMS)
A CLI tool for switching between different AI models in Claude Code.
🚀 Features
- Launch Claude Code with a preconfigured model in one command (yolo mode)
- Support for multiple pre-configured model environments
startinjects model config as env vars;configpersists to settings.jsonsharedenv vars apply to all models (model-specific values override shared)- Automatic handling of model-related environment variables and defaults
- Simple command-line interface
unsetremoves model-related entries from settings.json
📦 Installation
npm install -g claude-code-model-switch🛠️ Usage
Basic Commands
# Launch Claude Code with the specified model (yolo mode enabled)
ccms start deepseek-chat
# Pass extra arguments directly to claude
ccms start deepseek-chat -p "hello"
# Write model configuration to ~/.claude/settings.json
ccms config deepseek-chat
# List all available models
ccms list
# Show configuration file paths
ccms config-path
# Remove model-related configuration from settings.json
ccms unset
# Manage shared environment variables for all models
ccms shared list
ccms shared set API_TIMEOUT_MS 600000
ccms shared unset API_TIMEOUT_MSModel Configuration
Edit the configuration file ~/.claude-code-model-switch/settings.json:
{
"shared": {
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"API_TIMEOUT_MS": "600000"
},
"models": {
"deepseek-chat": {
"ANTHROPIC_AUTH_TOKEN": "sk-your-token-here",
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
"ANTHROPIC_MODEL": "deepseek-chat",
"ANTHROPIC_SMALL_FAST_MODEL": "deepseek-chat",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-chat",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-chat",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "8192",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
},
"claude-3-5-sonnet": {
"ANTHROPIC_AUTH_TOKEN": "your-anthropic-token-here",
"ANTHROPIC_BASE_URL": "https://api.anthropic.com",
"ANTHROPIC_MODEL": "claude-3-5-sonnet-20241022",
"ANTHROPIC_SMALL_FAST_MODEL": "claude-3-haiku-20240307",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-3-5-sonnet-20241022",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-3-opus-20240229",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "8192",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "0"
}
}
}⚙️ Configuration
Environment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| ANTHROPIC_AUTH_TOKEN | ✅ | - | API authentication token |
| ANTHROPIC_BASE_URL | ✅ | - | API base URL |
| ANTHROPIC_MODEL | ✅ | - | Main model name |
| ANTHROPIC_SMALL_FAST_MODEL | ❌ | Same as ANTHROPIC_MODEL | Small fast model |
| ANTHROPIC_DEFAULT_SONNET_MODEL | ❌ | Same as ANTHROPIC_MODEL | Default Sonnet model |
| ANTHROPIC_DEFAULT_OPUS_MODEL | ❌ | Same as ANTHROPIC_MODEL | Default Opus model |
| CLAUDE_CODE_MAX_OUTPUT_TOKENS | ❌ | 8192 | Maximum output tokens |
| CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC | ❌ | 1 | Disable non-essential traffic |
Special Rules
- start command:
ccms start <model>injects model config as environment variables and launchesclaudewith--dangerously-skip-permissions(yolo mode) - config command:
ccms config <model>writes model config to~/.claude/settings.jsonfor persistent configuration - shared env vars: variables in
sharedapply to every model; model-specific values override shared ones - Default Values:
CLAUDE_CODE_MAX_OUTPUT_TOKENSdefaults to8192CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICdefaults to1- Unset model fields automatically use the value of
ANTHROPIC_MODEL
- Configuration File: Empty configuration file
{"shared": {}, "models": {}}is automatically created on first run - Unset Command:
ccms unsetremoves only model-specific variables fromsettings.jsonand restores official models
📁 File Locations
- Model configuration file:
~/.claude-code-model-switch/settings.json - Claude Code settings file (used by
config/unset):~/.claude/settings.json
🔧 Development
# Clone repository
git clone https://github.com/musnows/claude-code-model-switch.git
cd claude-code-model-switch
# Install dependencies
npm install
# Global link (for development)
npm link📄 License
MIT License
🤝 Contributing
Issues and Pull Requests are welcome!
🔗 Repository
https://github.com/musnows/claude-code-model-switch
