前言¶
DeepSeek Harness(dsh)是 DeepSeek AI 開源的 agent 框架,設計原則是「一切皆插件」:模型、工具、界面都可以用插件掛上去。很多人日常已經在用 Codex CLI,本機做過 codex login,ChatGPT 訂閱額度也在那個賬號上。換到 DSH 寫代碼、跑 Agent 時,卻還得再申請一份 OpenAI Platform 的 API Key,按 token 另計費。兩套入口、兩套賬單,其實只是想把已經付過的訂閱接到另一個 harness 裏。
社區插件 dsh-codex-subscription 做的就是這件事:不重新走一遍 OAuth 網頁登錄,而是直接讀取 Codex CLI 寫在本機的登錄憑證,讓 ChatGPT 訂閱模型出現在 DSH 的模型選擇器裏。它由 yequ172672 維護,GitHub 倉庫當前 14 星,社區目錄歸在「模型與提供方」。目錄站點 deepseek-harness-plugin.com 是獨立收錄站,和 DeepSeek / 幻方沒有官方從屬關係,安裝前需要自己覈對倉庫。
本文按目錄詳情頁、GitHub README、package.json 與 npm 頁面交叉覈對後整理:這個插件是什麼、憑證怎麼複用、怎麼裝、怎麼配代理。
這是什麼¶
dsh-codex-subscription 是一款 DSH 的 LLM 適配器插件。目錄頁用這個倉庫名收錄;npm 上的包名是 dsh-llm-codex,當前版本 0.1.2。package.json 聲明許可證爲 MIT,倉庫根目錄目前沒有單獨的 LICENSE 文件。要求 Node.js >=20,依賴對齊 DeepSeek Harness 0.1.0-rc.6。
它解決的問題很具體:本機已經用 Codex CLI 登錄過 ChatGPT 訂閱,希望在 DSH 裏繼續用同一套額度,而不是再配 OPENAI_API_KEY。插件包內帶有 dsh.bundle.patch(對應 cordis.bundle.yml),用官方 dsh plugin 安裝後會自動成爲 profile 層,不必手工改 composition 文件。
安裝完成後,Web 模型選擇器會出現名爲 Codex (ChatGPT 訂閱) 的 provider,路由名是 codex;設置 → 插件裏會列出 llm-codex 條目。
核心功能¶
複用本機 Codex 憑證¶
Codex CLI 執行 codex login 後,會把 ChatGPT 訂閱的 OAuth 令牌寫到 ~/.codex/auth.json(或環境變量 CODEX_HOME 指向的目錄)。本插件與 CLI 同源讀取這個文件,不要求再填 API Key。
憑證有兩種形態,README 寫得很清楚:
| 憑證形態 | 端點 | 認證方式 |
|---|---|---|
tokens(auth_mode: chatgpt,訂閱) |
https://chatgpt.com/backend-api/codex/responses |
Bearer access_token,並帶上 chatgpt-account-id 等 Codex 請求頭 |
OPENAI_API_KEY(auth_mode: apikey) |
https://api.openai.com/v1/responses |
Bearer API Key |
日常用法走第一種:訂閱登錄。第二種是 CLI 裏改成 API Key 模式時的兼容路徑,不是這個插件的主場景。
每次請求都會重新讀 auth.json。你在終端裏換號、登出、再登錄,DSH 下一次請求會跟過去,不用重啓插件。
令牌刷新與寫回¶
access_token 過期(HTTP 401)時,插件用 refresh_token 請求 auth.openai.com/oauth/token,刷新成功後默認原子寫回 auth.json,再自動重試一次。行爲和 Codex CLI 一致,兩邊憑證保持同步。
如果不希望插件改這個文件,在設置裏把 writeBack 設爲 false。過期令牌只在內存裏刷新,重啓 dsh 後會再讀磁盤上的舊令牌並重新刷新。
模型目錄與協議¶
模型列表按優先級組裝:
- 配置裏顯式給出的
staticModels - 即時請求
GET {base}/codex/models - 失敗則讀
~/.codex/models_cache.json - 再失敗則用內置靜態列表
內置兜底包括 gpt-5.6-sol、gpt-5.6-luna、gpt-5.6-terra、gpt-5.5、gpt-5.4-mini 等。賬號實際能用哪些模型,以即時目錄或 Codex 本地緩存爲準;靜態列表只是斷網或接口失敗時的保底。
協議走 OpenAI Responses API,開啓 stream: true 的 SSE。推理摘要、正文、工具調用分別映射成 DSH 的 reasoning / text / tool-call 塊,用量從 response.completed 提取。適配器目前是文本 only:帶圖片的內容會以 UNSUPPORTED_CONTENT 拒絕。
安裝與啓用¶
目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端裏運行即可:
dsh plugin add github:yequ172672/dsh-codex-subscription
需要可復現安裝時,按目錄頁說明固定 commit。當前 main 最新提交是 200a5d3e32fadc99468f8a5e0764a6d089d3bb01(2026-08-17,版本升到 0.1.2):
dsh plugin add github:yequ172672/dsh-codex-subscription#200a5d3e32fadc99468f8a5e0764a6d089d3bb01
倉庫 README 還提供了按 npm 包名安裝的寫法,效果是裝進指定 profile(示例用 web):
dsh plugin --profile web add dsh-llm-codex
兩種來源指向同一份包。社區裏還有其他名稱相近的 Codex 接入插件,安裝時請覈對維護者是 yequ172672、倉庫是 yequ172672/dsh-codex-subscription。
前置條件¶
README 列出四條,缺一不可:
- 已經安裝 dsh 本體。沒有
dsh命令時,先按官方倉庫安裝,例如:
npm install -g @deepseek-ai/dsh
dsh --version
DeepSeek 官方倉庫當前推薦也可以直接 npx @deepseek-ai/dsh web 啓動 Web UI。插件本身是 profile 層,必須先有可用的 dsh。
- 已經安裝 pnpm。
dsh plugin會轉發給它,缺失時 CLI 會提示。 - 已經執行過
codex login。插件不負責彈出登錄頁,只讀本機憑證。 - 能訪問
chatgpt.com。國內網絡通常需要代理,見下一節。
驗證是否掛上¶
不啓動服務也可以檢查組合結果:
dsh --profile web --dump-config
輸出裏應能看到 # == dsh-llm-codex 以及 llm-codex 行。然後重啓 dsh,打開 Web 界面,模型選擇器裏應出現 Codex (ChatGPT 訂閱)。
典型用法¶
配代理¶
ChatGPT 後端經常需要走本地代理。Node 原生 fetch 不讀系統代理,要在 $DSH_HOME/settings.yaml 裏寫:
llm-codex:
proxy: http://127.0.0.1:7890
也可以用環境變量 HTTPS_PROXY。優先級是:顯式 proxy 配置 > HTTPS_PROXY > HTTP_PROXY;命中 NO_PROXY 的主機直連。端口按你本機代理軟件改,7890 只是 README 裏的示例。
設置段熱更新,改完不必重啓。其他可選字段還有 clientVersion(默認 0.144.1)、writeBack(默認 true)、authFile、modelsCacheFile、staticModels。
設成默認模型¶
同樣寫在 settings.yaml:
agent-default-model:
provider: codex
model: gpt-5.6-sol
reasoningEffort: medium
gpt-5.6-sol 是 README 和內置目錄裏的示例模型。賬號若拉到別的 slug,把 model 改成選擇器裏實際出現的 id 即可。
常見報錯¶
| 現象 | README 給出的處理 |
|---|---|
MISSING_CREDENTIAL:無法讀取 Codex 憑證文件 |
先運行 codex login |
TRANSPORT:Connect Timeout |
直連 ChatGPT 後端失敗,配置 proxy |
| HTTP 401 且刷新失敗 | 訂閱過期或被風控,重新 codex login |
| HTTP 429 | 訂閱額度或限流,稍後重試 |
| 模型列表爲空 | 即時發現失敗且本地沒有 models_cache.json 時,會落到內置靜態列表 |
倉庫還帶冒煙測試,默認只讀、不會寫 auth.json:
npm run test:smoke
需要走代理時設置 HTTPS_PROXY。這是開發者自測路徑,日常使用不必跑。
README 另外推薦搭配 dsh-session-import-codex:本插件負責模型和憑證,那個插件負責把 Codex 歷史會話導入 DSH。兩者不是同一倉庫,需要的話再單獨安裝。
適用場景與注意事項¶
適合已經在用 Codex CLI、本機有有效 ChatGPT 訂閱登錄、希望把同一份額度接到 DSH 裏做文本對話和工具調用的人。不適合:還沒裝過 Codex CLI、沒有訂閱資格、或者主要依賴多模態(圖片)輸入——當前適配器會拒絕圖片內容。訂閱額度由 OpenAI 按賬號計量,和 Codex CLI 共用同一配額,在 DSH 裏跑任務會佔用 CLI 那邊的額度。
插件會讀取、並在刷新時改寫 ~/.codex/auth.json。這是登錄態文件,不要把它提交進 git,也不要在不可信環境裏打開 writeBack。社區目錄和 README 都提醒過:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。裝之前應檢查源碼倉庫和許可證;需要可復現環境時固定 commit 哈希。
DeepSeek Harness 仍處於開發者預覽,官方說明未來可能出現破壞兼容性的變更。本插件依賴 @deepseek-ai/dsh-llm 等 0.1.0-rc.6 包,升級 dsh 之後如果 provider 掛不上,應回到倉庫覈對版本,而不是假定永遠兼容。
小結¶
dsh-codex-subscription 把 Codex CLI 已經寫好的本機登錄接到 DSH:訂閱模型進選擇器,令牌跟着 CLI 熱更新,代理和默認模型寫在 settings.yaml。它不是官方應用商店裏的一等公民,而是社區按「一切皆插件」寫出來的適配器。先確認 codex login 可用、網絡能打到 ChatGPT 後端,再按目錄頁命令安裝,會比先配一把 Platform API Key 更貼近「已經付過訂閱」這件事。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-codex-subscription/
GitHub:https://github.com/yequ172672/dsh-codex-subscription
npm 包:https://www.npmjs.com/package/dsh-llm-codex