Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

OpenCode Codex Bridge

一个本地中转服务,让 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、v2rayN 10809 等),输入 direct 即可免代理直连,修改后立即生效无需重启服务
    • 首次启动若未配置代理会自动弹窗引导设置
  • 全部模型可选:点击控制台“点击同步模型”自动从 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 订阅
  • 本地科学上网代理软件(国内环境),或海外直连网络

安装与启动

方式一:Windows 用户(最简,双击即用)

  1. 克隆或下载本项目解压:
    git clone https://github.com/wthsama/opencode-codex-bridge.git
    cd opencode-codex-bridge
  2. 直接双击运行根目录下的 start.bat。
    • 脚本会自动检查 Node.js 环境并自动执行 npm install 安装依赖。
    • 服务启动后会自动在浏览器中打开控制台页面 http://127.0.0.1:15722/。

方式二:命令行启动

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/。


使用流程

  1. 设置网络代理:
    • 首次打开网页会弹出代理配置面板。
    • 如果你在国内并开启了代理软件,填写对应本地端口(例如 http://127.0.0.1:7890 或 http://127.0.0.1:10809)。
    • 如果你在海外或不需要代理,填入 direct 即可直连。点击保存立即生效。
  2. 账号登录:
    • 在控制页面点击 “浏览器登录” 按钮。
    • 弹窗会显示您的 授权验证码 并提供一键复制,点击“打开授权页面”进入 OpenAI 验证页面粘贴并确认授权。
    • 授权完毕后网页端会自动感知并提示登录成功,控制台显示您的账号邮箱。 (亦可通过命令行执行 npm run login 进行登录)
  3. 同步模型到 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

网页设置面板中优先级高于环境变量。


Docker 部署

项目提供了开箱即用的 Dockerfile 和 docker-compose.yml,适合部署在 NAS、家庭服务器或 Linux 主机上。

1. 使用 Docker Compose(推荐)

# 构建并后台启动
docker compose up -d --build

2. 环境变量说明

可通过环境变量或根目录 .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

3. 数据持久化与登录

  • 容器会将 /app/data 挂载到宿主机(默认 ./data),OAuth 登录生成的 auth.json 与设置项会持久保存。
  • 登录方式与本地一致:
    • 访问控制网页(默认 http://<服务器IP>:15722)点击登录,获取 8 位验证码并完成授权;
    • 或在容器内运行 CLI 登录:docker compose exec opencode-codex-bridge node src/cli-login.js。

API 端点

路径 方法 说明
/ 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

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages