跳到主内容

dsh-codex-provider

8Star1Fork1Issue0Watching

给 DSH 接 OpenAI Codex 设备码 OAuth,用 ChatGPT Plus/Pro 订阅跑 Codex 模型,免 API Key。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
main
chatgptcodexdeepseek-harnessdsh-pluginoauthopenai

安装

命令web profile
$ dsh plugin --profile web add dsh-codex-provider

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 Hu9956/dsh-codex-provider:先查看仓库 https://github.com/Hu9956/dsh-codex-provider 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

给 DSH 接上 OpenAI Codex:通过设备码 OAuth 登录你的 ChatGPT 账号,把 ChatGPT Plus / Pro 订阅额度接到 DSH 自带的 openai-codex 模型路由上,免去 API Key。

核心能力

  • 设备码 OAuth 登录:在「设置 → 供应商」点击登录后,按页面显示的设备码去 OpenAI 授权页完成登录,无需准备 API Key
  • 复用 Codex CLI 登录态:直接读取本机 ~/.codex/auth.json 中已有的 access/refresh token,省掉二次授权
  • 自动刷新令牌:后台每分钟检查 access token 过期时间,剩余不足 10 分钟时用 refresh_token 自动轮换(refresh_token 也会一起换新)
  • 跨实例刷新锁:通过 ~/.dsh/.codex-provider-refresh.lock 文件锁保证同机多 DSH 进程串行刷新,避免互相踩坏 token
  • 供应商管理面板:登录后展示脱敏账号、套餐(Plus/Pro)、令牌过期时间,支持一键退出登录
  • 自动激活内置 Codex 路由:登录成功后将 OPENAI_CODEX_API_KEY 写入 llm-pi-ai.providers.openai-codex.apiKeyEnv,模型选择器里 gpt-5.4 等 Codex 模型直接可选

技术实现

  • 语言: JavaScript (ESM,"type": "module"),源码无 TS 类型标注但依赖 DSH 的 Typert 装饰器运行时
  • 关键依赖: @deepseek-ai/dsh-typert-protocol(Remote/TypertRemoteService,host-client 远程调用)、@deepseek-ai/dsh-credentials(凭证存取)、@deepseek-ai/dsh-settings(写入 llm-pi-ai.providers.openai-codex.apiKeyEnv)
  • 架构模式: 双端插件 + Typert 远程服务。host 侧 CodexGateway 继承 TypertRemoteService 暴露 status/loginStart/loginStatus/loginCancel/importExisting/logout 六个远程方法;client 侧用 __ModuleLoader__ 格式注册 UI 组件并 $mount 同一份远程描述,实现浏览器端不接触原始 token
  • 入口文件: lib/index.js(host)、lib/client.js(web bundle),安装时由 cordis.patch.yml 注入 DSH bundle

适用场景

拥有 ChatGPT Plus / Pro 订阅、又想把 Codex 系列模型(gpt-5.4、gpt-5.5、gpt-5.6-*)放进 DSH 模型选择器的用户。痛点是 DSH 自带的 openai-codex 路由只认凭证引用而没有自带登录入口,没有这个插件时要么掏 API Key 计费、要么手动维护 token。本插件补上登录 UI、令牌刷新和凭证回收这最后一公里。同样适合已经跑 Codex CLI 想复用本机登录态、避免重复授权的人。

前置依赖与兼容性

依赖最低版本说明
@deepseek-ai/dsh>=0.1.0-rc.6通过 peerDependencies 声明(typert-protocol / credentials / settings 等 host 包均要求同版本号)
@deepseek-ai/cordis^4.0.1host 插件运行时,peerDependencies 中标为 optional
Node.js>=22package.json engines.node 硬要求
React^18.2.0client 渲染依赖,仅在使用 web profile 时需要
平台跨平台host 代码无平台绑定;用户面仅支持 DSH web profile(client.platform = "web"),CLI/TUI 场景不在此插件覆盖范围
原生模块无全部为纯 JS + Node 内置模块(node:fs / node:os / node:path)+ fetch

安装方式

dsh plugin --profile web add dsh-codex-provider

