LocalSync2026-09-04
DSH 对接 OpenAI Codex(ChatGPT 订阅)完整教程
无需第三方插件、无需 API Key 充值,直接用你的 ChatGPT Plus / Pro 订阅在 DSH 里跑 OpenAI Codex 全家桶模型(GPT-5.4/5.5/5.6 Luna/Sol/Terra、5.3 Codex Spark),27.2 万上下文,方案已经实测验证。
一、方案概览
DSH(DeepSeek Harness)是一个本地 AI 工作台,所有能力以插件形式加载。其中 pi-ai(LLM 路由服务)从内置版本开始就自带 openai-codex provider,专门对接 ChatGPT 官方订阅:
- 端点:
https://chatgpt.com/backend-api(走/codex/responses) - 认证:OAuth 设备码登录(Device Code Flow)
- 模型:GPT-5.4 / GPT-5.5 / GPT-5.6 Luna / Sol / Terra、GPT-5.3 Codex Spark 等
- 上下文:约 27.2 万 token
所以不需要安装任何第三方插件或桥接服务,要做的只有三件事:
- 在
settings.yaml里启用openai-codexprovider 路由 - 配置代理(ChatGPT 官方域名有国家/地区限制,必须走代理)
- 用设备码完成一次登录,把凭证写入
~/.dsh/.credentials.yaml
下面逐步来。
二、前置条件
| 项目 | 要求 |
|---|---|
| ChatGPT 订阅 | Plus 或 Pro 任意一档均可(必须是订阅账号,纯免费账号拿不到 Codex 凭证) |
| 网络 | 能访问 chatgpt.com / auth.openai.com(国内需代理) |
| 本地代理 | 已有一个可用的 HTTP 代理,例如 127.0.0.1:1080(本教程以此为例) |
| DSH 版本 | 建议使用较新版本(已验证 rc.8 系可用) |
| 本机环境 | Windows(PowerShell)+ Node.js 已安装(登录脚本是 Node 写的) |
注意:OpenAI 官方对来自受限国家/地区的请求会返回 HTTP 403,所以代理这一步不是可选项,而是硬性要求。
三、第一步:配置代理环境变量(关键,否则 403)
DSH 的 Node 进程默认直连,直连 chatgpt.com 会被 403 国家限制挡下。必须设置用户级环境变量并重启 DSH。
以 Windows 为例,在 PowerShell(管理员或普通用户均可,要写用户级环境变量)执行:
[Environment]::SetEnvironmentVariable("NODE_USE_ENV_PROXY", "1", "User")
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://127.0.0.1:1080", "User")
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://127.0.0.1:1080", "User")
NODE_USE_ENV_PROXY=1是让 Node 官方fetch走环境变量代理的关键开关,少了它即使设了 HTTP_PROXY 也不生效。
设置完 完全退出并重启 DSH 桌面端,让新环境变量生效。
四、第二步:在 settings.yaml 启用 openai-codex 路由
打开 DSH 配置文件 ~/.dsh/settings.yaml(~ 即用户主目录,如 C:\Users\你的用户名\.dsh\settings.yaml),找到 llm-pi-ai: 段,在其 providers: 下加入:
llm-pi-ai:
providers:
openai-codex:
displayName: OpenAI Codex(ChatGPT 订阅)
说明:
- 空配置即继承内置 catalog:你不需要写 baseUrl、不需要写模型列表,留空的
openai-codex:(或只加个 displayName)就会自动继承 DSH 内置的完整定义。 - 该配置热生效,无需重启(配置文件有 watcher 监听)。
五、第三步:设备码登录,写入凭证
DSH 桌面端的设置界面本身没有 OAuth 登录入口,所以用脚本完成设备码登录。官方流程三步:请求设备码 → 浏览器授权 → 轮询换 token 并写入凭证。
推荐使用配套脚本(位于 ~/.dsh/scripts/login-chatgpt.js),它一条命令覆盖全流程。
5.1 请求设备码
cd ~/.dsh/scripts
node login-chatgpt.js request
输出类似:
{
"deviceAuthId": "xxxx-xxxx",
"userCode": "ABCD-EFGH",
"intervalSeconds": 5,
"verificationUri": "https://auth.openai.com/codex/device",
"expiresInSeconds": 900
}
记住其中的 deviceAuthId 和 userCode。
5.2 浏览器完成授权
- 打开
https://auth.openai.com/codex/device - 输入上面返回的
userCode(如ABCD-EFGH) - 用你的 ChatGPT Plus/Pro 订阅账号登录并确认授权
- 设备码有效期约 15 分钟,超时需重新 request
5.3 轮询换 token 并写凭证
在同一个终端继续执行:
node login-chatgpt.js poll <deviceAuthId> <userCode>
脚本会:
- 每 5 秒轮询一次授权状态
- 授权完成后换取 access/refresh token
- 从 JWT 里提取
chatgpt_account_id - 把凭证写入
~/.dsh/.credentials.yaml的records.llm-pi-ai/openai-codex节点(写入前自动备份一份.bak-chatgpt)
看到 LOGIN_SUCCESS 即成功。凭证文件写入后 chokidar 热加载,无需重启 DSH。
备选方案:如果只拿到设备码,也可以用 PowerShell 版
~/.dsh/scripts/login-chatgpt.ps1,它接收-DeviceAuthId与-UserCode参数做同样的轮询+写凭证。
5.4 验证凭证
node login-chatgpt.js verify
看到 RECORD_OK accountId=... 且 expires 还没过期,就说明凭证有效。
六、第四步:在 DSH 里使用 Codex 模型
登录完成后:
- 打开 DSH,进入 设置 → 模型 页
- 在 provider 列表里选择 OpenAI Codex(ChatGPT 订阅)
- 选一个模型(GPT-5.4 / 5.5 / 5.6 Luna/Sol/Terra / 5.3 Codex Spark 等)
- 新建会话对话,验证模型能正常回复
如果设置页没有该 provider 卡片,重启一次 DSH 即可。
七、常见问题排查
| 现象 | 原因 | 解决 |
|---|---|---|
| 请求返回 HTTP 403 | Node 进程直连被 OpenAI 国家/地区限制 | 确认已设 NODE_USE_ENV_PROXY=1 + HTTP(S)_PROXY,并重启 DSH |
| 登录时提示「账号不是 ChatGPT 订阅」 | 用了免费账号 / token 里没有 chatgpt_account_id |
换 Plus/Pro 订阅账号 |
| 设备码 15 分钟过期 | 授权超时 | 重新 request 获取新码 |
| 设置页没有 Codex 卡片 | provider 未启用 / 进程没重启 | 检查 settings.yaml 的 providers.openai-codex;重启 DSH |
| token 过期 | access token 有有效期 | 重新走一遍登录流程(脚本已支持 refresh 字段,可复用) |
| 代理不起作用 | 只设了 HTTP_PROXY 没设开关 | 必须同时有 NODE_USE_ENV_PROXY=1 |
八、进阶:协议细节(给想深入了解的人)
- 认证端点:
https://auth.openai.com/api/accounts/deviceauth/usercode(请求设备码)、.../token(轮询)、https://auth.openai.com/oauth/token(换 token) - 验证页:
https://auth.openai.com/codex/device - 模型端点:
https://chatgpt.com/backend-api/codex/responses,OpenAI 要求请求体为 input 数组,且需带store: false、stream: true - 凭证存储:
~/.dsh/.credentials.yaml,节点结构为records.llm-pi-ai/openai-codex,类型kind: grant,payload 为{ type: oauth, access, refresh, expires, accountId } - 无需任何第三方插件:一切均由 DSH 内置
pi-ai的openai-codexprovider 完成
九、总结
一句话:开代理 + 启用内置 provider + 设备码登录,三步就能在 DSH 里用上 ChatGPT 订阅的 Codex 模型,全程不花一分 API 钱、不装任何插件。
核心记忆点:
settings.yaml里加一行openai-codex:(空配置即继承内置定义,热生效)- 用户级环境变量
NODE_USE_ENV_PROXY=1+HTTP(S)_PROXY=127.0.0.1:1080,重启 DSH(403 关键) - 用
~/.dsh/scripts/login-chatgpt.js完成设备码登录,凭证热加载进~/.dsh/.credentials.yaml - 设置→模型 里选 OpenAI Codex 即可开聊
需要代理才能访问 ChatGPT 官方服务,请自备合规网络环境。

评论