OpenCockpit

Claude Code 接 GLM、Kimi、DeepSeek,不用改环境变量

发布于 2026年10月1日 · 阅读约 5 分钟

不改 ANTHROPIC_BASE_URL,也能让 Claude Code 式的 Agent 跑在 GLM、Kimi、DeepSeek 或 Ollama 上:每个 tab 一个引擎、并排对比,以及要付出的代价。

搜"Claude Code 接 GLM"或"Claude Code 接 Kimi",几乎所有教程给的都是同一套做法:导出 ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN,指向厂商的 Anthropic 兼容端点,重启 claude。

这能用。但它作用于整个 shell,于是"同一个问题换个模型试试"就变成了反复改环境变量。

常见的三种做法

1. 直接导出环境变量。

export ANTHROPIC_BASE_URL="<厂商的 Anthropic 兼容端点>"
export ANTHROPIC_AUTH_TOKEN="<你的 key>"
claude

一个 shell 一个模型。想换,就得改两个变量再重来。

2. 包成 shell 函数。 在 ~/.zshrc 里写 glm、kimi、ds 几个函数,各自设好变量再启动 claude。敲起来方便了,但还是一个终端一个模型,而且 key 都写进了 shell 配置。

3. 在前面架一层网关。 用 LiteLLM 之类的代理,把 Claude Code 的 Anthropic 协议转成厂商的协议。最灵活,代价是多跑、多配一个服务。

这三种做法有一个共同的好处:跑的是 Claude Code 本身,功能完整 —— MCP server、子代理,一样不少。

换个思路:每个 tab 一个引擎

OpenCockpit 把模型变成了每个 tab 自己的选择。新开一个 tab,在顶部选 GLM、Kimi、DeepSeek 或 Ollama,把 key 粘进这个引擎的选择器,就好了。下一个 tab 可以是 Claude,再下一个可以是 Codex。

OpenCockpit 的六个 tab,各用一个不同的引擎,在同一个项目里回答同一个问题

这张截图就是全部要点:同一个问题,六个引擎,一个窗口,一个项目。没改任何变量,也没重启任何东西。

按引擎分开配置,还顺带解决了几件事:

  • key 不进 shell。 每个引擎的 key 单独存在 ~/.cockpit/<engine>/credentials.json。
  • 模型列表是实时拉取的。 GLM、Kimi、DeepSeek 的 tab 会用你的 key 拉取账号实际可用的模型,厂商明天上新模型,这里自动出现。
  • 各家的特殊之处都处理好了。 GLM 有区域切换(国内站或国际站,同一个 key)和 Coding Plan 额度查询;Kimi 能查套餐的 5 小时和每周额度;DeepSeek 能看预充值余额。
  • 所有引擎同一套界面。 会话历史、分叉、逐个工具调用的快照,不管哪个模型在回答都一样。

代价

这一点要说清楚:GLM、Kimi、DeepSeek、Ollama 的 tab 跑的不是 Claude Code,而是 OpenCockpit 自己的内置 Agent,对接厂商的 OpenAI 兼容端点。它能读写文件、跑命令、流式输出,但只有七个工具 —— Read、Write、Edit、Bash、Glob、Grep、TodoWrite —— 没有 MCP server,没有子代理,也不支持图片输入。

如果你需要在非 Anthropic 模型上用 MCP 或子代理,改环境变量的做法仍然是对的选择。OpenCockpit 用它们换来了按 tab 切换、不碰 shell。如果你的目的是对比模型,或者让便宜的模型干日常活、Claude 啃难题,这笔交换通常是划算的。

上手

npm i -g @surething/cockpit && cockpit

打开一个项目,加一个 tab,选一个引擎。每个厂商的接入细节 —— key 去哪拿、先用哪个模型、常见报错 —— 都在 AI 引擎 文档里。