前言¶
DeepSeek Harness(dsh)是 DeepSeek AI 開源的智能體框架,目前仍處於開發者預覽階段。它的核心設計是「一切皆插件」:模型、工具、技能、會話、沙箱和 UI 都可以在配置層替換,不必改框架源碼。官方倉庫在 deepseek-ai/deepseek-harness,本地最快的啓動方式是:
npx @deepseek-ai/dsh web
模型提供方同樣是插件。很多人已經有 ChatGPT / Codex 訂閱,卻不想再買一份 OpenAI Platform API Key,也不想給 Harness 打補丁。社區插件 dsh-codex-connect 做的就是這件事:用 ChatGPT OAuth 登錄,把 openai-codex 模型目錄掛進 Harness 原有的模型選擇器。
需要先說明兩點。第一,deepseek-harness-plugin.com 是社區目錄,和 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。第二,這個插件本身也寫明:與 OpenAI、ChatGPT、Codex、DeepSeek 或 DeepSeek Harness 都不存在隸屬或背書關係。
這是什麼¶
dsh-codex-connect 是一款「模型與提供方」插件,顯示名是 Codex Connect,由 franksong2702(Frank Song)維護,許可證 Apache-2.0,主要語言 TypeScript。目錄頁簡介是:爲 DeepSeek Harness 提供 ChatGPT OAuth 與 Codex 模型。
倉庫 README 把邊界寫得很清楚:
- 它註冊
openai-codex模型目錄,並提供獨立的 ChatGPT OAuth 登錄。 - 模型請求仍走 Harness 標準 LLM 服務。流式輸出、工具調用、reasoning replay、壓縮、文件系統控制、權限門禁和審批提示,繼續由 Harness 負責。
- ChatGPT 訂閱不會因此變成 OpenAI Platform API 憑據。
- 安裝是增量的:不會替換當前默認模型或全局搜索路由;獨立搜索提供方和
view_image默認關閉。
項目派生自 Yan-Zero/dsh-codex,NOTICE 裏保留了上游版權。兩者使用同一套 provider id(openai-codex),不能同時啓用。GitHub 倉庫當前 22 星(目錄頁快照仍顯示 7 星,以倉庫頁面爲準)。npm 包名是 dsh-codex-connect,當前預發佈版本爲 0.1.0-alpha.4.9。
核心功能¶
把 Codex 模型放進原生選擇器¶
登錄成功後,打開 Harness 原有的模型選擇器,可用項會出現在 OpenAI Codex 分組下。GPT-5.6 Luna 這類標識是規範名稱,界面語言換成中文也不會翻譯。
這一步隻影響當前 agent 或會話選中的模型,和寫入 profile 的默認模型、全局搜索路由是兩件事。裝上插件,不等於以後所有新會話都走 Codex。
設置頁裏完成登錄,不把 token 寫進配置¶
打開 設置 → 插件 → 插件配置 → Codex Connect。新安裝時賬戶區顯示「尚未登錄」,點擊「使用 ChatGPT 登錄」,在瀏覽器裏自己完成審批。
README 明確要求:不要把授權 URL、授權碼、token 或賬戶標識複製到 Issue、日誌或配置文件裏。OAuth 狀態單獨寫在 $DSH_HOME/.openai-codex-auth.json(默認 ~/.dsh),不會複製或改動 ~/.codex/auth.json。支持的平臺上,父目錄和文件使用僅所有者可訪問權限,寫入是原子替換,刷新時有跨進程文件鎖。
卡片顯示「重新登錄」,或服務端要求重新認證時,走同一套瀏覽器流程即可。不要爲了刷新會話去執行 logout;卸載插件也不會刪除這份憑據,只有確實要清掉登錄態時才登出。
搜索和看圖默認關掉¶
安裝後的配置行大致是:
- id: llm-openai-codex
config:
enableSearch: false
enableImageTool: false
在同一張 Codex Connect 卡片裏可以改這兩項,點「保存更改」隻影響本插件能力,不會去改默認模型或全局搜索路由。
enableSearch: true:把 Codex 註冊成可選的搜索提供方,但不會自動選成全局搜索。enableImageTool: true:給具備視覺能力的模型打開view_image,用於審批後的本地讀取和公網圖片獲取。遠程地址只允許公共 HTTP(S);每次 DNS 結果和重定向都會再檢查,並把連接釘在已驗證地址上,避免打到 localhost、私網、link-local 或雲元數據。
倉庫文檔給出的其餘字段默認值如下:
| 字段 | 默認值 | 可選值 |
|---|---|---|
enableSearch |
false |
boolean |
enableImageTool |
false |
boolean |
searchModel |
gpt-5.6-sol |
Codex 模型 id |
searchMode |
cached |
cached、indexed、live |
searchContextSize |
medium |
low、medium、high |
searchMaxOutputTokens |
10000 |
正整數 |
診斷命令不打印密鑰¶
不啓動 OAuth、也不輸出憑據內容的檢查:
dsh plugin --profile web exec dsh-codex-connect status --json
dsh plugin --profile web exec dsh-codex-connect doctor --json
status --json 只報告 signed-in 或 signed-out。已登錄時退出碼 0,未登錄時退出碼 1,後者應回去登錄,不要當成插件損壞。doctor --json 輸出一條非敏感 JSON:包版本、Node 信息、認證文件狀態、能力開關、衝突提示;它會省略認證文件絕對路徑,以及 OAuth、賬戶、過期時間。
Alpha 4.9 的界面補充¶
v0.1.0-alpha.4.9 發行說明(2026-08-17)增加了兩項界面能力:按會話的 Codex Fast Mode(默認關閉,僅 GPT),以及 Composer 上按模型顯示的周額度條。額度、模型是否可見、後端行爲仍由 OpenAI 控制,可能隨時變化。
安裝與啓用¶
先確認本機已有可用的 dsh。如果是從 DeepSeek Harness 源碼目錄運行,把下面命令前的 dsh 換成 pnpm dsh。下文以 web profile 爲例,請換成你實際在用的 profile 名。
目錄頁給出的安裝命令¶
社區目錄頁原文是:
dsh plugin add github:franksong2702/dsh-codex-connect
目錄同時提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和許可證;需要可復現安裝時,固定 commit 哈希:
dsh plugin add github:franksong2702/dsh-codex-connect#commit
把 #commit 換成真實哈希,不要照抄這個佔位符。
倉庫當前推薦的安裝方式¶
README 把 npm 預發佈通道寫成五分鐘快速開始的主路徑:
dsh plugin --profile web add dsh-codex-connect@alpha
精確復現本文覈對到的版本:
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.9
對應 GitHub prerelease 已存在但 npm 不可用時,再用:
dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.9'
本地 checkout 可以裝成 link:/absolute/path/to/dsh-codex-connect。
裝完後啓動:
dsh web
用下面命令確認配置裏恰好有一條加載本插件的 llm-openai-codex,並且默認模型和搜索路由沒有被改掉:
dsh --profile web --dump-config
這份輸出可能包含無關的 profile 設置,只在本機查看。
更新和卸載:
dsh plugin --profile web update dsh-codex-connect@alpha
dsh plugin --profile web remove dsh-codex-connect
典型用法¶
登錄並選一次模型¶
- 打開 設置 → 插件 → 插件配置 → Codex Connect。
- 點擊「使用 ChatGPT 登錄」,在瀏覽器裏完成審批。
- 賬戶區變爲「已登錄」後,打開模型選擇器,選一個
openai-codex模型。 - 本機再跑一次
status --json,確認是signed-in。
無圖形界面或遠程 Host 時,INSTALL.md 允許在用戶明確要求登錄後使用 login 或 login --device-code。OAuth 審批必須由用戶自己完成,不要讓自動化腳本代點。
只有你明確要求時,才改默認模型和搜索¶
把 Codex 設成新 agent 的默認模型,需要另寫一條 Harness 配置,插件不會替你寫:
- id: agent-default-model
config:
provider: openai-codex
model: gpt-5.6-sol
把 Codex 設成全局搜索,是第二次顯式修改:先打開 enableSearch,再改 web.searchProvider。
- id: llm-openai-codex
config:
enableSearch: true
searchMode: live
searchContextSize: medium
- id: web
config:
searchProvider: openai-codex
從另一臺設備打開 Web UI 時¶
默認 OAuth 路由只接受 loopback 瀏覽器請求。DSH 跑在設備 A、你從局域網另一臺設備打開 Web UI 時,要在運行 DSH 的那臺機器上,把瀏覽器地址欄裏的完整 origin(含協議和端口)加入信任列表:
dsh plugin --profile web exec dsh-codex-connect trust-origin http://192.168.1.20:3080
dsh plugin --profile web exec dsh-codex-connect trusted-origins
dsh plugin --profile web exec dsh-codex-connect untrust-origin http://192.168.1.20:3080
把示例換成你地址欄裏的真實 origin。不要填訪問設備的 IP、裸主機、路徑、query 或 fragment。只在自己控制的網絡裏使用,不要把這條路由暴露到公網;不適合顯式信任時,用 SSH 隧道。瀏覽器頁面只會顯示並複製這條命令,不會自己改授權列表。
已經裝過 dsh-codex 時¶
openai-codex 只能有一個 adapter。啓動報衝突時,先看有效配置,只移除已確認的舊 dsh-codex bundle 或手動 provider 行,不要刪認證文件,也不要動無關 provider。
遷移步驟見倉庫 MIGRATION.md:先記下當前默認模型、搜索路由和 llm-openai-codex 配置(不要去讀 OAuth 文件),卸掉 dsh-codex 再裝 dsh-codex-connect,確認只剩一條加載本插件的配置行。enableSearch 和 enableImageTool 遷移後都默認 false,要不要打開由你決定。status 已顯示已登錄就不必再走一遍 OAuth。回滾是反向換包,過程中不要刪除或複製那份獨立的認證文件。
適用場景與注意事項¶
適合這些情況:
- 已經在用 DeepSeek Harness Web UI,希望用現有 ChatGPT 訂閱調用 Codex 模型。
- 不想把訂閱「兌換」成 Platform API Key,也不想改 DSH 源碼。
- 希望默認模型、搜索路由仍由自己控制,插件只負責註冊提供方。
- 需要本機診斷、衝突檢查,以及從舊
dsh-codex遷過來。
使用前注意:
- 權限與來源。 插件以當前 dsh 進程權限運行,安裝時可能執行代碼。裝之前閱讀倉庫源碼和 Apache-2.0 許可證,只安裝你信任的來源。社區目錄不是官方商店。
- 仍是 Alpha。 當前唯一寫進
compatibility.json的組合是:DSH 插件 API 包0.1.0-rc.6、@earendil-works/pi-ai0.82.1、Node.js^22.19.0 || >=24.0.0。升級時把 DSH 插件 API 包和pi-ai當成一組升級,再跑doctor --json。這份契約不對未來版本作保證。Harness 本身也在開發者預覽,官方 README 寫明未來會有破壞性變更。 - 能力邊界由 OpenAI 決定。 套餐資格、模型權限、額度和後端行爲可能變化。Codex 端點不會強制普通 Responses 的
max_output_tokens;Harness 壓縮仍可用,但這個上限不能由服務端在該路由上強制。 - Agent 能力仍來自當前 profile。 shell、文件系統、skills、MCP、subagents、審批、權限、附件、會話持久化、壓縮和恢復,都不是這個插件提供的。
- 不要混用兩套 Codex 插件。 舊 bundle、手動 provider 行,或其它同樣註冊
openai-codex的包,都會衝突。 - 安裝、構建、測試、doctor 都不需要真實 OAuth。 只有你準備真正調用模型時,纔在設置頁登錄。
結尾¶
dsh-codex-connect 把 ChatGPT OAuth 和 Codex 模型接到 DeepSeek Harness 的標準 LLM 路徑上,同時把默認模型、搜索路由和可選能力留給使用者自己決定。它解決的是「訂閱已經有了,但 Harness 裏缺一個可卸載的提供方」,而不是把 ChatGPT 變成通用 OpenAI API。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-codex-connect/
GitHub:https://github.com/franksong2702/dsh-codex-connect