cc-witch-web,已开源!实现OpenClaw、Claude Code等Agent的大模型便捷快速切换

开篇

这个五一节的第一天,着手解决了一个近2个月一直想解决的快捷更换AI Agent大模型的问题,手搓了cc-witch-web。

虽然现在有比较主流火爆的cc-switch和cc-switch-cli,但是cc-switch只能用于图形界面,cc-switch-cli只能用于命令行模式。桌面的cc-switch用着固然爽,服务器上却不能用,因为为了保障服务器性能,云服务器基本上都没有安装图形界面,使用cc-switch-cli给运行在云服务器上的Openclaw更换模型时就没那么高效和便捷了。

这个Web 端 AI Agent 模型切换管理工具,借鉴 cc-switch 的核心数据模型和切换方式,我把它打造成了web版本,服务跑起来后同时支持无图形界面的服务器和有图形界面的桌面环境,当然,如果放在云服务器上,考虑apikey等参数的安全性,加了登录页面。

当前支持 Claude CodeOpenClaw,架构已预留 OpenCode、Codex 等 Agent 扩展。

已开源到https://github.com/QinKunming/cc-switch-web

希望给大家所有帮助。web页面图示如下:

功能

  • Web 管理:浏览器操作,无需 GUI

  • Provider 管理:添加、编辑、删除、一键切换

  • 预设导入:19 个 Claude Code 预设 + 14 个 OpenClaw 预设

  • 热切换:Claude Code 切换后无需重启

  • 回填保护:切换前自动保存当前配置,手动改动不丢失

  • 登录认证:用户名 + 密码 + 验证码,防止公网服务器未授权访问泄露api

  • 数据库~/.cc-switch/cc-switch.db

快速开始

前置要求

  • Python 3.11+

安装

复制代码
cd cc-switch-web
pip install -r requirements.txt

启动

复制代码
python server.py

首次启动会自动生成默认密码并打印到控制台:

复制代码
  CC Switch Web
  Default login: admin / xxxxxxxx
  Change password in ~/.cc-switch/web-auth.json
  Local:   http://127.0.0.1:8787
  Network: http://192.168.x.x:8787

打开浏览器访问 http://<ip>:8787,使用打印的账号密码登录。

自定义参数

复制代码
python server.py --host=0.0.0.0 --port=9000

部署

Windows 10

方式一:直接运行

复制代码
cd cc-switch-web
pip install -r requirements.txt
python server.py

