DeepSeek Harness 插件:通过 OAuth 使用 OpenAI Codex 订阅

前言

DeepSeek Harness(DSH)的插件系统允许在运行时扩展功能。上游 Harness 的多提供商适配器故意 withhold openai-codex 适配器,因为 Codex 认证需要通过 ChatGPT OAuth 进行,且该适配器不持有凭据存储也不运行登录流程。这个社区插件通过提供可安装的插件包来补全这两项:一个基于文件的 OAuth 凭据存储、一个 /codex login 人类可读命令,以及在公共 LLM 接口上注册的 codex provider 路由。

安装

安装过程会自动处理 pnpm 构建脚本的批准。在 web profile 下执行以下命令:

npx --yes https://github.com/birat-chapagain/dsh-codex-oauth/releases/download/v0.1.6/dsh-codex-oauth.tgz install

该命令会写入一次性的 pnpm 构建批准,并运行 dsh plugin add 将插件添加到当前 profile。

手动安装方式(效果相同):

dsh plugin --profile web add https://github.com/birat-chapagain/dsh-codex-oauth/releases/download/v0.1.6/dsh-codex-oauth.tgz

pnpm 11.22+ 对传递依赖中的构建脚本有严格限制。此插件树包含两个未使用的构建脚本(@google/genai, protobufjs)。如果手动安装遇到 ERR_PNPM_IGNORED_BUILDS 错误,需在 profile 的 pnpm-workspace.yaml 中添加以下内容:

allowBuilds:
  '@google/genai': true
  protobufjs: true

登录

登录是一个人类命令,不作为模型工具进入提示流。

Web UI

在 DeepSeek Harness 的聊天输入框中输入:

/codex login

浏览器将打开 ChatGPT 授权页面。完成授权后,命令会报告令牌已存储。也可以使用 /codex logout 和 /codex status 进行管理。如果是设备登录流程,UI 会提示你使用 CLI 命令。

CLI / Headless

插件包含一个独立的二进制文件 dsh-codex-oauth,可在 Harness 外部运行:

npx dsh-codex-oauth login                 # 浏览器流(桌面端)
npx dsh-codex-oauth login --method device # 设备码流(无头端)
npx dsh-codex-oauth status
npx dsh-codex-oauth logout

设备码流会打印一次性代码和 OpenAI 设备验证 URL。在任意设备上输入代码,CLI 会等待授权并将令牌存储在与 Harness 读取位置相同的文件中。

使用

插件注册了 codex provider 路由。通过 gpt-5.x-codex 及其相关模型(来自已安装的 pi-ai 目录)进行访问。

在 Web UI 的模型选择器中选择 codex 或 Codex 模型。对于 headless profile,可以在 profile 的 cordis.patch.yml 中设置默认模型:

- id: agent-default-model
  config:
    provider: codex
    model: gpt-5.4

在 Web UI 中按会话选择无需额外配置。Provider、模型和能力的解析通过上游 seam 的实现,与内置 provider 行为一致。

配置

插件支持以下配置项。在 cordis.patch.yml 中覆盖这些项:

字段 默认值 说明
provider codex 适配器注册的 provider 路由 ID。
storePath $DSH_HOME/codex-oauth.json OAuth 凭据存储位置。
transport sse Codex 响应传输方式:sse、websocket、websocket-cached 或 auto。sse 在一次性无头交互后优雅退出;websocket 可用于长会话。
cacheRetention long pi-ai prompt-cache 保留策略:none、short、long。
streamIdleTimeoutMs 300000 读取挂起期间流无事件的最大毫秒数。超时将中止 SDK 流并返回 TIMEOUT LLM 失败。

示例配置:

- id: codex-oauth
  config:
    provider: codex
    transport: sse

注意事项

  • 订阅要求:需要有效的 ChatGPT Plus 或 Pro 订阅。OpenAI 平台 API 密钥无效,因为订阅访问绑定到 ChatGPT 账户,而非 API 密钥。
  • pnpm 警告:安装时可能会看到 @deepseek-ai/cordis、@deepseek-ai/dsh-llm 或 @deepseek-ai/dsh-invariants 的 peer dependency 警告。这是正常的,因为 Harness 主安装提供了这些包,且 profile 设置了 autoInstallPeers: false。不要添加重复的 Cordis 或 invariants 包来消除警告。
  • 文件权限:凭据文件权限为 0600,写入时原子操作,且拒绝组/世界可读。请勿将模型工作区指向 Harness 主目录。
  • URL 限制:仅支持 https URL。
  • 工作原理:登录流程由 pi-ai 的 provider 实现。

结尾

该插件在无需 Fork 或修改 Harness 核心代码的情况下,为 DeepSeek Harness 增加了对 OpenAI Codex 订阅的支持。你可以通过 GitHub 仓库查看源码或提交问题。

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

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

小夜