详情

首页手游攻略 Claude Code 加 OpenCode Go 订阅:让 Claude 跑任意开源模型

Claude Code 加 OpenCode Go 订阅:让 Claude 跑任意开源模型

佚名 2026-07-15 19:16:00

Claude Code + OpenCode Go 订阅:让 Claude 跑任意开源模型

一份给"既买了 OpenCode Go,又想用 Claude Code"的同学的实战指南。文章设计目标:小白能照着做完;AI 工具能照着帮你做完

写在前面

OpenCode Go 订阅($5/月起)能让你用上 GLM-5.1、Kimi K2.6、MiniMax M3、Qwen3.7-Max、DeepSeek V4 Pro 等一堆顶级开源模型。但有个问题:Claude Code 客户端默认只认 Anthropic 协议(/v1/messages),而 GLM-5.1 这些只支持 OpenAI 协议(/v1/chat/completions)

直接配是不行的,会报 1210 / 1214 错。解决方案就是中间塞一个协议转换代&理(本文用 ogc)。整篇文章 5 分钟配完,不写代码。

整体架构

┌────────────────────────────┐
│ Claude Code 客户端         │  ← 你敲命令的地方
└────────────┬───────────────┘
             │ 读 ~/.claude/settings.json
             │ ANTHROPIC_BASE_URL=http://127.0.0.1:3456
             ↓
┌────────────────────────────┐
│ ogc 代&理(Go 写的本地服务)│  ← 翻译:anthropic 话 ↔ openai 话
└────────────┬───────────────┘
             │ 读 ~/.config/ogc/config.json
             ↓
┌────────────────────────────┐
│ OpenCode Go(云端)        │  ← $5/月的订阅入口
└────────────┬───────────────┘
             ↓
┌────────────────────────────┐
│ 上游模型(GLM-5.1/M3/...) │
└────────────────────────────┘

一句话:Claude Code 只说"anthropic 话",GLM-5.1 只懂"openai 话",ogc 就是那个翻译。

