一个本地中转服务,让 OpenCode 使用你的 ChatGPT Plus/Pro 订阅,直接调用 Codex 后端模型。
不需要 CC Switch,不依赖任何第三方配置管理器。 中转站自己完成 Codex OAuth 登录和 token 刷新,向 OpenCode 暴露标准 OpenAI Responses API。
OpenCode (@ai-sdk/openai)
↓ POST /v1/responses
本机中转站 127.0.0.1:15722 (Node.js)
↓ Bearer access_token (支持代理热切换)
https://chatgpt.com/backend-api/codex
- 网页端可视化登录:支持在控制台点击一键唤起登录,弹窗展示授权验证码与一键复制,自动检测登录成功并平滑刷新
- 代理热加载与弹窗提醒:
- 页面右上角提供⚙️设置面板,支持动态修改代理端口(如 Clash
7890、v2rayN10809等),输入direct即可免代理直连,修改后立即生效无需重启服务 - 首次启动若未配置代理会自动弹窗引导设置
- 页面右上角提供⚙️设置面板,支持动态修改代理端口(如 Clash
- 全部模型可选:点击控制台“点击同步模型”自动从 Codex 同步可用模型列表,每个模型预设四档思考强度(low/medium/high/xhigh)
- Fast 1.5x 模式:控制页一键开关,动态注入
service_tier: priority - 额度实时查询:支持在控制页查看官方用量及剩余重置周期,并支持手动刷新
- 流式传输:完整 SSE 支持,逐 token 实时返回
- 自动重试:TLS 瞬时断开自动重连,最多 5 次,间隔递增
- 开箱即用:Windows 用户双击
start.bat自动检测 Node 环境并自动补全npm install依赖,防竞态延迟唤起浏览器
- Node.js 18+ (推荐 v20 或 v22)
- ChatGPT Plus/Pro 订阅
- 本地科学上网代理软件(国内环境),或海外直连网络
- 克隆或下载本项目解压:
git clone https://github.com/wthsama/opencode-codex-bridge.git cd opencode-codex-bridge - 直接双击运行根目录下的
start.bat。- 脚本会自动检查 Node.js 环境并自动执行
npm install安装依赖。 - 服务启动后会自动在浏览器中打开控制台页面
http://127.0.0.1:15722/。
- 脚本会自动检查 Node.js 环境并自动执行
git clone https://github.com/wthsama/opencode-codex-bridge.git
cd opencode-codex-bridge
npm install
npm start # 或 node src/index.js启动后在浏览器访问 http://127.0.0.1:15722/。
- 设置网络代理:
- 首次打开网页会弹出代理配置面板。
- 如果你在国内并开启了代理软件,填写对应本地端口(例如
http://127.0.0.1:7890或http://127.0.0.1:10809)。 - 如果你在海外或不需要代理,填入
direct即可直连。点击保存立即生效。
- 账号登录:
- 在控制页面点击 “浏览器登录” 按钮。
- 弹窗会显示您的 授权验证码 并提供一键复制,点击“打开授权页面”进入 OpenAI 验证页面粘贴并确认授权。
- 授权完毕后网页端会自动感知并提示登录成功,控制台显示您的账号邮箱。
(亦可通过命令行执行
npm run login进行登录)
- 同步模型到 OpenCode:
- 在控制页点击 “点击同步模型”,中转站会自动将最新可用模型写入
~/.config/opencode/opencode.json。 - 同步状态显示就绪后,重启 OpenCode 即可在模型列表中选择 Codex 模型使用!
- 在控制页点击 “点击同步模型”,中转站会自动将最新可用模型写入
除了在网页右上角⚙️齿轮图标中随时修改保存外,也可以通过系统环境变量指定默认代理:
# Windows CMD
set HTTPS_PROXY=http://127.0.0.1:7890
# PowerShell
$env:HTTPS_PROXY="http://127.0.0.1:7890"
# Linux / macOS
export HTTPS_PROXY=http://127.0.0.1:7890网页设置面板中优先级高于环境变量。
项目提供了开箱即用的 Dockerfile 和 docker-compose.yml,适合部署在 NAS、家庭服务器或 Linux 主机上。
# 构建并后台启动
docker compose up -d --build可通过环境变量或根目录 .env 文件覆盖默认配置:
| 变量 | 默认值 | 说明 |
|---|---|---|
PORT |
15722 |
监听端口 |
HOST |
0.0.0.0 (Docker) / 127.0.0.1 (本地) |
监听地址(容器内默认绑定全接口) |
HTTPS_PROXY |
- | 上游 HTTPS 代理地址(如 http://192.168.1.x:7890) |
BRIDGE_DATA_DIR |
./data |
数据持久化目录(存放 auth.json 与 settings.json) |
OPENCODE_CONFIG_DIR |
~/.config/opencode |
挂载到容器的 OpenCode 配置目录 |
OPENCODE_CONFIG_PATH |
容器内默认路径 | 自定义 OpenCode 配置文件路径 |
OPENCODE_BASE_URL |
自动推导 | 自定义同步写入 OpenCode 配置的 base URL |
- 容器会将
/app/data挂载到宿主机(默认./data),OAuth 登录生成的auth.json与设置项会持久保存。 - 登录方式与本地一致:
- 访问控制网页(默认
http://<服务器IP>:15722)点击登录,获取 8 位验证码并完成授权; - 或在容器内运行 CLI 登录:
docker compose exec opencode-codex-bridge node src/cli-login.js。
- 访问控制网页(默认
| 路径 | 方法 | 说明 |
|---|---|---|
/ |
GET | 控制页面 |
/health |
GET | 健康检查 |
/status |
GET | JSON 状态 |
/login/start |
POST | 发起 OAuth 登录流程 |
/login/session |
GET | 获取当前登录会话状态与验证码 |
/login/cancel |
POST | 取消登录会话 |
/login/status |
GET | 查询账号认证状态 |
/settings/proxy |
GET/POST | 查询 / 热更新代理配置 |
/fast |
GET/POST | Fast 模式开关 |
/sync |
POST | 手动同步模型到 OpenCode |
/quota |
GET/POST | 查看缓存额度 / 手动刷新官方额度 |
/v1/models |
GET | 模型列表接口 |
/v1/responses |
POST | Responses API 代理 |
├── src/
│ ├── index.js # Express 服务、控制面板、代理及登录路由
│ ├── auth.js # Codex OAuth 设备流登录、验证码下发、token 管理
│ ├── proxy.js # Responses API 代理、SSE 流式转发、自动重试
│ ├── models.js # 模型列表与额度拉取
│ ├── sync.js # 同步模型配置到 opencode.json
│ ├── settings.js # Fast 模式与代理配置持久化、Agent 热加载
│ └── cli-login.js # CLI 独立登录脚本
├── start.bat # Windows 一键启动脚本(含环境与依赖自检)
└── package.json
| 问题 | 解决 |
|---|---|
| 连接超时 / 无法访问 OpenAI | 点击网页右上角⚙️齿轮,确认本地代理端口设置正确;若无需代理请输入 direct |
| 启动时黑框一闪而过 | 检查系统是否安装了 Node.js(v18 及以上)并配置到了系统 PATH |
| 登录时验证码没有出来 | 检查网络代理是否联通,若代理端口有变动请在⚙️设置中更新后重试 |
| Model not found | 该模型在当前 Responses API 不可用,请点击“点击同步模型”重新拉取 |
MIT