能力
Hermes 接入 OpenAI Codex 设备代码登录
用 ChatGPT Plus 或 Pro 订阅调 GPT-5、不用单独买 API tier key。OpenAI 给 Codex CLI 留了一个 device-code OAuth 流程,Hermes 适配了,意味着你订阅了 Plus 就能在 Hermes 里把 GPT-5 当主力模型用,不再需要 OPENAI_API_KEY。
为什么要这个
OpenAI 现在有两套计费体系:
- API tier:开发者 dashboard 申请,按 token 计费,
sk-proj-...这种 key - ChatGPT 订阅:Plus / Pro,月费固定,含一定 GPT-5 使用配额,不发 API key
很多个人用户订了 Plus($20/月)但不需要也不想再单独充 API tier 余额。OpenAI 给 Codex CLI 留了一个 OAuth 流程,能把订阅额度用在 CLI 工具上。Hermes 适配后,订阅 Plus 的人就能在 Hermes 里直接用 GPT-5。
谁能用
- ChatGPT Plus 订阅者($20/月)
- ChatGPT Pro 订阅者($200/月)
- ChatGPT Team / Enterprise 用户(管理员开了 Codex 权限的)
ChatGPT 免费用户用不了。
第一步:登录
# 在跑 Hermes 的容器里执行
docker exec -it hermes hermes auth login openai-codex
# 输出大概这样:
# 请在浏览器打开:https://chatgpt.com/auth/device
# 输入设备代码:ABCD-1234
# 等待你完成授权...- 浏览器打开提示的 URL(chatgpt.com/auth/device)
- 输入终端显示的 6-8 位设备代码
- 登录你的 ChatGPT 账号(已登录的话直接确认)
- 点击“授权”
- 回到终端,Hermes 自动检测到授权完成,把 token 写到
~/.hermes/auth/openai-codex.json
第二步:在 hermes.json 启用
{
"models": {
"primary": "openai/gpt-5",
"providers": {
"openai": {
"authMode": "codex"
}
}
}
}authMode: "codex" 让 Hermes 调 OpenAI 时不读 OPENAI_API_KEY,而是读 ~/.hermes/auth/openai-codex.json 里的 OAuth access token。token 过期前会自动 refresh。
测试调用
curl http://localhost:8642/v1/chat/completions \
-H "Authorization: Bearer ${API_SERVER_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5",
"messages": [{"role": "user", "content": "ping"}]
}'如果返回正常,OpenAI 那边的“ChatGPT → 设置 → 已链接的应用”里能看到一个 Codex CLI 链接。这就是消耗你订阅额度的入口。
限速:和 ChatGPT 网页版共享
重要:Codex device-code 用的是 ChatGPT 订阅的 GPT-5 配额,不是 API tier 的独立池子。意思是:
- Plus 订阅每 3 小时大约 80 条 GPT-5 messages(按 OpenAI 当前政策)
- 这 80 条是 ChatGPT 网页版 + Codex CLI + Hermes 共享的总额度
- 用满了会有 cooldown,期间所有客户端都用不了 GPT-5
- Pro 订阅额度高很多,但也不是无限
所以用 Codex 登录适合:低中频、对模型质量敏感的对话场景(比如自己的 Telegram bot 用来研究问题)。不适合:高 QPS 的客服机器人(额度撑不住)。
和 OpenAI API tier key 的区别
| 维度 | Codex 设备代码 | API tier key |
|---|---|---|
| 计费 | 固定订阅 $20/月(Plus) | 按 token 计费 |
| 限速 | 共享 ChatGPT 配额 | 独立 RPM/TPM |
| 能用模型 | GPT-5 / o3 等订阅版模型 | 所有 API 模型 |
| 不可用 | Assistants API / fine-tune | 无限制 |
| 适合场景 | 个人项目、低频高质 | 生产 / 高 QPS |
同时配两个:fallback 备选
想保险一点,可以两种都配。Codex 限速时自动 fallback 到 API tier key(前提:你两个都有):
{
"models": {
"primary": "openai/gpt-5",
"providers": {
"openai": {
"authMode": "codex",
"apiKeyFallback": "${OPENAI_API_KEY}"
}
}
}
}注意这违反“BYOK 全流量”约束,因为有两个 OpenAI key 在轮转。Hermes 默认会拒绝这种配置,必须显式开 allowMixedAuth: true。
常见问题
device-code 一直显示 pending
你没在浏览器完成授权。打开 chatgpt.com/auth/device,输入终端给的代码,登录确认。
显示 invalid_grant 或 401
- token 过期了,重新跑
hermes auth login openai-codex - OpenAI 撤销了 Codex CLI 的授权(在 ChatGPT 设置 → 已链接的应用里把它删了)—— 重新授权即可
- 账号被 ChatGPT 风控限制(VPN 跨地区频繁登录)
调一会儿就开始报 rate_limit
Plus 订阅的 GPT-5 配额用完了。等 3 小时 cooldown,或者临时换 primary 到 OpenRouter / Anthropic。
能用 Codex 登录调 GPT-5-pro 吗
GPT-5-pro 是 ChatGPT Pro 订阅的专属模型。Plus 订阅不能调。Pro 订阅可以,但限速更紧。
token 存储路径在哪
~/.hermes/auth/openai-codex.json。文件包含 access_token、refresh_token、过期时间。这个文件等同于你的登录态,泄露相当于别人能用你的 ChatGPT 订阅,要保管好。
Hermes 还支持的其他 OAuth provider
- Anthropic OAuth(Claude Pro / Max)
- Gemini OAuth(Google AI Plus / Pro)
托管版:OpenClaw Launch
托管版给每个 Hermes 实例发独立的 OpenRouter sub-key,开箱即用。如果要切到 Codex 设备代码登录,Dashboard → Models → OpenAI → 选“Codex 设备代码”,会引导你完成 device-code 流程。 OpenClaw Launch 首月 $3,之后 $6/月。