dsh-codex-login:在 DSH 里用官方 OAuth 登录 ChatGPT (Codex)

前言

DeepSeek Harness(DSH)通过 dsh-llm-pi-ai 接入 pi-ai 的 openai-codex 模型目录。该提供方只支持 OAuth,必须走 ChatGPT 登录,没有 API Key 路径。宿主侧会挂载 dsh-authorization,pi-ai 在 llm-pi-ai 挂载时会在这一层注册「Sign in with ChatGPT」流程;内置 Web 客户端却只暴露 credentials/describe|set|unset,没有能发起 OAuth 的 RPC,因此 bundled UI 无法替你完成登录。

结果是:目录里明明有 Codex 侧的 GPT 模型,Credential 却填不上,主模型很难稳定选到 openai-codex。下面介绍社区插件 dsh-codex-login(维护者 HarryLi-7,GitHub:HarryLi-7/dsh-codex-login),它从宿主侧驱动与 pi-ai 相同的官方授权接缝,并把流程暴露为 Agent 工具,便于把 OAuth 凭证写入 Harness,让 openai-codex 可作为主模型使用,而不只当子 Agent 的后端。

这是什么

dsh-codex-login 是 DSH 插件:用官方 OAuth 登录 ChatGPT (Codex),使 pi-ai openai-codex 提供方的 GPT 模型可作为 Harness 的主模型使用。

分类上属于「模型推理」相关能力;SkillHub 目录页:dsh-codex-login。PKCE、浏览器重定向到 http://localhost:1455/auth/callback、换票、凭证写入与跨进程刷新锁等实现均在 pi-ai 侧;插件只负责启动流程并转发提示,不自行实现 OAuth 协议细节。

背景:DSH 里缺的那座桥

README 归纳的两半与缺口如下:

  • dsh-llm-pi-ai:服务 pi-ai 的 openai-codex 目录提供方(OAuth-only)。
  • dsh-authorization + pi-ai 挂载:授权接缝已存在,但 bundled Web 客户端无法从 UI 发起登录。

本插件在宿主平面驱动同一条官方接缝,并注册 Agent 工具 codex_login,供对话里或工具调用里完成登录。

核心功能:工具 codex_login

工具 动作
codex_login start(默认)— 启动流程并返回浏览器 URL;status — 进度与凭证状态;submit_code — 粘贴最终 callback URL/code,或用 browser / device_code 回答 pi-ai 的登录方式提示;cancel — 取消当前尝试

start 会在后台开始尝试,并在授权 URL(或登录方式提示)就绪后立即返回。在浏览器中完成登录后,凭证会自动写入;插件不会打印、记录或再次输出任何 token 内容,刷新由 pi-ai 在其跨进程锁下完成。

凭证写入位置

流程会向 Harness 凭证库写入一条记录:

  • key:llm-pi-ai/openai-codex
  • kind:grant
  • payload:{ type, access, refresh, expires, accountId }(字段含义以 pi-ai / DSH 凭证模型为准)

模型目录配置

保持 openai-codex 提供方条目为空,以继承应用内置 pi-ai 目录(应用更新后新模型会自动出现;若手写 models: 列表会替换整个目录且不再自动更新,单模型微调可用 modelOverrides):

- id: llm-pi-ai
  name: "@deepseek-ai/dsh-llm-pi-ai"
  config:
    providers:
      openai-codex: {}

安装与启用(desktop app profile)

README 给出的安装方式针对 Electron 桌面应用的 profile,不是 dsh plugin add github:… 一类 CLI 命令;CLI 对 --profile desktop 会拒绝操作,profile 由桌面应用管理。

  1. 将本包放到 ~/.dsh/profiles/packages/dsh-codex-login/。
  2. 编辑 ~/.dsh/profiles/desktop/package.json:增加 link 依赖,并把包名加入 dsh.profile.bundles。
"dsh-codex-login": "link:/Users/<you>/.dsh/profiles/packages/dsh-codex-login"

(将 <you> 换成你的用户名;路径需指向你本机实际的 packages 目录。)

  1. 使用应用自带的 pnpm 安装依赖,然后重启应用。
  2. 让 Agent 执行登录,或直接调用 codex_login 工具。

环境要求(来自 README):

  • DSH 0.2.1-rc.5(任意挂载了 dsh-authorization、dsh-credentials、dsh-llm-pi-ai 的 profile)
  • 具备 Codex 访问权限的 ChatGPT 账号;可用模型随你的订阅计划而定

插件 package.json 当前版本为 0.1.0,peer 依赖与上述 DSH 组件版本对齐;许可证 MIT。

典型用法

安装并重启后,可按 README 两种方式驱动:

  1. 在对话中请 Agent 帮你「Sign in with ChatGPT / Codex」——Agent 会调用 codex_login 的 start。
  2. 直接对工具发动作:start 拿到 URL 后在与 Harness 同一台机器上打开浏览器;需要时用 status 看进度,用 submit_code 粘贴 http://localhost:1455/auth/callback?code=… 完整 URL(当本机 callback 无法连回 Harness 时)。

OAuth 回调绑定 127.0.0.1:1455;同一 credential 同时只允许一次尝试(由 dsh-authorization enforce)。

适用场景与注意

适合谁:已在 DSH desktop profile 中使用 dsh-llm-pi-ai,希望用 ChatGPT 账号 OAuth 驱动 openai-codex,并把对应 GPT 模型设为主模型的开发者。

务必注意:

  • 插件与当前 DSH 进程同权限运行;安装前请自行查看 源码 与 MIT 许可证,确认符合你的安全与合规要求。
  • SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;插件星标等元数据以目录与仓库页面为准(当前 GitHub 星标为 0)。
  • 勿在文档或日志中期望插件输出 token;凭证仅应通过 Harness 凭证存储与 pi-ai 刷新链路维护。

结尾

dsh-codex-login 补的是 DSH 内置 UI 与 Codex OAuth 之间的缺口:同一套 pi-ai 官方流程,通过 codex_login 在 Agent 侧可完成、可查询、可兜底粘贴 callback。配置上空置 openai-codex provider 即可沿用内置模型目录。

  • 目录页:https://www.skillhub.cn/plugins/HarryLi-7/dsh-codex-login
  • 仓库:https://github.com/HarryLi-7/dsh-codex-login
羽毛球分组比赛记分
小程序二维码

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

小夜