Bamboo Relay

ChatGPT 客户端(Codex)

在新版 ChatGPT 桌面应用的 Codex 模式中接入 Bamboo Relay。

这不是 ChatGPT 聊天接口教程

本页配置的是 ChatGPT 桌面应用里的本地 Codex 模式。ChatGPT 普通聊天、Work、网页端、移动端和 Codex 云端任务不会读取本机 ~/.codex/config.toml,也不能通过本页方法切换到 Bamboo。

OpenAI 已把原 Codex 桌面端整合进新版 ChatGPT 客户端。进入应用后需要选择 Codex 并新建本地任务,模型请求才会由本机 Codex 运行时读取配置并发送到 Bamboo。

先看结论

你的使用方式应该看哪里
ChatGPT 桌面应用里的 Codex继续阅读本页
终端里的 codex 命令Codex CLI 快速接入
VS Code、Cursor、Windsurf 扩展可复用本页配置,但需要重启编辑器
ChatGPT 普通聊天、网页端或移动端不支持配置 Bamboo Base URL

对于 new-api 一类 OpenAI 兼容中转,桌面端必须调用 Responses API。Bamboo 地址写到 /v1,Codex 会自行追加 /responses;不能配置为 Chat Completions。

准备接入

开始前只要准备两样东西:

  1. Bamboo API Key:进入令牌管理,创建并复制一个 Key,格式类似 sk-xxxxxx
  2. 模型 ID:进入模型广场,复制你要使用的模型名称。

另外,请先安装或更新 ChatGPT 桌面应用。下面会告诉你每一步该打开什么、复制什么,不需要理解配置文件的技术原理。

为什么要先备份

如果以前用过 Codex,请先备份 ~/.codex/config.toml~/.codex/auth.json。切换后旧会话可能暂时不显示,恢复备份后通常会重新出现。

方案一:用 Bamboo Key 连接(推荐)

如果你只是想尽快用起来,请只按这个方案操作,不需要再看后面的方案二。整个过程只有三步:保存 Key、复制配置、重启客户端。

第一步:保存 Bamboo API Key

打开电脑的终端:

  • macOS:按 Command + 空格,搜索并打开“终端”。
  • Windows:在开始菜单搜索并打开“PowerShell”。

把下面命令中的 sk-your-bamboo-key 换成你刚才复制的 Bamboo Key,然后整行粘贴到终端并按回车。

macOS / Linux:

printf '%s' 'sk-your-bamboo-key' | codex login --with-api-key

Windows PowerShell:

'sk-your-bamboo-key' | codex login --with-api-key

命令执行完没有报错就可以继续;终端没有显示“登录成功”也没关系。

如果提示 codex: command not found 或“无法识别 codex”,说明电脑还没有安装 Codex 命令行工具。先按照 Codex CLI 快速接入中的安装步骤完成安装,再回来重新运行上面的命令。

不要把 Key 发给别人

Bamboo Key 相当于账户密码。不要截图公开,也不要把 Bearer 一起复制进去。怀疑 Key 泄露时,请立即到令牌管理删除并重新创建。

第二步:打开配置文件

继续在终端中运行下面的命令。它只会打开 Codex 的配置文件,不会启动支付或产生模型费用。

macOS:

mkdir -p ~/.codex && touch ~/.codex/config.toml && open -e ~/.codex/config.toml

Windows PowerShell:

New-Item -ItemType Directory -Force "$HOME\.codex" | Out-Null; notepad "$HOME\.codex\config.toml"

打开文件后:

  1. 如果里面已经有内容,先复制一份保存到别处作为备份。
  2. 清空文件,把下面整段配置粘贴进去。
  3. 只修改第一行:把 your-model-id 换成你在模型广场复制的模型 ID。
  4. 保存文件并关闭编辑器。
model = "your-model-id"
model_provider = "bamboo"
model_reasoning_effort = "high"

[model_providers.bamboo]
name = "Bamboo Relay"
base_url = "https://api.bamboonode.cn/v1"
wire_api = "responses"
requires_openai_auth = true
supports_websockets = false

例如模型广场显示的模型 ID 是 gpt-5.4,第一行就改成:

model = "gpt-5.4"

其他行不要修改,也不要在地址后面添加 /responses

第三步:重启并测试

  1. 完全退出 ChatGPT 客户端。macOS 使用 Command + Q;Windows 从系统托盘退出。
  2. 重新打开 ChatGPT 客户端。
  3. 进入 Codex,不要进入普通 Chat 或 Work。
  4. 打开一个本地文件夹,然后新建任务。
  5. 发送:只回复 OK,不读取文件,不调用工具。

如果客户端回复 OK,再到 Bamboo 调用日志确认出现了一条新的 /v1/responses 请求。能看到这条日志,才说明请求确实经过了 Bamboo。

完成后会发生什么

ChatGPT 客户端中的本地 Codex 请求会使用 Bamboo Key 和你选择的模型。这个操作不会给 ChatGPT Plus 续费,也不会把普通 ChatGPT 网页聊天改成 Bamboo。

方案二:保留 ChatGPT 登录(高级)

