claude-code-switcher 0.6.2

A CLI tool for managing Claude Code setting snapshots and templates
claude-code-switcher-0.6.2 is not a library.
Visit the last successful build: claude-code-switcher-0.4.1

Claude Code Switcher

一个用于管理 Claude Code 设置快照和模板的 CLI 工具(v0.5.0),让你轻松在不同的 AI 提供商之间切换。

🎯 核心特性

  • 🔄 一键切换:在多个 AI 提供商之间无缝切换
  • 📦 预设模板:内置 DeepSeek、智谱 GLM、MiniMax、Kimi 等热门 AI 提供商模板
  • 💾 快照功能:保存和恢复你的配置组合(支持 env/common/all 三种作用域)
  • 🌍 环境隔离:项目级和全局配置分离存储
  • 🔐 安全存储:加密保存 API 密钥,支持多凭证管理
  • 🧩 模块化架构:易于扩展支持新的 AI 提供商
  • 🎨 统一选择器:一致的交互体验和友好的取消处理

🚀 快速开始

安装

方法一:从 crates.io 安装

cargo install claude-code-switcher

方法二:从源码安装

git clone https://github.com/Cupnfish/claude-code-switcher.git
cd claude-code-switcher
cargo install --path .

安装完成后,使用 ccs --help 验证安装:

ccs --help

💡 基本使用

1. 应用预设模板(推荐)

# 智谱 GLM(强烈推荐) - 支持 256K 上下文
ccs apply zai
# 别名:glm, zhipu

# MiniMax - Anthropic 兼容,性能出色
ccs apply minimax

# DeepSeek - 高性价比,响应快速
ccs apply deepseek
# 别名:ds

# Kimi For Coding - 专注编程场景
ccs apply kimi

# Moonshot K2 - 大上下文平衡性能
ccs apply k2
# 别名:moonshot

# K2 Thinking - 高速推理
ccs apply k2-thinking

# KatCoder Pro - 专业编程 AI
ccs apply kat-coder-pro
# 别名:katpro

# KatCoder Air - 轻量级快速响应
ccs apply kat-coder-air
# 别名:katair

凭证管理:首次使用模板时,工具会提示输入 API 密钥。选择保存后,密钥会存储在本地,下次使用自动加载。

2. 管理凭证

# 列出所有保存的凭证
ccs credentials list
# 或简写:ccs creds list

# 删除指定凭证(使用 ID)
ccs credentials delete <credential-id>

# 清除所有凭证
ccs credentials clear

3. 快照管理

# 创建当前设置的快照
ccs snap my-debug-config

# 查看所有快照
ccs ls -v

# 应用快照
ccs apply my-debug-config

# 删除快照
ccs delete my-debug-config

🔑 API 密钥配置

可通过环境变量或交互式输入设置 API 密钥:

# 智谱 GLM
export Z_AI_API_KEY="your_key"

# MiniMax
export MINIMAX_API_KEY="your_key"

# DeepSeek
export DEEPSEEK_API_KEY="your_key"

# Kimi
export KIMI_API_KEY="your_key"

# Moonshot
export MOONSHOT_API_KEY="your_key"

# KatCoder
export KAT_CODER_API_KEY="your_key"
export WANQING_ENDPOINT_ID="ep-xxx-xxx"

💡 提示:未设置环境变量时,工具会自动交互式提示输入密钥。

🎯 支持的 AI 提供商

提供商 模板名称 别名 特点 推荐度
🌟 智谱 GLM zai glm, zhipu 256K 上下文,高性价比 ⭐⭐⭐⭐⭐
🔥 MiniMax minimax - Anthropic 兼容,功能丰富 ⭐⭐⭐⭐⭐
🚀 DeepSeek deepseek ds 价格便宜,响应快速 ⭐⭐⭐⭐
🌙 Kimi kimi kimi-for-coding 专注编程,响应快速 ⭐⭐⭐⭐
🌈 K2 k2 moonshot 大上下文,平衡性能 ⭐⭐⭐
🧠 K2 Thinking k2-thinking - 高速推理,256K 上下文 ⭐⭐⭐⭐
🔧 KatCoder Pro kat-coder-pro katpro 专业编程 AI ⭐⭐⭐⭐
💨 KatCoder Air kat-coder-air katair 轻量级快速响应 ⭐⭐⭐

