dsh-openai-oauth:用 ChatGPT 登录为 DeepSeek Harness 接入 Codex 模型

前言

DeepSeek Harness(DSH)的插件体系里,模型 provider 可以作为一个独立组件接入。对已经在用 DSH 的开发者来说,常见的麻烦是:外部模型的登录态、凭据存储、token 刷新,以及模型列表从哪里来。

dsh-openai-oauth 做的事情比较具体:它把 DSH 的 LLM interface 接到官方本地 Codex app-server,由 Codex 负责 ChatGPT 登录、凭据存储、token 刷新和模型访问。你不需要单独准备 OpenAI API key,也不需要在 DSH 里维护一份固定的 GPT 版本列表。

下面介绍这个插件的定位、安装方式、典型用法,以及需要留意的运行边界。

这是什么

dsh-openai-oauth 是一个 DeepSeek Harness LLM provider 插件,使用 managed ChatGPT OAuth 接入 Codex 模型。

  • 包名:dsh-openai-oauth
  • 维护者:DGPisces
  • 许可证:MIT
  • GitHub:https://github.com/DGPisces/dsh-openai-oauth

它被描述为独立社区插件,不是 DeepSeek 或 OpenAI 官方产品。DSH 的理念是“一切皆插件”,但这个插件本身应作为社区组件看待,不应理解成官方应用商店里的官方应用。

核心功能

这个插件提供的能力集中在“登录、凭据、模型访问、DSH 接入”这几件事上。

  • 使用 ChatGPT 账号中的模型,作为 DeepSeek Harness 的主模型。
  • 将 DSH 的 LLM interface 连接到官方本地 Codex app-server,由 Codex 处理:
  • ChatGPT 登录
  • 凭据存储
  • token 刷新
  • 模型访问
  • 不需要 OpenAI API key。
  • 安装时会注册到 webheadless profiles,也会注册到已经存在的自定义 profiles。
  • 可以在 DSH 界面选择 provider 和 model,也可以写入 ~/.dsh/settings.yaml
  • 模型列表从当前登录的 Codex 账号读取,不在插件里维护一份硬编码的 GPT 版本列表。
  • 支持卸载;也支持可选的认证清理。

文档明确说明,这个包不会:

  • 复制另一个 Codex 安装里的 auth.json
  • 自己实现一套 OAuth client
  • 调用未公开的 ChatGPT endpoint

运行要求

安装前建议先确认环境满足以下要求。

  • Node.js:22.19 或更高
  • DeepSeek Harness:developer preview 0.1.0-rc.6
  • ChatGPT 账号:具备 Codex access

package.json 中以下 peer dependencies 被标记为 optional:

  • @deepseek-ai/cordis^4.0.1
  • @deepseek-ai/dsh-host-webserver>=0.1.0-rc.5
  • @deepseek-ai/dsh-llm>=0.1.0-rc.5
  • react^18.2.0

安装与启用

先执行安装命令:

npx -y dsh-openai-oauth install

这个命令会把包注册到 DSH 的 web profile、headless profile,以及已经存在的自定义 profile。

如果你之后新建了自定义 profile,可以重新执行一次安装命令,让它注册到新 profile。

登录 ChatGPT

Web 界面登录

启动 DSH 的 Web 界面:

npx @deepseek-ai/dsh web

进入:

Settings > OpenAI OAuth > Sign in with ChatGPT

在 OpenAI 页面完成授权后,你的账号可用的模型会出现在 DSH 正常的模型选择器里。

Headless 登录

如果使用的是 headless profile,可以从终端执行:

npx @deepseek-ai/dsh plugin --profile headless exec dsh-codex-login

登录信息会单独保存在:

~/.deepseek-harness/codex

凭据由 Codex 持有,并在需要时刷新。

选择模型

你可以在 DSH 界面里选择 provider 和 model,也可以直接写配置。

编辑 ~/.dsh/settings.yaml,示例如下:

agent-default-model:
  provider: openai-codex
  model: gpt-5.6-sol
  reasoningEffort: high

配置完成后,按常规方式运行 DSH。例如 headless 方式:

npx @deepseek-ai/dsh --profile headless "inspect this repository"

这里的关键是:插件会从当前登录的 Codex 账号读取模型列表,而不是在插件内部维护一份写死的模型版本列表。

卸载

如果只是移除插件,但保留 ChatGPT 登录,方便后续重装,执行:

npx -y dsh-openai-oauth uninstall

如果要彻底清理,同时注销并删除:

~/.deepseek-harness/codex

执行:

npx -y dsh-openai-oauth uninstall --purge-auth

需要注意,npm 可能仍会保留它正常的下载缓存。

适用场景与注意

这个插件适合以下情况:

  • 你已经在用 DeepSeek Harness。
  • 你有可用的 ChatGPT 账号,并且具备 Codex access。
  • 你希望 DSH 通过 Codex app-server 访问模型,而不是自己额外管理一套 OpenAI API key。
  • 你希望在 web profile、headless profile 或已有自定义 profile 中统一选择模型。

使用前要注意几点:

  • 这是一个独立社区插件,未获得 DeepSeek 或 OpenAI 官方背书。
  • 插件以当前 dsh 进程权限运行。安装前建议检查源码、许可证和依赖边界。
  • 登录态会写入 ~/.deepseek-harness/codex,不要把它误认为是通用 OpenAI API key 存储。
  • 它不复制其他 Codex 安装里的 auth.json,也不自己实现 OAuth client,不调用未公开 endpoint。
  • 环境必须满足 Node.js 和 DeepSeek Harness 的版本要求,否则安装或运行可能不符合预期。

链接

  • GitHub:https://github.com/DGPisces/dsh-openai-oauth
羽毛球分组比赛记分
小程序二维码

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

小夜