前言¶
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 倉庫查看源碼或提交問題。