Skip to content

Latest commit

 

History

History
357 lines (264 loc) · 10.1 KB

README.md

File metadata and controls

357 lines (264 loc) · 10.1 KB

CC-Switch CLI

⚠️ 停止维护公告

本仓库自 2026 年 3 月 13 日起停止维护。

当初只是有需求,所以简单开发了这个 CLI 版本。今天突然发现已经有一个开发很久、功能更完善的 CLI 仓库:

👉 请前往 SaladDay/cc-switch-cli 使用更好用的 CLI 版本

感谢大家的支持,建议迁移到上方链接的仓库。

Release License Platform Maintenance

纯命令行版本的 CC-Switch,用于在 Linux 服务器(无图形界面)上管理 Claude Code、Codex、Gemini CLI、OpenClaw 等 AI 编程工具的供应商配置。

📢 致谢说明 本项目基于 farion1231/cc-switch 进行二次开发。 原项目是一个功能完善的图形界面工具,本项目将其重构为纯命令行版本,以适配 Linux 服务器环境。 感谢原作者 @farion1231 的优秀工作!

✨ 特性

核心功能

  • 🖥️ 纯 CLI - 无 GUI 依赖,可在 SSH 会话中使用
  • 🎮 交互式菜单 - 新手友好的图形化菜单界面(支持高级 TUI 模式)
  • 🔄 供应商切换 - 快速切换不同的 API 供应商配置
  • 📋 多应用支持 - Claude Code、Codex CLI、Gemini CLI、OpenCode、OpenClaw

供应商管理

  • 🧪 API 测试 - 验证 API Key 有效性和连接延迟
  • 📦 MCP 服务器管理 - 管理 Model Context Protocol 服务器
  • 📝 Prompts 管理 - 管理系统提示词(CLAUDE.md 等)
  • 🧩 Skills 扩展 - 从 GitHub 安装和管理 Skills
  • 🔄 批量操作 - 批量切换、测试、导出、导入、同步和编辑供应商
  • 🔥 故障转移 - 配置备用供应商,主供应商失败时自动切换

网络与代理

  • 🌐 代理支持 - 全局代理设置和自动扫描
  • ⚡ 端点测速 - 测试 API 端点延迟
  • 🔍 环境检测 - 检测环境变量冲突

云端与统计

  • ☁️ WebDAV 同步 - 配置云端同步,多设备配置共享
  • 📊 使用量统计 - 查看 API 使用量和限额管理

Web 与更新

  • 🌐 Web 控制器 - 通过浏览器管理配置(带身份验证)
  • 🚀 智能更新 - 自动检测新版本,支持大/中/小版本更新策略
    • 🔴 大版本更新:强制提示,需用户确认
    • 🟡 中版本更新:推荐更新
    • 🟢 小版本更新:选择性更新

其他

  • 💾 单一可执行文件 - 编译后仅需一个二进制文件
  • 🛡️ SHA256 校验 - 下载文件完整性验证

📥 安装

🚀 一键安装(推荐)

# 使用 curl
curl -fsSL https://raw.githubusercontent.com/DoBestone/cc-switch-cli/main/install.sh | bash

# 或使用 wget
wget -qO- https://raw.githubusercontent.com/DoBestone/cc-switch-cli/main/install.sh | bash

安装脚本会自动:

  1. 检测您的操作系统和架构
  2. 下载预编译二进制(支持 SHA256 校验)
  3. 如果没有预编译版本,自动安装 Rust 并从源码编译
  4. 将 cc-switch 安装到 /usr/local/bin

🔄 更新到最新版

# 方式一:使用内置命令更新(推荐)
cc-switch self-update

# 检查更新但不安装
cc-switch self-update --check

# 强制重新安装最新版
cc-switch self-update --force

# 方式二:使用更新脚本
curl -fsSL https://raw.githubusercontent.com/DoBestone/cc-switch-cli/main/update.sh | bash

高级选项:

# 指定安装特定版本
CC_SWITCH_VERSION=1.2.3 bash <(curl -fsSL https://raw.githubusercontent.com/DoBestone/cc-switch-cli/main/update.sh)

# 强制重新安装
CC_SWITCH_FORCE=1 bash <(curl -fsSL https://raw.githubusercontent.com/DoBestone/cc-switch-cli/main/update.sh)

# 跳过 SHA256 校验(不推荐)
CC_SWITCH_NO_VERIFY=1 bash <(curl -fsSL https://raw.githubusercontent.com/DoBestone/cc-switch-cli/main/update.sh)

📦 支持的平台

平台 架构 文件
Linux x86_64 cc-switch-linux-x86_64 / cc-switch-linux-x86_64-musl
Linux ARM64 cc-switch-linux-aarch64 / cc-switch-linux-aarch64-musl
Linux ARMv7 cc-switch-linux-armv7
macOS Intel cc-switch-darwin-x86_64
macOS Apple Silicon cc-switch-darwin-aarch64
Windows x86_64 cc-switch-windows-x86_64.exe

🔧 从源码编译

# 克隆仓库
git clone https://github.com/DoBestone/cc-switch-cli.git
cd cc-switch-cli

# 编译 release 版本
cargo build --release

# 安装到系统路径
sudo cp target/release/cc-switch /usr/local/bin/

编译要求: Rust 1.70.0+

📖 使用方法

🎨 交互式界面(推荐)

# 简单菜单模式(默认)
cc-switch

# 高级 TUI 模式
cc-switch --tui

启动时自动检查版本更新,有新版本时会显示提示。

基本命令

# 显示帮助
cc-switch --help

# 列出所有供应商
cc-switch list

# 显示当前状态
cc-switch status

# 切换供应商
cc-switch use my-provider --app claude

# 添加供应商
cc-switch add my-provider --app claude --api-key "sk-xxx" --base-url "https://api.example.com"

# 测试供应商
cc-switch test my-provider --app claude

# 删除供应商
cc-switch remove my-provider --app claude

批量操作

# 批量切换所有应用
cc-switch batch switch "云雾API"

# 批量测试所有供应商
cc-switch batch test

# 批量导出配置
cc-switch batch export backup.yaml

# 批量导入配置
cc-switch batch import backup.yaml

# 批量同步(从一个应用到其他应用)
cc-switch batch sync --from claude --to codex gemini

# 批量编辑
cc-switch batch edit base-url "https://api.example.com" --app all

故障转移

# 查看故障转移队列
cc-switch failover list --app claude

# 添加备用供应商
cc-switch failover add backup-api --app claude

# 移除备用供应商
cc-switch failover remove backup-api --app claude

使用量统计

# 查看使用量汇总
cc-switch usage summary

# 查看趋势
cc-switch usage trends --days 7

# 设置限额
cc-switch usage set-limit my-api --daily 10 --monthly 100

WebDAV 云同步

# 配置 WebDAV
cc-switch webdav setup --url https://dav.example.com --username user --password pass

# 测试连接
cc-switch webdav test

# 上传配置
cc-switch webdav upload

# 下载配置
cc-switch webdav download

Web 控制器

# 启动 Web 控制器(默认端口 8000)
cc-switch web

# 自定义端口和登录信息
cc-switch web --port 3000 --user admin --pass secret123

# 仅本地访问
cc-switch web --host 127.0.0.1

OpenClaw 配置

# 列出 OpenClaw 供应商
cc-switch openclaw list

# 添加供应商
cc-switch openclaw add my-api --base-url https://api.example.com --api-key sk-xxx

# 设置默认模型
cc-switch openclaw default-model --primary gpt-4

# 健康检查
cc-switch openclaw health --fix

📁 配置文件位置

路径 说明
~/.cc-switch/ CC-Switch 配置目录
~/.cc-switch/cc-switch.db SQLite 数据库
~/.cc-switch/settings.json 本地设置
~/.claude/ Claude Code 配置
~/.codex/ Codex CLI 配置
~/.gemini/ Gemini CLI 配置
~/.opencode/ OpenCode 配置
~/.openclaw/ OpenClaw 配置

🔄 版本更新策略

CC-Switch 采用智能版本更新策略:

版本类型 示例 行为
🔴 大版本 1.x.x → 2.x.x 强制提示,需用户确认(可能有不兼容变更)
🟡 中版本 1.1.x → 1.2.x 推荐更新,默认提示
🟢 小版本 1.1.1 → 1.1.2 选择性更新,静默提示

📊 功能对比

功能 命令行 交互式菜单 批量操作
供应商管理 ✅ ✅ ✅
MCP 服务器 ✅ ✅ ❌
Prompts ✅ ✅ ❌
Skills ✅ ✅ ❌
代理设置 ✅ ✅ ❌
端点测速 ✅ ✅ ❌
环境检测 ✅ ✅ ❌
故障转移 ✅ ❌ ✅
使用量统计 ✅ ❌ ❌
WebDAV 同步 ✅ ❌ ❌
Web 控制器 ✅ ❌ ❌
批量切换/测试/导出/导入/同步/编辑 ✅ ❌ ✅

🛠️ 项目结构

cc-switch-cli/
├── Cargo.toml              # 工作区配置
├── ccswitch-core/          # 核心库 (lib crate)
│   └── src/
│       ├── lib.rs          # 公共 API
│       ├── config.rs       # 配置文件处理
│       ├── database/       # SQLite 数据持久化
│       ├── provider.rs     # 供应商数据结构
│       └── services/       # 业务逻辑层
└── ccswitch-cli/           # CLI 工具 (bin crate)
    └── src/
        ├── main.rs         # 入口
        ├── cli.rs          # clap 参数定义
        ├── commands/       # 命令实现
        ├── interactive.rs  # 交互式菜单
        └── tui.rs          # 高级 TUI

📝 更新日志

v1.2.3 (2026-03-12)

  • ✨ 增强版本检查系统,支持大/中/小版本更新策略
  • ✨ 添加启动时自动版本检查
  • ✨ 增强 GitHub API 限流处理
  • ✨ 为 install.sh 添加 SHA256 校验支持
  • 🐛 修复版本解析问题,支持预发布版本

v1.2.0 - v1.2.2

  • ✨ 添加 Web 控制器(带身份验证)
  • ✨ 添加 WebDAV 云同步
  • ✨ 添加使用量统计
  • ✨ 添加故障转移功能
  • ✨ 添加 OpenClaw 支持
  • 🐛 多项 Bug 修复

查看完整更新日志

📜 许可证

MIT License - 与原项目保持一致

🤝 贡献

欢迎提交 Issue 和 Pull Request!


Star ⭐ 本项目以获取最新更新!