📁 高级用法

作用域控制

# 仅应用环境变量
ccs apply zai --scope env

# 仅应用常用设置(提供商、模型等)
ccs apply zai --scope common

# 应用完整配置(默认)
ccs apply zai --scope all

自定义配置

# 指定模型
ccs apply zai --model glm-4-plus

# 应用前备份当前设置
ccs apply zai --backup

# 跳过确认提示
ccs apply zai --yes

# 应用到全局配置
ccs apply zai --settings-path ~/.claude/settings.json

高级快照

# 创建仅包含环境变量的快照
ccs snap my-env --scope env

# 创建带描述的快照
ccs snap my-config --description "开发环境配置"

# 从自定义文件创建快照
ccs snap my-custom --settings-path /path/to/settings.json

📋 命令参考

命令 别名 说明
ccs apply <target> a 应用模板或快照
ccs snap <name> s 创建快照
ccs ls list 列出快照
ccs delete <name> rm/del 删除快照
ccs credentials <cmd> creds 凭证管理

凭证管理子命令:

  • list: 列出凭证
  • delete <id>: 删除指定凭证
  • clear: 清除所有凭证

🧩 扩展开发

架构概述

src/
├── main.rs          # 二进制入口点和核心 trait
├── cli.rs          # CLI 解析
├── commands.rs     # 命令实现
├── settings.rs     # 配置模型
├── snapshots.rs    # 快照系统
├── credentials.rs  # 凭证管理
├── selectors/      # 统一选择器框架
│   ├── base.rs     # SelectableItem trait
│   ├── navigation.rs # 导航管理
│   ├── confirmation.rs # 确认服务
│   └── ...         # 具体实现
├── templates/      # 模块化模板
│   ├── mod.rs      # Template trait
│   ├── zai.rs      # 智谱 GLM
│   ├── minimax.rs  # MiniMax
│   └── ...         # 其他提供商
└── utils.rs        # 工具函数

添加新 AI 提供商

  1. 创建模板文件:在 src/templates/ 下创建新文件(如 new_provider.rs

  2. 实现 Template trait

    use crate::{
        settings::ClaudeSettings,
        snapshots::SnapshotScope,
        templates::{Template, TemplateType},
    };
    
    pub struct NewProviderTemplate;
    
    impl Template for NewProviderTemplate {
        fn template_type(&self) -> TemplateType {
            TemplateType::NewProvider
        }
    
        fn display_name(&self) -> &'static str {
            "New Provider"
        }
    
        fn description(&self) -> &'static str {
            "A new AI provider template"
        }
    
        fn env_var_name(&self) -> &'static str {
            "NEW_PROVIDER_API_KEY"
        }
    
        fn create_settings(&self, api_key: &str, scope: &SnapshotScope) -> ClaudeSettings {
            let mut settings = ClaudeSettings::new();
            // 配置环境变量和设置
            settings
        }
    }
    
  3. 注册模板:在 src/templates/mod.rs 中添加:

    • 模板类型枚举
    • 字符串解析支持
    • 工厂函数注册
  4. 测试:在 main.rs#[cfg(test)] 模块中添加测试

🛠️ 开发指南

# 构建项目
cargo build

# 运行测试
cargo test

# 运行特定测试
cargo test <test_name>

# 检查代码质量
cargo check
cargo clippy   # 应该无警告
cargo fmt

# 生成文档
cargo doc --open

📝 许可证

MIT License

🤝 贡献

欢迎提交 Issue 和 Pull Request!


💡 小贴士

  • 使用 ccs apply <template> --backup 避免配置丢失
  • 首推使用智谱 GLM (zai),性价比最高
  • 遇到凭证问题可使用 ccs credentials clear 重置

🔧 故障排除

  • 网络问题:检查网络连接
  • 凭证错误:重置凭证并重新保存
  • 配置冲突:使用 --settings-path 指定配置文件路径