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
羽毛球分组比赛记分
小程序二维码

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

小夜