如果不想替换 Codex 的 ChatGPT 登录凭据,可以让 Bamboo 提供商使用独立环境变量。这种方式不会修改 auth.json,但桌面端目前没有完善的多提供商切换界面,模型选择器、历史会话和部分插件可能表现不完整。

~/.codex/.env 中加入:

BAMBOO_API_KEY=sk-your-bamboo-key

然后在 ~/.codex/config.toml 中使用:

model = "your-model-id"
model_provider = "bamboo"
model_reasoning_effort = "high"

[model_providers.bamboo]
name = "Bamboo Relay"
base_url = "https://api.bamboonode.cn/v1"
env_key = "BAMBOO_API_KEY"
wire_api = "responses"
requires_openai_auth = false
supports_websockets = false

桌面端的当前限制

自定义提供商可以处理本地 Codex 推理请求,但还不是桌面界面中的一等提供商。不要依赖模型下拉框判断是否生效,也不要在测试过程中切换回内置模型;以 Bamboo 调用日志为准。

在 ChatGPT 客户端中验证

1. 完全重启应用

  • macOS 使用 Command + Q 退出,而不是只关闭窗口。
  • Windows 从系统托盘退出,并在任务管理器确认 ChatGPT/Codex 相关进程已经结束。
  • 修改 config.tomlauth.json.env 后,都要重新启动应用。

2. 进入正确的 Codex 模式

  1. 打开 ChatGPT 桌面应用。
  2. 选择 Codex,不要停留在普通 Chat 或 Work。
  3. 打开一个本地项目目录。
  4. 点击 New chat / 新建任务;不要复用切换提供商之前的旧任务。
  5. 发送:
只回复 OK,不读取文件,不调用工具。

3. 检查 Bamboo 调用日志

客户端返回 OK 后,立即进入 Bamboo 调用日志,按 API Key、模型和时间查找记录。以下条件同时满足才算接入成功:

  • 请求路径是 /v1/responses
  • 模型与 config.toml 中的 model 一致;
  • 返回状态为成功并产生少量 Token 用量;
  • 请求时间与客户端测试时间一致。

仅看到 ChatGPT 客户端回复不能证明接入成功。如果 Bamboo 没有新日志,请检查是否进入了本地 Codex 模式、是否新建了任务,以及模型选择器是否覆盖了配置。

Bamboo / new-api 服务端要求

Bamboo 当前代码已经提供 /v1/responses/v1/responses/compact。要让桌面 Codex 正常工作,所选渠道还必须满足:

  • 支持 Responses 流式输出;
  • 支持列表形式的 input
  • 支持函数与工具调用事件;
  • 模型映射后的上游名称真实可用;
  • Nginx、CDN 或网关不能缓冲 SSE 响应。

若渠道只支持 /v1/chat/completions,仅修改客户端配置无法解决,需要在 new-api 中选择支持 Responses 的渠道或完成协议转换。

常见问题

提示需要登录

  • 方案一检查 auth.json 中是否只有一个有效的 OPENAI_API_KEY
  • 方案二检查 ~/.codex/.env 中的变量名是否与 env_key 完全一致。
  • 确认修改的是用户级 ~/.codex/config.toml,项目内 .codex/config.toml 不能覆盖提供商与鉴权配置。

返回 401

  • Bamboo Key 是否完整、有效且未禁用;
  • 方案一使用 requires_openai_auth = true,不要同时配置 env_key
  • 方案二使用 env_keyrequires_openai_auth = false
  • 不要在 Key 中写入 Bearer 前缀。

返回 404

  • base_url 应为 https://api.bamboonode.cn/v1
  • 不要写成 /v1/v1
  • 不要把 /responses 直接追加到 base_url

一直停在 Thinking

  • 确认 supports_websockets = false
  • 查看 Bamboo 日志中是否已经收到 /v1/responses
  • 检查反向代理是否关闭 SSE 缓冲并允许长连接;
  • 用同一个 Key 和模型先在 Codex CLI 中验证,区分客户端问题和服务端问题。

模型下拉框不显示 Bamboo

这是桌面端自定义提供商的已知 UI 限制。顶层 modelmodel_provider 会用于新任务,但 Bamboo 不一定作为可切换项出现在下拉框中。不要使用 model_catalog_json 强行追加模型,它会替换整份内置模型目录,并可能让官方模型或旧会话从界面消失。

旧会话不见了

切换 model_provider 后,桌面端可能只展示当前提供商关联的会话。会话通常仍保存在本地;恢复备份的 config.toml 与原登录方式并重启应用后再查看。

Browser、Computer Use 或插件不可用

第三方 Responses 提供商可以完成基本推理和常规工具调用,但部分 ChatGPT 云端插件、动态工具发现、Browser 和 Computer Use 依赖官方运行时能力,可能无法通过中转使用。这不代表 Bamboo 的 /v1/responses 请求失败。

恢复官方 ChatGPT / Codex

  1. 完全退出 ChatGPT 客户端。
  2. 恢复接入前备份的 config.tomlauth.json
  3. 删除仅为 Bamboo 添加的 ~/.codex/.env 变量。
  4. 重新打开应用并新建任务。

不要直接删除整个 ~/.codex 目录;其中还包含本地会话、日志、Skills 与其他设置。

相关资料

本页目录