安装时会自动写入 cordis.patch.yml,无需手动编辑。完成后重启 dsh web,在「设置」侧栏出现 供应商 分区即可使用。

配置项

本插件无需额外配置。所有运行时状态(access token、refresh token、登录会话)通过 DSH 凭证库与 settings 写入,不读取任何 Schema 字段。

配置类型说明默认值
——本插件无需额外配置—

进阶信息(仅供参考,源码中未声明为用户配置项):刷新锁文件路径由环境变量 DSH_HOME 决定,默认 ~/.dsh/.codex-provider-refresh.lock;凭证引用写入 llm-pi-ai.providers.openai-codex.apiKeyEnv,设备码登录入口在 https://auth.openai.com/codex/device。

常见问题

Q: 需要 OpenAI API Key 吗?

A: 不需要。本插件消费的是 ChatGPT Plus / Pro 订阅额度,与 Codex CLI 走同一套 OAuth 通道,不走 API 计费。

Q: 已经装了 Codex CLI,能复用登录吗?

A: 可以。在供应商页点击「导入本机 Codex CLI 登录态」,插件直接读取 ~/.codex/auth.json,无需重新走设备码授权。

Q: 登录失败提示设备码授权被拒绝怎么办?

A: 需要先在 ChatGPT 网页端「设置 → 账户安全与登录」中打开「为 Codex 启用设备代码授权」开关。登录成功后建议关掉,下次登录前再打开。

Q: 令牌会自动刷新吗?需要手动操作吗?

A: 自动。host 侧每 60 秒检查一次,access token 剩余寿命低于 10 分钟就用 refresh_token 换新(refresh_token 也会一起轮换),多 DSH 进程之间通过文件锁串行避免竞争。

Q: 凭证存在哪里?浏览器能看到吗?

A: 凭证写入 DSH 凭证库(key 为 OPENAI_CODEX_API_KEY 与 OPENAI_CODEX_REFRESH_TOKEN),浏览器侧只能拿到脱敏账号 ID、套餐类型、过期时间等状态信息,原始 token 不会下发到前端。

Q: 同时跑 Codex CLI 会被踢下线吗?

A: 共享同一 OAuth 会话。任一侧刷新令牌后,另一侧的旧 refresh_token 可能失效,此时在 Codex CLI 侧重新 codex login 即可恢复。

Q: 支持哪些模型?

A: 由当前 DSH 版本内置的 openai-codex 路由决定,README 举例包括 gpt-5.4、gpt-5.5、gpt-5.6-* 等;具体可见性还要看你的 OpenAI 账户权限。

Q: 怎么卸载?

A: 通过 dsh 移除该插件即可。host 侧会自动清空凭证库两条 key,并撤销 settings 中的 apiKeyEnv 引用,重启后设置里的「供应商」分区消失。

上手难度

入门 — 仅需在「设置 → 供应商」点击一次「使用 OpenAI 账号登录」,按页面引导完成设备码授权即可;不涉及代码改动、配置文件或环境变量。

已知问题与限制

  • 设备码授权依赖 OpenAI 账户设置:登录前必须先在 ChatGPT 网页端开启「为 Codex 启用设备代码授权」,否则 OAuth 端会拒绝发放设备码(README.md:44-46)
  • 与 Codex CLI 共享 OAuth 会话:任一侧刷新令牌后,另一侧持有的旧 refresh_token 可能失效,需要在失效侧重新登录(README.md:57)
  • 仅支持 DSH web profile:客户端 bundle 声明 platform: "web",CLI/TUI 场景不在此插件覆盖范围(package.json:57)
  • 设备码有效期 15 分钟:从拿到设备码起 15 分钟内未完成授权即过期,需要重新发起登录流程(lib/index.js:23)
  • 刷新锁等待上限 45 秒:同机多 DSH 进程同时触发刷新时,第二个进程最多等 45 秒;锁文件超过 2 分钟未释放会被视为陈旧锁自动回收(lib/index.js:26-27)
  • 依赖 DSH RC 版本:当前针对 @deepseek-ai/dsh 0.1.0-rc.6 验证,DSH 后续若调整插件接口,本插件可能需要同步升级(README.md:70)

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/Hu9956/dsh-codex-provider)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录