/claude-code
Claude Code
把 Claude Code 接到 OpenToken:改 ~/.claude/settings.json 或用 CC Switch 一键导入,含模型切换与两个已知副作用。
Claude Code 靠两个环境变量决定「请求发到哪、用什么身份」。把它们指向 OpenToken,claude 命令就会走中转,其余用法完全不变。
在用户级配置文件里加一个 env 块。这是官方推荐的做法,比在 shell 里 export 更可靠——原因见下面为什么不写在 shell 里。
~/.claude/settings.json{
"env": {
"ANTHROPIC_BASE_URL": "https://otokapi.com",
"ANTHROPIC_AUTH_TOKEN": "sk-YOUR-API-KEY"
}
}把 sk-YOUR-API-KEY 换成你在控制台生成的密钥,存盘后重启 claude 即可生效。
CC Switch 是一个桌面应用,帮你管理多个中转站的配置并一键切换。点下面的按钮,它会自动填好 OpenToken 的接入地址:
ccswitch://v1/import?resource=provider&app=claude&name=OpenToken&endpoint=https%3A%2F%2Fotokapi.com&homepage=https%3A%2F%2Fotokapi.com链接里没有密钥——你可以自己核对上面这串。导入后在 CC Switch 里填入自己的 sk- 密钥即可。点了没反应说明还没装 CC Switch,见 下载页。
导入后在 CC Switch 里给这个供应商填上你自己的密钥,点启用。它会把配置写进 ~/.claude/settings.json——结果和手动那条路完全一样,只是不用你自己编辑 JSON。
还没装 CC Switch,或者想知道它到底改了哪些文件,见 CC Switch 指南。
为什么是 AUTH_TOKEN 而不是 API_KEY
Claude Code 有两个传密钥的变量,它们发出去的请求头不一样:
| 变量 | 实际发送的请求头 |
|---|---|
ANTHROPIC_AUTH_TOKEN | Authorization: Bearer <你的密钥> |
ANTHROPIC_API_KEY | X-Api-Key: <你的密钥> |
OpenToken 两种都认,但请用 ANTHROPIC_AUTH_TOKEN:
- 官方文档对「不确定该用哪个」给出的答复就是用
ANTHROPIC_AUTH_TOKEN。 - 设了
ANTHROPIC_API_KEY之后,Claude Code 在交互模式下会弹一次确认框,问你是否用这个密钥覆盖已登录的订阅账号。多一步打断,没有任何好处。
为什么不写在 shell 里
export ANTHROPIC_BASE_URL=... 能跑,但有两个坑。
第二个坑是后台任务:shell 里设的变量传不到 Claude Code 派生的后台 agent。官方说法很直接——任何需要后台任务也走网关的场景,都应该用配置文件而不是 shell 变量。
验证是否接通
最直接的办法是绕开 Claude Code,用 curl 直接打一次转发端点。这样能把「中转站的问题」和「客户端配置的问题」分开:
终端curl -X POST "https://otokapi.com/v1/messages" \
-H "Authorization: Bearer sk-YOUR-API-KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-4-6","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'curl 通了之后再启动 claude 随便问一句话,能正常回复就说明整条链路通了。会话里输入 /status 可以查看 Claude Code 当前识别到的配置。
指定模型(可选)
不配置模型时,Claude Code 用它自己的默认模型名,由 OpenToken 转发到上游,通常直接可用。只有想固定用某个模型时才需要下面这段。
先查你的账号能用哪些模型:
终端curl -H "Authorization: Bearer sk-YOUR-API-KEY" https://otokapi.com/v1/models把拿到的 ID 填进 env 块:
~/.claude/settings.json{
"env": {
"ANTHROPIC_BASE_URL": "https://otokapi.com",
"ANTHROPIC_AUTH_TOKEN": "sk-YOUR-API-KEY",
"ANTHROPIC_MODEL": "换成你查到的模型 ID",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "换成你查到的模型 ID",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "换成你查到的模型 ID",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "换成一个便宜的小模型 ID"
}
}还有一点要知道:走中转时 Claude Code 不校验模型名,任何字符串都原样发出去。所以模型 ID 写错不会在启动时报错,要等第一次请求才暴露。
两个已知副作用
指向第三方地址后,Claude Code 有两个功能会自动关闭。这不是 OpenToken 的限制,是客户端对非官方端点的默认策略。
MCP 工具搜索默认关闭
ANTHROPIC_BASE_URL 指向非官方主机时,MCP tool search 默认被禁用。依赖这个功能的话可以显式打开:
~/.claude/settings.json{
"env": {
"ANTHROPIC_BASE_URL": "https://otokapi.com",
"ANTHROPIC_AUTH_TOKEN": "sk-YOUR-API-KEY",
"ENABLE_TOOL_SEARCH": "true"
}
}Remote Control 不可用
从 Claude Code v2.1.196 起,只要 ANTHROPIC_BASE_URL 指向 api.anthropic.com 以外的主机,Remote Control 就会被禁用。这个没有开关,用中转就用不了它。
切回官方账号
想暂时用回自己的 Claude 订阅,把 ~/.claude/settings.json 里的 env 块删掉再重启即可。
需要经常来回切,用 CC Switch 比手动改文件省事得多。