这是什么
OpenCode 是开源的终端编程 agent(也有桌面 / IDE 应用)。默认它跟你 /connect 的供应商说话——OpenCode Zen、OpenAI、Anthropic 等等。改指 AnyRouter 之后,每次会话和 Claude Code、Codex、以及你栈里其余部分共用一把 sk-ar- key、一张账单、一份请求日志。
OpenCode 讲 OpenAI Chat Completions。AnyRouter 在 https://anyrouter.dev/api/v1 提供这套方言,所以这是纯配置改动:不用 fork OpenCode,也不用重编。
Agent 叫 OpenCode,不是 OpenCode Zen。Zen 是可以当 BYOK 挂上的模型 API。这篇讲的是用 AnyRouter 驱动 OpenCode TUI。
完整安装指南最快路径:anyr CLI
先装 OpenCode(curl -fsSL https://opencode.ai/install | bash,或 npm install -g opencode-ai)。然后一条命令登录并启动已选好 AnyRouter 的 OpenCode:
curl -fsSL https://anyrouter.dev/setup.sh | bash
anyr login
anyr opencode
anyr opencode --model "anthropic/claude-sonnet-4.6"
anyr opencode --model "z-ai/glm-5.2"
anyr opencode --dry-run
启动器不写 OpenCode 的配置文件。它注入一个仅本次会话的 AnyRouter 供应商(正确的 base URL 加上目录的上下文 / 输出上限),并设置 OPENAI_API_KEY,好在运行时插值 key。退出 OpenCode 后,全局 opencode.json 不变。同一把存好的 key 也驱动 anyr claude 和 anyr codex。
-- 后面的一切原样转给 OpenCode(anyr opencode -- --help)。
持久配置:opencode.json
想让裸 opencode 命令每次都走 AnyRouter,就把它注册成自定义 @ai-sdk/openai-compatible 供应商。在 shell 里导出 key,再加到 ~/.config/opencode/opencode.json(所有项目)或 ./opencode.json(这个仓库):
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anyrouter": {
"npm": "@ai-sdk/openai-compatible",
"name": "AnyRouter",
"options": {
"baseURL": "https://anyrouter.dev/api/v1",
"apiKey": "{env:ANYROUTER_API_KEY}"
},
"models": {
"anthropic/claude-sonnet-4.6": {
"name": "Claude Sonnet 4.6",
"limit": { "context": 200000, "output": 65536 }
},
"z-ai/glm-5.2": {
"name": "GLM-5.2",
"limit": { "context": 1000000, "output": 65536 }
}
}
}
},
"model": "anyrouter/anthropic/claude-sonnet-4.6"
}- 在控制台创建 key——每把推理 key 都以 sk-ar- 开头。
- 启动前 export ANYROUTER_API_KEY。
{env:ANYROUTER_API_KEY}是变量名,永远不要把密钥贴进 JSON。 - 模型映射的 key 必须是精确的 AnyRouter id。OpenCode 默认是
anyrouter/<id>。 - 如果设了
limit,OpenCode 1.18+ 要求同时有context和output。不知道窗口就整段省略limit。

然后跑 opencode,打开 /models,选一个 anyrouter/… id。

确认账单走了 AnyRouter
发任意一条提示,再打开请求日志。一两秒内那一行应显示 model id、token、费用和延迟。

- 401 — 进程没有活的 sk-ar- key。持久配置里
echo $ANYROUTER_API_KEY。CLI 则anyr config get。 - Model not found — 映射 key 必须匹配 Chat Completions 目录 id,不是 Zen 或 Anthropic 原生别名。
- 答的是别的供应商 — 直接启动
opencode时,Zen 的 /connect 登录可能抢先。在 /models 里选anyrouter/…,或用anyr opencode。
接下来去哪
CLI 参数原文在 docs.anyrouter.dev/cli/opencode。叙事走读在 docs.anyrouter.dev/guides/opencode。要在同一场对话里加 AnyRouter 工具(额度、目录、key),用 docs.anyrouter.dev/mcp/opencode 的 MCP 配方。
同一把 AnyRouter key 也能拉起 Claude Code 和 Codex。一个配置,每个 agent。
通过 AnyRouter 启动 OpenCode——一把 key、整份目录、请求日志。
打开 CLI相关文章
Run coding agents through one gateway
Point Claude Code, Codex, OpenCode, Cursor, or any OpenAI-compatible tool at AnyRouter and get one key for every model, unified billing, per-request audit logs, and app attribution. Two environment variables — or one npx command with the anyr CLI launcher.
Run Claude Code on AnyRouter — wrapper script or CLI
Route Claude Code through AnyRouter in two ways: a wrapper that installs itself and maps Opus, Sonnet, and Haiku to one catalog model (override with --model), or the anyr CLI launcher. One key, unified billing, audit logs.