前言¶
常年在命令行工作的開發者大多有這樣的需求:在終端裏直接輸入一句話,看模型回答流式輸出、工具執行過程即時可見,敏感操作還能手動確認——而不是切到瀏覽器,或者從 headless 調用裏拼裝輸出。DeepSeek Harness(下稱 dsh)支持在啓動時指定 profile(例如 dsh --profile cli)。下面介紹的 dsh-simple-cli 就是一個完全運行在終端裏的 cli profile:裝好之後用 dsh-cli 命令與 Agent 對話,形態接近 Claude Code。
這是什麼¶
dsh-simple-cli 是 dsh 的社區插件,由 kit-zeason 維護,當前版本 v0.1.2,採用 MIT 許可證。一句話定位:把 DeepSeek Harness 變成類 Claude Code 的交互式終端聊天,以 dsh-cli 命令啓動,等價於 dsh --profile cli。
安裝後它做兩件事:把 bundle 寫入 $DSH_HOME/profiles/cli(默認 ~/.dsh/profiles/cli),並安裝全局 dsh-cli 命令 shim。運行時依賴沿目錄樹向上解析到 dsh 自帶的共享 profiles/node_modules,不需要額外執行 pnpm install。
核心功能¶
流式輸出¶
助手文本、模型推理(▸ 推理,暗灰)與工具調用(⛭ name: args + ✓/✗ 結果)都即時流式渲染。思考過程中推理摺疊爲最新一行,渲染合併到約 30fps,避免快速輸出時終端閃爍。
@ 文件選擇器¶
在輸入框鍵入 @ 即可瀏覽當前工作目錄:鍵入過濾、↑/↓ 導航、Enter 進入文件夾或選中文件、Esc 關閉。選中後消息中出現 @relative/path,提交時被引用的文本文件隨消息附加——每個文本文件最多 64 KB,超出會截斷並附提示;二進制文件僅作爲路徑提及。
輸入區與狀態欄¶
Enter 提交,Shift+Enter / Ctrl+Enter 插入換行,支持多行消息;↑/↓ 導航歷史或邏輯行。換行快捷鍵依賴 kitty keyboard protocol(Windows Terminal 1.19+、kitty、WezTerm、iTerm2、Konsole、foot),不支持的終端可用 Ctrl+J 或 Alt+Enter 兜底。
輸入區下方的狀態欄常駐顯示當前模型與權限策略,切換命令隨時可見。
連續對話與工具審批¶
在單個 Agent 會話上保持多輪上下文。ask 權限策略下,工具調用審批在同一輸入區內聯進行:按 y 允許一次、n 拒絕、Enter 允許。
內置命令¶
/new:開新會話/model:切換模型;裸/model打開可過濾選擇器;/model <provider>/<name>可同時切換 provider/preset:切換 agent 預設/permission ask|never:切換審批策略,別名/perm/clear、/help、/exit:清屏、幫助、退出(Ctrl+C 也可退出)- 啓動時可以把首條消息作爲參數傳入
Agent 預設¶
預設機制與 dsh web 應用相同,內置四個:標準(standard)、PTC(code)、極簡(minimal)、創造(cordis),默認 standard。要設持久默認,配置 $DSH_HOME/settings.yaml 的 agent-presets.default 項;自定義預設放在 $DSH_HOME/.agent-presets/ 目錄。
配色方案¶
默認配色下每個角色(用戶、推理、工具調用、狀態等)有獨立顏色。需要調整時,把環境變量 DSH_CLI_THEME 指向一個 JSON 文件,值爲 SGR 參數字符串:
{ "user": "1;92", "reasoning": "2;90", "toolCall": "33",
"toolResult": "36", "toolError": "1;31", "system": "35", "status": "36" }
安裝與啓用¶
先確認環境,再裝 dsh 本體,最後裝插件。
環境要求:
- Node.js ≥ 22(在 24 上測試)
- dsh ≥ 0.1.0-rc.6 已在 PATH 中
- PowerShell 5.1+ 或 pwsh,用於運行 install.ps1(Windows 與 Unix 均可)
安裝 dsh 本體:
npm i -g @deepseek-ai/dsh
克隆倉庫並安裝:
git clone https://github.com/kit-zeason/dsh-simple-CLI.git
cd dsh-simple-CLI
.\install.ps1 # 安裝到 $DSH_HOME/profiles/cli,裝 shim 到 PATH 並驗證
.\install.ps1 -Force # 重新安裝 / 覆蓋已有 profile 文件
不想克隆倉庫的話,也可以只下載 install.ps1,安裝指定發佈版本:
Invoke-WebRequest -Uri https://raw.githubusercontent.com/kit-zeason/dsh-simple-CLI/main/install.ps1 -OutFile install.ps1
.\install.ps1 -Version 0.1.0
-Version 接受 0.1.0 或 v0.1.0;不帶該參數時安裝當前目錄裏的代碼。腳本會自行完成 shim 安裝與驗證,通過後 dsh-cli 即可使用。
典型用法¶
經過上面的步驟,直接啓動即可:
dsh-cli # 啓動交互聊天
dsh --profile cli # 同上
dsh-cli "run the tests" # 發送首個任務,然後繼續對話
進入交互界面後,整體形態如下(README 示例):
┌───────────────────────────────────────────────┐
│ dsh-cli: DeepSeek Harness 交互模式(/help …) │
│ ▸ 推理 let me check the repo layout… │ ← 暗灰,流式
│ ⛭ pwsh: Get-ChildItem -Recurse . │ ← 工具調用
│ ✓ Directory: … │ ← 工具結果
│ 這裏是最新的文件清單:… │ ← 流式回覆
│───────────────────────────────────────────────│
│ > 輸入你的消息… (Shift+Enter 換行, Enter 發送) │ ← 輸入區
│ 模型: deepseek/deepseek-v4-flash · 權限: ask … │ ← 狀態欄
└───────────────────────────────────────────────┘
日常操作都在輸入區以命令完成:
/model deepseek-v4-flash # 同 provider 內切換模型
/model <provider>/<name> # 同時切換 provider 與模型
/model # 打開可過濾的模型選擇器
/preset <id> # 切換預設;空會話即時生效,否則在 /new 時應用
/permission ask # 或 /permission never,切換審批策略(別名 /perm)
/new # 開新會話
/clear # 清屏
/help # 幫助
/exit # 退出(Ctrl+C 也可退出)
適用場景與注意¶
它適合兩類人:已經在用 dsh、想在命令行直接驅動 Agent 的開發者;以及習慣了 Claude Code 這類交互形態、想在 dsh 上獲得類似體驗的人。管道、CI 等非 TTY stdin 場景會退化爲普通讀取,不進入交互界面。
另外三點注意:
- Shift+Enter / Ctrl+Enter 換行依賴 kitty keyboard protocol,終端不支持時用 Ctrl+J 或 Alt+Enter。
@附件每個文本文件限 64 KB,超出截斷並附提示;二進制文件僅作爲路徑提及。- 安全方面:插件安裝後以當前 dsh 進程的權限運行,可以調用工具、讀寫文件。它是 MIT 開源社區項目,與 DeepSeek / 幻方無官方關係,建議安裝前先查閱倉庫源碼,確認行爲符合預期再部署。
結尾¶
dsh-simple-cli 用一條安裝腳本把 dsh 擴展出終端聊天 profile:流式輸出、工具審批、多輪上下文、@ 附件、預設與配色都可配置,集成成本很低。項目地址:
- 目錄頁:https://www.skillhub.cn/plugins/kit-zeason/dsh-simple-CLI (社區維護的獨立站點,與 DeepSeek / 幻方無官方從屬關係)
- GitHub 倉庫:https://github.com/kit-zeason/dsh-simple-CLI