准备工作

  • macOS(Linux 类似,文末备注)
  • OpenCode Go 订阅 + API key(https://opencode.ai/ )
  • Claude Code 客户端(claude 命令能跑)
  • Go 1.21+(go version 看一下,没有就 brew install go

第一步:装 ogc

go install github.com/xynogen/ogc/cmd/ogc@latest
# 加 PATH
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.zshrc
source ~/.zshrc
# 验证
ogc --version

第二步:写 ogc 配置

ogc init

会生成 ~/.config/ogc/config.json整段替换为下面内容(API key 换成你的):

文件:~/.config/ogc/config.json

{
  "api_key": "sk-你的OpenCodeGoKey",
  "host": "127.0.0.1",
  "port": 3456,
  "models": {
    "glm-5.1": {
      "provider": "openai",
      "model_id": "glm-5.1",
      "temperature": 0.7,
      "max_tokens": 8192
    }
  },
  "model_mapping": {
    "claude-opus": "glm-5.1",
    "claude-sonnet": "glm-5.1",
    "claude-haiku": "glm-5.1"
  },
  "upstream": {
    "base_url": "https://opencode.ai/zen/go/v1",
    "anthropic_base_url": "https://opencode.ai/zen/go/v1",
    "timeout_ms": 300000
  },
  "logging": { "level": "info", "requests": true }
}

字段含义

  • models 里每个模型有 provider 字段,决定 ogc 用什么协议发到上游
  • model_mapping 决定 Claude 客户端的 opus/sonnet/haiku 三个槽位路由到哪个模型(换模型就改这一段

模型 ↔ 协议对照表(数据来自 https://opencode.ai/docs/go/ ):

模型ogc provider
minimax-m3 / m2.7 / m2.5anthropic
qwen3.7-max / qwen3.7-plus / qwen3.6-plus / qwen3.5-plusanthropic
glm-5.1 / glm-5openai
kimi-k2.5 / kimi-k2.6openai
mimo-v2-pro / mimo-v2-omni / mimo-v2.5-pro / mimo-v2.5openai
deepseek-v4-pro / deepseek-v4-flashopenai

第三步:先前台跑一下验证

ogc serve

看到 Listening on 127.0.0.1:3456 就 OK。另开一个终端测一下:

curl -X POST http://127.0.0.1:3456/v1/messages 
  -H "x-api-key: dummy" 
  -H "anthropic-version: 2023-06-01" 
  -H "content-type: application/json" 
  -d '{"model":"claude-sonnet-4-5","max_tokens":15,"messages":[{"role":"user","content":"reply OK"}]}'

返回 200 + 一段 JSON 就说明通了。Ctrl+C 停掉前台。

第四步:开机自启

# 生成 plist
ogc autostart enable
# 加上 API key(plist 默认不带)
/usr/libexec/PlistBuddy 
  -c "Add :EnvironmentVariables:OGC_API_KEY string sk-你的OpenCodeGoKey" 
  ~/Library/LaunchAgents/com.xynogen.ogc.plist
# 加载 plist
launchctl load -w ~/Library/LaunchAgents/com.xynogen.ogc.plist
# 验证
lsof -nP -iTCP:3456 -sTCP:LISTEN

第五步:改 Claude Code 客户端配置

文件:~/.claude/settings.json

"env" 段加上下面的字段(如果没 "env" 就加):

"env": {
  "ANTHROPIC_BASE_URL": "http://127.0.0.1:3456",
  "ANTHROPIC_API_KEY": "unused",
  "ANTHROPIC_MODEL": "glm-5.1",
  "ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-5.1",
  "ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5.1",
  "ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-5.1"
}

⚠️ 三个易错点

  1. 字段名是 ANTHROPIC_API_KEY,不是 ANTHROPIC_AUTH_TOKEN
  2. ANTHROPIC_BASE_URL 不带 /v1(SDK 会自动加)
  3. ANTHROPIC_API_KEY"unused" 就行,ogc 不检查

第六步:启动 Claude

claude --dangerously-skip-permissions

发条消息(比如"你好"),看到回复 = 全部搞定。

换模型的标准操作(SOP)

以后想换模型,按这 4 步走。以"glm-5.1 → minimax-m3"为例:

# 1) 备份
cp ~/.config/ogc/config.json ~/.config/ogc/config.json.bak.$(date +%H%M%S)
# 2) 改 JSON(用 Python 不容易写错)
python3 << 'PYEOF'
import json
p = '/Users/bryle/.config/ogc/config.json'
d = json.load(open(p))
# 加新模型(注意 provider 字段:查上面对照表)
d['models']['minimax-m3'] = {
    "provider": "anthropic",     # minimax-m3 走 anthropic
    "model_id": "minimax-m3",
    "temperature": 0.7,
    "max_tokens": 65536,
}
# 改路由(claude-*/sonnet/haiku 都指向新模型)
d['model_mapping'] = {
    "claude-opus": "minimax-m3",
    "claude-sonnet": "minimax-m3",
    "claude-haiku": "minimax-m3",
}
json.dump(d, open(p, 'w'), indent=2, ensure_ascii=False)
print("已改")
PYEOF
# 3) 验证 + 重启 ogc
ogc validate
launchctl unload ~/Library/LaunchAgents/com.xynogen.ogc.plist
launchctl load -w ~/Library/LaunchAgents/com.xynogen.ogc.plist
sleep 2
lsof -nP -iTCP:3456 -sTCP:LISTEN
# 4) 开新的 claude 会话(旧会话的 context 还绑着旧模型)
claude --dangerously-skip-permissions

核心就一句话:加菜 + 改路由 + 重启 ogc + 开新会话。

故障排查速查表

错误原因解决
Both a token and an API key are setsettings.json 同时有 AUTH_TOKENAPI_KEYsed -i '' 's/"ANTHROPIC_AUTH_TOKEN"/"ANTHROPIC_API_KEY"/g' ~/.claude/settings.json
401 AuthError / Missing API key用了 ANTHROPIC_AUTH_TOKEN(OAuth 头 Bearer)改用 ANTHROPIC_API_KEY(API key 头 x-api-key)
1210 / 1214 “Error from provider (Z.ai)”模型协议配错了(GLM 配成了 anthropic)改 ogc config 的 provider 字段
404 Page Not Foundbase_url 带了 /v1改成 https://opencode.ai/zen/go
ogc 进程不在了没人保活launchctl kickstart -k gui/$(id -u)/com.xynogen.ogc

不想用 ogc?也行

如果只用 anthropic 协议的模型(minimax-m3、qwen3.x),可以直连 OpenCode Go,连 ogc 都不用装:

"env": {
  "ANTHROPIC_BASE_URL": "https://opencode.ai/zen/go",
  "ANTHROPIC_API_KEY": "sk-你的Key",
  "ANTHROPIC_MODEL": "qwen3.7-max"
}

但想用 GLM-5.1 / Kimi / DeepSeek 这些,必须用 ogc 或同类工具做协议转换。

写在最后

整个方案就是一句话的事:Claude Code 说人话,部分模型说机器话,中间需要个翻译。剩下的就是改 JSON 文件、跑几个命令。

5 分钟搞定,以后换模型 30 秒搞定。Happy hacking 

Linux 用户备注:把 ~/Library/LaunchAgents/ 换成 ~/.config/systemd/user/,plist 换成 systemd unit(ogc serve --background 就行)。其他完全一样。

相关资讯
点击查看更多
游戏推荐
推荐专题
热门阅读
推荐下载