# ccswitch **Repository Path**: xiaodongchen08/ccswitch ## Basic Information - **Project Name**: ccswitch - **Description**: ccswitch claude code API KEY切换工具 - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-04-27 - **Last Updated**: 2026-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Claude 配置切换工具 (ccSwitch) 一个简洁的命令行工具,用于在不同的 Claude API 提供商之间快速切换配置。 **命令名称**: `ccswitch` ## 功能特性 - **双模式支持**: 环境变量模式 + settings.json 模式(支持热重载) - **配置文件驱动**: 使用 `conf/*.conf` 文件管理配置 - **交互式选择**: 输入名称或序号即可切换 - **多模型支持**: 每个配置支持多个模型 - **配置持久化**: 自动保存,新终端自动加载 - **自动补全**: Zsh 和 Bash 均支持 Tab 补全 - **跨平台**: 支持 macOS 和 Linux,兼容 bash 3.2+ 和 zsh - **安全**: 文件权限 600,保护密钥 - **零依赖**: 仅需系统自带的 Python3(JSON 模式) ## 安装 ```bash git clone https://github.com/your-username/ccSwitch.git cd ccSwitch ./install.sh ``` 安装过程中会: 1. 检测你的 Shell 类型(zsh/bash) 2. 检测 Python3 是否可用 3. 让你选择工作模式(env/json) 4. 创建配置目录和示例配置 5. 自动添加到 Shell 配置文件 ## 工作模式 工具支持两种工作模式: ### 1. 环境变量模式 (env) - 通过设置 `ANTHROPIC_*` 环境变量来配置 Claude Code - 需要重启 Claude Code 才能生效 - 适合习惯使用环境变量的用户 ### 2. settings.json 模式 (json) - **推荐** - 直接修改 `~/.claude/settings.json` 配置文件 - 支持**热重载**,切换后立即生效,无需重启 - 配置更持久,不受终端会话影响 - 需要系统安装 Python3(macOS 和现代 Linux 都自带) **切换模式:** ```bash ccswitch mode # 查看当前模式 ccswitch mode json # 切换到 JSON 模式 ccswitch mode env # 切换到环境变量模式 ``` ## 命令 ### 切换配置 ```bash ccswitch use ali # 使用 ali 配置 ccswitch use volc # 使用 volc 配置 ccswitch use 2 # 使用第 2 个配置 ``` ### 交互式选择 ```bash ccswitch ``` 会显示可用配置列表,输入名称或序号即可切换。 ### 列出所有配置 ```bash ccswitch list ``` 输出示例: ``` 📋 可用配置: *[1] ali - 阿里云百炼 (支持 3 个模型) [2] volc - 火山云 Ark (支持 3 个模型) 当前: ali | 模型: MiniMax-M2.5 ``` ### 添加新配置 ```bash ccswitch add ``` 交互式添加新配置,按提示输入配置信息。 ### 删除配置 ```bash ccswitch remove # 交互式选择要删除的配置 ccswitch remove ali # 直接删除 ali 配置 ``` 指定配置名时直接确认,未指定时显示交互式列表。 ### 其他命令 ```bash ccswitch status # 显示当前配置和工作模式 ccswitch mode # 查看当前工作模式 ccswitch mode json # 切换到 JSON 模式 ccswitch clear # 清理配置 ccswitch help # 显示帮助 ``` ### 自动补全 (Zsh / Bash) ```bash ccswitch # 显示可用命令 ccswitch use # 显示可用配置 ``` ## 配置文件 配置文件位于 `~/.config/claude/conf/*.conf`: ```bash # ali.conf NAME=ali DISPLAY_NAME=阿里云百炼 URL=https://dashscope.aliyuncs.com/api/v2/apps/claude-code-proxy AUTH_TYPE=token KEY=sk-your-key MODELS=MiniMax-M2.5,moonshotai/Kimi-K2-Instruct-0905,glm-4.5 ``` ### 配置项说明 | 字段 | 说明 | |------|------| | NAME | 配置标识符(与文件名一致) | | DISPLAY_NAME | 显示名称 | | URL | API 端点 URL | | AUTH_TYPE | 认证类型:`token` 或 `apikey` | | KEY | API 密钥 | | MODELS | 支持的模型列表,用逗号分隔 | ## 工作原理 ### 环境变量模式 (env) - 配置文件 `~/.config/claude/conf/*.conf` 存储所有配置模板 - 状态文件 `~/.config/claude/api_choice` 保存当前选择(配置名|模型名) - 模式文件 `~/.config/claude/mode` 保存工作模式 - 脚本每次 source 时自动读取状态并设置环境变量 - 设置的环境变量:`ANTHROPIC_BASE_URL`、`ANTHROPIC_API_KEY`(或 `ANTHROPIC_AUTH_TOKEN`)、`ANTHROPIC_MODEL` - **需要重启 Claude Code 生效** ### settings.json 模式 (json) - 推荐 - 配置文件 `~/.config/claude/conf/*.conf` 存储所有配置模板 - 状态文件 `~/.config/claude/api_choice` 保存当前选择 - 模式文件 `~/.config/claude/mode` 保存工作模式 - 使用 Python3 直接修改 `~/.claude/settings.json` 文件 - Claude Code 会自动监听文件变化并重载配置 - **支持热重载,切换后立即生效** ## 文件结构 ``` ~/.config/claude/ ├── conf/ │ ├── ali.conf # 阿里云百炼配置 │ └── volc.conf # 火山云 Ark 配置 ├── api_choice # 当前选择 (配置名|模型名) ├── mode # 工作模式 (env/json) └── claude-config.sh # 主脚本 ~/.claude/ └── settings.json # Claude Code 配置文件(JSON 模式使用) ``` ## 使用建议 1. **推荐使用 JSON 模式**:支持热重载,切换后立即生效 2. **首次安装**:建议选择 JSON 模式(安装时的默认选项) 3. **已有配置**:可以使用 `ccswitch mode json` 切换到 JSON 模式 4. **无 Python 环境**:自动降级到环境变量模式 ## 常见问题 ### Q: 切换配置后 Claude Code 没有生效? - **env 模式**:需要重启 Claude Code - **json 模式**:应该立即生效,如未生效请检查 `~/.claude/settings.json` 是否正确更新 ### Q: 如何在两种模式之间切换? ```bash ccswitch mode json # 切换到 JSON 模式 ccswitch mode env # 切换到环境变量模式 ``` ### Q: JSON 模式需要什么依赖? 只需要系统自带的 Python3,macOS 和现代 Linux 都已预装。 ### Q: 两种模式可以同时使用吗? 不建议。选择一种模式后,建议一直使用该模式,避免配置冲突。