方式二:开机自启(Task Scheduler)

  1. 打开 Task Scheduler → Create Basic Task

  2. 触发器:计算机启动时

  3. 操作:启动程序

    • 程序:python.exe 完整路径(如 C:\Python312\python.exe

    • 参数:server.py

    • 起始目录:cc-switch-web 完整路径

  4. 勾选"不管用户是否登录都要运行"

Ubuntu(无图形界面)

方式一:直接运行

复制代码
cd cc-switch-web
pip3 install -r requirements.txt
python3 server.py

方式二:systemd 服务(推荐)

  1. 创建服务文件:
复制代码
sudo tee /etc/systemd/system/cc-switch-web.service << 'EOF'
[Unit]
Description=CC Switch Web
After=network.target
​
[Service]
Type=simple
User=<你的用户名>
WorkingDirectory=/path/to/cc-switch-web
ExecStart=/usr/bin/python3 /path/to/cc-switch-web/server.py
Restart=on-failure
RestartSec=5
​
[Install]
WantedBy=multi-user.target
EOF
  1. 启用并启动:
复制代码
sudo systemctl daemon-reload
sudo systemctl enable cc-switch-web
sudo systemctl start cc-switch-web
  1. 查看状态和日志:
复制代码
sudo systemctl status cc-switch-web
sudo journalctl -u cc-switch-web -f

首次启动时查看默认密码:

复制代码
sudo journalctl -u cc-switch-web | grep "Default login"

方式三:后台运行(简单方式)

复制代码
nohup python3 server.py > cc-switch.log 2>&1 &
# 查看初始密码
head -5 cc-switch.log

修改密码

编辑 ~/.cc-switch/web-auth.json,密码为 SHA256 哈希值。

生成新密码哈希:

复制代码
import hashlib
print(hashlib.sha256("your-new-password".encode()).hexdigest())

将生成的哈希值替换到配置文件中对应用户的值即可。

配置文件路径

文件 路径 说明
Claude Code ~/.claude/settings.json 自动检测
OpenClaw ~/.openclaw/openclaw.json JSON5 格式,写入标准 JSON
cc-switch 数据库 ~/.cc-switch/cc-switch.db 与桌面版共享
Web 认证 ~/.cc-switch/web-auth.json 用户密码存储

架构

复制代码
cc-switch-web/
  server.py           # FastAPI 服务(启动入口、路由、认证中间件)
  db.py               # SQLite 数据层(兼容 cc-switch schema v10)
  config_ops.py       # 配置文件读写、原子写入、回填
  models.py           # Pydantic 数据模型
  presets/
    claude_presets.py  # Claude Code 预设(19 个)
    openclaw_presets.py # OpenClaw 预设(14 个)
  static/
    index.html         # Web 前端(单文件,内联 CSS + JS)
  requirements.txt

Agent 扩展

server.pyAGENT_REGISTRY 中注册新 Agent:

复制代码
AGENT_REGISTRY = {
    "claude":    {"name": "Claude Code", "icon": "🤖", "configurable": True},
    "openclaw":  {"name": "OpenClaw",    "icon": "🐾", "configurable": True},
    "opencode":  {"name": "OpenCode",    "icon": "🔵", "configurable": False},
    "codex":     {"name": "Codex",       "icon": "⚡", "configurable": False},
}

设置 configurable: True 后,该 Agent 会出现在侧边栏并支持 provider 管理。需要同时实现对应的切换逻辑和预设数据。

安全说明

  • 默认绑定 0.0.0.0:8787,局域网可访问

  • 登录需要用户名 + 密码 + 算术验证码

  • Session 有效期 7 天,存储在 HttpOnly Cookie 中

  • API Key 明文存储在 SQLite(与 cc-switch 一致),建议设置数据库文件权限为 0600

  • 如需 HTTPS,建议使用 nginx/caddy 反向代理

致谢

核心数据模型和配置逻辑来自 cc-switch(MIT License, Jason Young)

License

MIT

相关推荐
minhuan1 小时前
构建高可用大模型应用架构:大模型服务进程保活 + 全自动故障自愈实践.163
人工智能·大模型应用·大模型服务进程保活·全自动故障自愈·大模型运维监控
FrontAI1 小时前
深入浅出 LangGraph —— 第11章:子图:构建模块化Agent
人工智能·langchain·ai agent·langgraph
njsgcs2 小时前
我有待做任务清单和不良操作图片集,如何设计ai agent协助我完成工作
大数据·人工智能
AI科技星2 小时前
《全域数学》第三卷:代数原本 · 全书详述【乖乖数学】
开发语言·人工智能·机器学习·数学建模
AI科技星2 小时前
《全域数学》第一部 数术本源 第三卷 代数原本第14篇 附录二 猜想证明【乖乖数学】
人工智能·算法·数学建模·数据挖掘·量子计算
XD7429716362 小时前
科技早报|2026年5月2日:AI 编程工具开始按用量收费
人工智能·科技·ai编程·github copilot·科技早报
liangdabiao2 小时前
乐高摩托车深度报告-致敬张雪夺冠 -基于llm-wiki技术自动化写文章的效果
运维·人工智能·自动化
KC2702 小时前
Prompt 注入攻击的 5 种姿势和防御指南
人工智能
不懒不懒2 小时前
【从零入门本地大模型:Ollama 安装部署 + Qwen2.5 实现零样本情感分类】
人工智能·分类·数据挖掘·大模型·ollama