dsh-codex-plus:把本机 Codex 订阅接入 DeepSeek Harness

前言

在 DSH 里跑智能体时,模型线路通常要单独配 API key 或自建网关。若你本机已经用 ChatGPT Plus/Pro 登录了 OpenAI Codex CLI,订阅额度与模型 catalog 其实都在本地凭证里,但 Harness 界面默认看不到 5 小时/一周窗口剩余量,也不会自动把 openai-codex 路由写进模型选择器。手动抄 token、改 settings.yaml 既容易过期,也不利于区分「只看额度」和「真正用订阅模型对话」。

下面介绍社区插件 dsh-codex-plus(维护者 mia-wong1016),它读取本机 Codex 登录态,在 Web 侧展示额度与重置券,并在读额度时注册订阅模型;access token 临近过期时会写回 auth.json 并同步到 DSH 凭证存储。无需填写 API key。

这是什么

dsh-codex-plus 属于 DSH 社区目录中的「模型推理」类插件,仓库:github.com/mia-wong1016/dsh-codex-plus。定位是:把你本机已登录的 Codex(ChatGPT Plus/Pro)订阅接到 DeepSeek Harness,用侧边栏面板管额度,用模型选择器走订阅线路,用可选工具把任务交给本地 codex exec。

平台支持 Linux 与 Windows;依赖 Node 20+,不引入 Python 或额外 npm 依赖。许可证为 MIT(见仓库 README)。

核心功能

额度面板

侧边栏页脚有 Codex 胶囊:展示 5 小时窗口、一周窗口的剩余额度,以及剩余重置券数量;侧栏收起到 rail 模式时显示为百分比摘要。点击打开面板,可查看两窗口的已用比例、重置时间,以及每张重置券及其过期日。

重置采用指定重置券:面板用单选列出可用券,按钮只消耗所选券,并重置 5 小时与一周窗口。无可用券时按钮禁用;结果会明确回报(如 reset、nothingToReset、noCredit、alreadyRedeemed)。该操作消耗真实重置券且不可撤销,需显式确认。

面板与宿主通过插件同源路由通信:GET /codex-plus/status、POST /codex-plus/sync、POST /codex-plus/reset(JSON 体 { "creditId": "…" }),由 DSH Web 服务现有的浏览器会话策略保护;页面内不暴露 token。

模型路由

读取额度时,插件会在 llm-pi-ai 命名空间注册订阅线路,使 Codex 模型出现在 DSH 模型选择器中。写入示例(仅替换该 provider 条目,其余 provider 不动):

llm-pi-ai:
  providers:
    openai-codex:
      apiKeyEnv: OPENAI_CODEX_API_KEY
      displayName: Codex (ChatGPT Plus/Pro)
      baseURL: https://chatgpt.com/backend-api

profile 声明完整八模型 catalog(含 README 中列出的 gpt-6-luna、gpt-6-sol 等)。实际 token 存入 DSH credential store,settings.yaml 只保留引用名,不写明文密钥。

凭证续期

access token 剩余不足 24 小时 时,向 auth.openai.com 刷新,并将新的 access_token / refresh_token / id_token 三元组原子写回 <codexHome>/auth.json;POSIX 上文件模式为 0600,Windows 保留 profile ACL。

智能体工具

除 UI 外,插件向 DSH 暴露若干工具,便于在对话里同步额度或委派子任务:

工具 作用
codex 通过 codex exec 执行自包含任务并返回最终答案
codex_quota 读取额度并重新同步 provider 路由
codex_models_sync 刷新 token 并立即重新注册模型
codexprobe 诊断:解析到的 CLI、Codex home、缓存 catalog、额度读取

codex 默认以 read-only 沙箱运行;若外层沙箱已阻止 user namespace,可能导致 Codex 自带 workspace-write 失败,README 建议与 DSH 沙箱配对时使用 danger-full-access 等策略时需自行权衡。

安装与启用

前提:本机已安装 Codex CLI 且完成 codex login,登录信息位于 <codexHome>/auth.json(默认 ~/.codex,可用环境变量 DSH_CODEX_HOME 覆盖)。CLI 查找顺序为 DSH_CODEX_BIN、Linux 常见路径、PATH,以及 Windows 下 %LOCALAPPDATA%\OpenAI\Codex\bin\<hash>\codex.exe 与 npm 垫片等。

官方安装命令如下:

dsh plugin --profile web add dsh-codex-plus

安装后重启 profile 并刷新页面。在会话里将模型切换为 Codex (ChatGPT Plus/Pro),即可用该订阅跑当前对话。

可选配置

配置项均为可选,写在插件 config 下:

- id: codex-plus
  name: 'dsh-codex-plus'
  config:
    codexBin: /usr/local/bin/codex        # 显式 CLI 路径
    codexHome: ~/.codex                   # 显式 CODEX_HOME
    workspace: /path/to/workspace         # shell 沙箱根目录(默认进程 cwd)
    providerRoute: openai-codex           # 要配置的 pi-ai catalog 路由
    providerDisplayName: Codex (ChatGPT Plus/Pro)
    credentialRef: OPENAI_CODEX_API_KEY   # 凭证存储引用名
    syncProviders: true                   # 设为 false 则完全不写 settings
    sandboxPolicy: true                   # false 关闭 workspace-write 策略

若你只要额度面板、打算自行接线 provider,将 syncProviders: false 即可。

典型用法

  1. 本机 codex login 完成后,按上文命令安装插件并重启 Web profile。
  2. 打开 DSH Web,看侧边栏 Codex 胶囊是否出现两窗口额度与重置券数;必要时点击 sync 或调用工具 codex_quota / codex_models_sync。
  3. 新建或切换会话,模型选 Codex (ChatGPT Plus/Pro),正常与 Harness 对话。
  4. 额度触顶且账户有重置券时,在面板中单选一张券,确认后执行重置(消耗一张券,重置两窗口)。
  5. 需要第二意见或独立子任务时,在支持工具调用的流程里使用 codex,把任务交给本地 Codex agent。

适用场景与注意

适合谁:已在 Linux/Windows 上用 Codex CLI 维护 ChatGPT Plus/Pro 登录、希望在 DSH Web 里看见订阅额度、一键选券重置,并免 API key 使用订阅模型 catalog 的开发者。

安全与权限:插件读取你自己登录写入的 auth.json,不打包、不记录凭证;重置与写回 token 均有边界说明(见仓库 Security 小节)。面板路由对持有有效 DSH Web 会话的调用方可见额度、计划类型与账户邮箱,不返回 token。

安装前请知悉:DSH 插件以当前 dsh 进程权限运行;接入前建议阅读 仓库源码 与 MIT 许可证,确认与本机 Codex 数据目录、凭证存储策略一致。社区插件目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-codex-plus 把「本机 Codex 订阅」变成 Harness 里可观测、可路由、可续期的一条线路:额度与重置券在 UI 里可操作,模型选择器自动挂上 openai-codex,token 维护落在 credential store 与 auth.json 的原子写回上。更多细节见仓库 README.zh.md。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye