前言¶
DeepSeek Harness(dsh)把運行時拆成一層層插件:官方倉庫的口號是 Everything is a Plugin(一切皆插件)。模型適配、工具、會話、沙箱和界面都可以換,不必去改 Harness 源碼。很多人已經有 ChatGPT 訂閱,日常也在用 Codex;一旦把工作流遷到 DSH,常見做法卻是再申請一份 OpenAI Platform 的 API Key,按量計費,和訂閱配額不是同一條路。
社區插件 dsh-codex 走的是另一條路徑:按 OpenAI 的 Codex 登錄流程完成 ChatGPT OAuth,把 Codex 後端接到當前 dsh 進程裏。不需要 Platform API Key,也不要求給 Harness 打補丁。
本文按社區目錄頁、GitHub 倉庫 README / INSTALL.md / package.json,以及 DeepSeek Harness 官方倉庫交叉覈對後整理:它是什麼、怎麼裝、登錄之後能做什麼。社區插件目錄 deepseek-harness-plugin.com 是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係,不要把它當成官方應用商店。
這是什麼¶
dsh-codex 是一款 DeepSeek Harness 插件,由 Yan-Zero 維護,託管在 GitHub 倉庫 Yan-Zero/dsh-codex。社區目錄把它歸在「會話與消息」分類。倉庫 package.json 版本號爲 0.2.4(與 npm 上的 dsh-codex 一致),主要語言是 TypeScript,許可證是 Apache-2.0。2026-08-17 查看時,GitHub 顯示 19 星;目錄頁當時列出 10 星,以倉庫頁面爲準。
目錄頁的一句話定位是:通過 Codex 登錄流程,在 DSH 中使用 ChatGPT 訂閱。README 寫得更具體——它是一個獨立的 dsh bundle,在設置面板或 CLI 裏完成 ChatGPT OAuth,並自動刷新 token;隨後把 Codex GPT 目錄接到標準 LLM 服務上,走流式響應、工具調用、推理回放、提示詞緩存和 dsh 壓縮。
有一條邊界必須先說清楚:ChatGPT 訂閱認證和按量計費的 OpenAI API 是不同產品。本插件只使用 ChatGPT Codex 後端,不會把訂閱轉換成通用 OpenAI API 憑據。套餐資格、模型權限、配額和後端行爲由 OpenAI 控制,可能變化。
核心功能¶
ChatGPT OAuth 與獨立憑據¶
登錄入口有兩處:Web 界面的 設置 → OpenAI Codex → 使用 ChatGPT 登錄,以及 CLI 命令 dsh-openai-codex login。插件會打開 OpenAI 授權頁,經 localhost 回調完成登錄。無瀏覽器環境可用 --device-code。
憑據與 Codex CLI / Desktop 分開存放:
- 文件位置是
$DSH_HOME/.openai-codex-auth.json,默認在~/.dsh - 寫入是原子的,token 刷新會在本地 dsh 進程之間加鎖
- 瀏覽器狀態和診斷接口不返回 token 值
- 不會複製或修改
~/.codex/auth.json
分開存放是爲了避免兩個客戶端搶同一個會輪換的 refresh token。卸載 bundle 不會刪除這份憑據;要清掉本地賬號,需要走賬號頁或 logout 命令。賬號頁會顯示即時 Codex 額度進度條和剩餘百分比;信用餘額或工作區限額只有賬號接口提供時纔會出現。
Codex 模型目錄¶
裝上之後,bundle 會爲新建 agent 選擇 openai-codex / gpt-5.6-sol,並選用 Codex 搜索提供方。cordis.patch.yml 裏對應的是 agent-default-model 與 web.searchProvider。dsh settings 裏已經保存的模型仍然優先;模型選擇器可以切到當前賬號可見的其他 Codex 模型。賬號若提供視覺模型,插件會聲明其圖片輸入能力。
在 dsh-tui 裏,重啓後 /model 會列出 openai-codex 目錄;沒有顯式路由或已保存選擇時,TUI 採用 bundle 註冊的 gpt-5.6-sol。
搜索、讀圖與生圖¶
這幾項都掛在 dsh 已有工具上,而不是另起一套協議給模型看:
- 聯網搜索:把 dsh 的
web_search接到 Codex 的獨立搜索協議,返回普通文本和 HTTP(S) 引用,後續輪次和壓縮能保留同一份工具歷史。默認searchMode是cached,INSTALL.md 給自動化安裝用的是live。 - 讀圖:爲現有
read_image增加可選的 HTTP(S) URL 輸入;本地路徑仍原樣交給 Harness,沿用當前文件系統和沙箱。URL 側會限制重定向次數與下載字節,並拒絕嵌入憑據的地址。Web 輸入框的 Ctrl+V 粘貼和拖放圖片繼續走 dsh 自己的附件路徑。 - 生圖:註冊
imagegen工具,由gpt-image-2執行。當前模型只寫普通提示詞,可選用工作區路徑或會話裏最近的參考圖;插件讀字節再發送,模型不輸出 base64。結果會在對話裏顯示、存成持久附件,並寫入當前工作區。省略output_path時生成唯一的generated-<時間戳>-.png。
設置頁有兩個默認開啓的開關:增強 read_image 和 允許其他模型使用生圖。關掉第一項會恢復 Harness 原本只接受本地路徑的 read_image Schema;關掉第二項後,Codex 視覺模型仍可用 imagegen,其他模型提供方的調用會在執行入口被拒絕。只有明確聲明支持圖片輸入的模型才能接收圖片。
兩個默認關閉的實驗開關¶
設置頁還有兩項只作用於 openai-codex、默認關閉的開關:
- WebSocket 上下文複用:保持
store: false,在同一會話可複用連接且下一輪與已有上下文嚴格銜接時,用previous_response_id只發新增輸入。歷史改寫、壓縮、Fork、斷連或進程重啓後會退回完整上下文。關閉時普通輪次走 SSE,每次發送 Harness 完整上下文。 - 原生 Responses 壓縮:按 Codex 當前 V2 流程發送歷史和一個
compaction_trigger。不可用或失敗時,同一次調用回退到原來的 Harness 模型摘要。默認配置使用 SSE 和dsh-compaction-basic的文本摘要路徑。
這兩個開關互相獨立。README 也寫明:Codex 端點不執行普通 Responses 的 max_output_tokens 字段,壓縮可以工作,但該路由無法在服務端落實配置的摘要上限。
安裝與啓用¶
社區目錄頁給出的安裝命令原文如下,在 DeepSeek Harness 終端中運行:
dsh plugin add github:Yan-Zero/dsh-codex
如需可復現安裝,按目錄頁說明固定 commit 哈希:
dsh plugin add github:Yan-Zero/dsh-codex#<commit>
維護者 README 推薦的是從 npm 安裝預構建 bundle 到指定 profile(Web 爲例):
dsh plugin --profile web add dsh-codex
dsh web
從 DeepSeek Harness 源碼 checkout 運行時,把 dsh 換成 pnpm dsh:
pnpm dsh plugin --profile web add dsh-codex
在 dsh-tui 中使用時,把同一個包裝進對應 profile:
dsh plugin --profile dsh-tui add dsh-codex
開發本地 checkout 仍可用 link:/absolute/path/to/dsh-codex。Codex、Claude Code 等自動化 agent 應直接按倉庫裏的 INSTALL.md 執行,那是一份可重複的 runbook。
目錄頁和官方 CLI 都提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和許可證。
登錄與基本用法¶
Web 界面¶
- 安裝後啓動
dsh web。 - 打開 設置 → OpenAI Codex → 使用 ChatGPT 登錄。
- 在打開的 OpenAI 授權頁完成批准,等待 localhost 回調結束。
- 賬號頁查看額度;需要退出時用同一頁的登出,或下面的 CLI。
不要同時走 GUI 和 CLI 各登錄一次。INSTALL.md 寫明:OAuth 批准屬於用戶,不要讓自動化流程代填密碼或代點賬號頁。
終端與無界面環境¶
dsh plugin --profile web exec dsh-openai-codex status
dsh plugin --profile web exec dsh-openai-codex login
dsh plugin --profile web exec dsh-openai-codex login --device-code
dsh plugin --profile web exec dsh-openai-codex logout
先跑 status。已是 signed in 就不要再開一輪登錄。本機打不開瀏覽器時用 --device-code。瀏覽器登錄是 loopback-only;遠程主機上的 dsh 應在那臺機器上走 CLI。
TUI 側可用 /codex status|login|logout|usage|config 管理賬號和查看配置。四個布爾開關可用:
/codex set <read-image|imagegen-other-models|websocket-context|native-compaction> <on|off>
瀏覽器登錄完成後,憑據與 Web profile 共用同一份 dsh 憑據文件。
搜索配置示例¶
需要改搜索模式時,在對應 profile 的 cordis.patch.yml 裏保留恰好一行 id: llm-openai-codex(INSTALL.md 要求不要追加重複 id):
- id: llm-openai-codex
config:
searchMode: live
searchContextSize: medium
README 列出的字段如下:
| 字段 | 默認值 | 可選值 |
|---|---|---|
searchModel |
gpt-5.6-sol |
Codex 模型 id |
searchMode |
cached |
cached、indexed、live |
searchContextSize |
medium |
low、medium、high |
searchMaxOutputTokens |
10000 |
正整數 |
每個已解析默認值、不含憑據的輔助請求,會在發送前記成插件自己註冊的會話事件 web/openai-codex-search-llm-request。獨立搜索端點不是公開的 OpenAI Platform API,兼容性取決於固定版本的 Codex / pi-ai 實現。
圖片怎麼進對話¶
README 給出的可復現路徑:
- Web 輸入框 Ctrl+V 粘貼,或把圖片拖進去
- Windows 上適配版 dsh-tui 可用 Ctrl+V 粘貼剪貼板圖片,或輸入
@相對/圖片.png - 讓模型調用
read_image:工作區圖片用file_path,HTTP(S) 圖片用url - 在當前 dsh 附件限制內支持 PNG、JPEG、WebP 與 GIF
生圖時由當前視覺模型寫提示詞;結果寫入工作區。工作區若由 dsh-remote-ssh 管理,遠程寫入路徑由那個插件負責。本插件單獨安裝時即可生成附件並保存本地輸出。
適用場景與注意事項¶
比較適合已經在用 DSH,同時持有可用的 ChatGPT / Codex 資格、希望少申請一份 Platform API Key 的人。Web、TUI、無界面 CLI 都可以登錄;文件系統、shell、skills、MCP、subagents、權限、附件、壓縮和 web_search 工具本身仍來自當前 dsh profile,本插件只把模型路由和 Codex 側能力接進去。
使用前注意這些已經能覈對到的邊界:
- 權限與許可證。 插件與當前 dsh 進程同權運行,安裝可能執行代碼。本倉庫採用 Apache-2.0,安裝前仍應自己看源碼和許可證。
- 訂閱不是 API Key。 它不會把 ChatGPT 訂閱變成通用 OpenAI API 憑據;不能拿這份登錄去調 Platform 上的任意接口。
- 資格由 OpenAI 決定。 模型列表、視覺能力、配額和後端行爲可能變化;選不到某個模型時,先看賬號頁和
/model,而不是假定插件損壞。 - 憑據文件。 不要讀取、打印或提交
$DSH_HOME/.openai-codex-auth.json,也不要去碰~/.codex/auth.json。診斷只看status的非密鑰狀態。 - 圖片有前置條件。 當前模型必須在目錄裏明確聲明圖片輸入,
read_image/imagegen纔會把圖交給模型。 - DSH 仍在快速迭代。 官方 README 標明 developer preview,會有兼容性破壞。本插件聲明只使用已發佈的插件表層,peer 依賴裏可見
@deepseek-ai/dsh-*的0.1.0-rc.6;升級 Harness 後應再覈對倉庫。 - 目錄不是官方商店。 以 GitHub 源碼和頁面上的
dsh plugin add原文爲準;星標、分類以打開頁面時的數字爲準,會隨時間變化。
小結¶
dsh-codex 做的事情很具體:用 Codex 的 ChatGPT 登錄,把訂閱側的模型、搜索和部分多模態能力接到 DeepSeek Harness,而不改 Harness 源碼、也不把訂閱僞裝成 Platform API。裝好之後,日常路徑就是設置頁或 CLI 登錄一次,再按賬號可見的 Codex 目錄選模型。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-codex/
GitHub:https://github.com/Yan-Zero/dsh-codex