dsh-simple-cli:給 DeepSeek Harness 加一個類 Claude Code 的終端聊天

前言

常年在命令行工作的開發者大多有這樣的需求:在終端裏直接輸入一句話,看模型回答流式輸出、工具執行過程即時可見,敏感操作還能手動確認——而不是切到瀏覽器,或者從 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.yamlagent-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.0v0.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 場景會退化爲普通讀取,不進入交互界面。

另外三點注意:

  1. Shift+Enter / Ctrl+Enter 換行依賴 kitty keyboard protocol,終端不支持時用 Ctrl+J 或 Alt+Enter。
  2. @ 附件每個文本文件限 64 KB,超出截斷並附提示;二進制文件僅作爲路徑提及。
  3. 安全方面:插件安裝後以當前 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