前言¶
DSH 做 agent 時,通常需要一個可以持續調用的 LLM provider。如果你本機已經安裝了 Claude Code CLI,並且已經登錄可用,這個插件可以把本機 claude 直接接成 DSH 的 LLM provider。
它不額外要求 API key。插件把 claude 作爲子進程運行,並把 CLI 的輸出通過 harness 的 LLM seam 流回 DSH。DSH 仍然負責 agent 流程、會話歷史和工具執行,插件只負責把模型調用接過去。
這是什麼¶
- 插件名:
dsh-claude-cli - 維護者:
katsos - 許可證:MIT
- 倉庫地址:
https://github.com/katsos/dsh-claude-cli - 運行依賴:PATH 中可用的
claude、Node^22.19 || >=24、帶@deepseek-ai/dsh-llm的 harness
這個插件目前不在 npm 上,安裝時直接指向本倉庫目錄。
核心功能¶
這個插件解決的是一個很具體的問題:想用本機 Claude Code CLI 的模型能力,但不希望 CLI 自己跑 agent loop、自己管工具、自己讀設置、內存文件或 MCP servers。
它的主要行爲包括:
1、把本地 claude 作爲子進程啓動,並把輸出流回 DSH 的 LLM seam。
2、保持 DSH 作爲 agent。CLI 自己的 agent loop、tools、settings、memory files 和 MCP servers 都被關掉,只保留由 DSH 驅動的模型調用。
3、通過 bridge.mjs 把 harness 工具聲明爲 MCP server,並讓模型輸出真實的 tool_use blocks。
4、把模型返回的 tool_use blocks 轉成 harness 的 tool-call chunks。
5、工具執行仍然由 harness 負責。bridge.mjs 不執行工具。
6、模型名直接透傳給 CLI。CLI 接受的 alias,例如 fable、opus、sonnet、haiku,以及完整 id,例如 claude-sonnet-5,都可以傳入。
安裝與啓用¶
安裝前確認三件事:
claude在 PATH 中可用;- Node 版本滿足
^22.19 || >=24; - 當前 harness 帶有
@deepseek-ai/dsh-llm。
下面是官方給出的安裝命令:
dsh plugin --profile web add ../dsh-claude-cli
這裏的 ../dsh-claude-cli 是相對運行命令位置的倉庫路徑。因爲插件不在 npm 上,當前只能通過目錄安裝。
安裝後需要重啓 harness。原因是 profile 的 layer stack 在啓動時讀取,已經運行的 server 會繼續使用啓動時的組合。
重啓後,模型會出現在 model picker 的 Claude Code CLI 分組下。
如果你不確定當前 dsh 命令從哪裏來,可以按 harness 的安裝方式選擇:
- Global:
dsh … - Source checkout:
pnpm dsh … - Neither:
npx @deepseek-ai/dsh …
使用 npx 時要用 scoped 名稱 @deepseek-ai/dsh。npm 上未帶 scope 的 dsh 是一個不相關的 JavaScript shell。
典型用法¶
如果只是想臨時跑一次,不想改動某個 profile,可以用 --patch 方式加載插件目錄裏的 cordis.yml:
dsh --profile headless --patch /absolute/path/to/dsh-claude-cli/cordis.yml "your task"
這裏的 patch 路徑需要寫成絕對路徑。這個方式適合快速驗證,或者用於不想直接修改 profile 配置的場景。
插件支持這些配置字段:
providers
executable
cwd
streamIdleTimeoutMs
unsupportedFields
defaultEffort
extraArgs
其中 extraArgs 適合傳插件自己沒有建模的 CLI flags,例如:
--betas
extraArgs 會在插件自己的 flags 之前傳入。如果某個條目命名了插件自己的 flags,插件加載時會拒絕。這樣設計是爲了避免參數順序影響 CLI 最終解析結果。
限制與注意¶
這個插件依賴本地 CLI,而不是 HTTP API,所以有一些明確限制。
- 沒有跨輪 prompt caching。每次請求都會把 harness history 渲染成一個新 turn,然後發給 CLI。這會按 Claude usage limits 計數。
temperature、maxTokens和stop不能被 CLI 原生支持。默認情況下它們會被報告爲UNSUPPORTED。如果 agent preset 總是設置這些字段,可以把unsupportedFields設爲ignore。- 圖片不會被髮送。image block 會在 transcript 中顯示爲一個可見 placeholder。
- 先前 reasoning 不會被重放。provider 會丟棄 history 中未簽名的 thinking。
- 沒有 app-attribution header 可以覆蓋 CLI 自己發出的請求。
- Rate limits 跟隨當前賬號。訂閱登錄會和 interactive Claude Code sessions 共享。
這個插件不會繞過認證。請求通過官方 CLI 發出,身份就是當前 claude 已登錄的身份。使用前應查看你的使用條款和 plan 限制。
對於無人值守、高吞吐或生產流量,更建議使用 API key 和 HTTP provider。這個插件更適合你本來就會手動在 Claude Code 中運行的本地工作。
另外需要注意:reselling access、爲其他人提供服務、以及評估模型以構建競爭性產品,都是被禁止的。
由於插件會在當前 dsh 進程可訪問的本地環境中啓動 claude 子進程,安裝前應檢查倉庫源碼和 MIT 許可證,確認你信任其中會執行的邏輯。
結尾¶
dsh-claude-cli 的價值在於:它把已有本機 Claude Code CLI 的登錄態,接成 DSH 可調用的一組模型 provider,同時保留 DSH 對 agent、工具和工具執行的控制權。
它適合本地調試、本地 agent 任務,或者不想再申請 API key 的臨時場景。對於生產或高流量任務,仍應優先選擇 API key 和 HTTP provider。
倉庫地址:https://github.com/katsos/dsh-claude-cli。當前給出的資料裏沒有目錄頁 URL,建議先查看 GitHub 倉庫確認最新文檔和配置。