dsh-plugin-tui:DeepSeek Harness 的 Claude Code 風格終端 UI

DeepSeek Harness (DSH) 採用插件化架構。傳統的命令行插件(如 dsh-plugin-cli-session)通常驅動單輪對話並立即退出。dsh-plugin-tui 保持終端會話持續開放,提供流式 token delta、工具調用行渲染和實時批准請求,構建了一個 Claude Code 風格的 REPL。

插件概覽

  • 名稱:dsh-plugin-tui
  • 維護者:ghbhiee
  • 類別:客戶端
  • 許可證:MIT
  • 核心價值:在終端內提供持久的、流式交互的 AI 編程環境,支持會話管理、模型切換、歷史回放及權限審批。

核心功能

該插件爲 DSH 提供了一個交互式終端用戶界面,主要能力包括:

  • Claude Code 風格 REPL:保持終端活躍,支持流式輸出。
  • 流式交互:實時顯示 token delta,工具調用行渲染,以及錯誤信息。
  • 會話管理:支持交互式會話/模型選擇器、歷史回放、會話恢復與切換。
  • 權限控制:提供詢問(ask)和自動(auto)兩種批准模式,並在終端內直接響應審批請求。
  • 狀態反饋:底部狀態欄實時顯示當前模型、推理 effort、審批模式、會話標題及工作目錄。
  • 思考摺疊:默認摺疊推理流,通過快捷鍵可展開查看詳情。
  • Markdown 渲染:支持渲染 Markdown 格式文本。
  • MCP 服務器連接:在後臺連接 MCP 服務器。

安裝與配置

安裝插件需要指定 tui 配置文件。安裝命令如下:

dsh plugin --profile tui add github:ghbhiee/dsh-plugin-tui

安裝後,需在配置文件中指定 bundle。該插件僅需要兩個 bundle 層(它重述了 dsh-headless 的部分行),切勿添加 headless bundle。

編輯 ~/.dsh/profiles/tui/package.json:

{
  "dsh": {
    "profile": {
      "bundles": ["@deepseek-ai/dsh-base", "dsh-plugin-tui"]
    }
  }
}

典型用法

啓動與基礎命令

dsh --profile tui                       # 進入交互模式
dsh --profile tui "explain this file"   # 發送初始消息並進入交互
dsh --profile tui -r                    # 恢復最新的 tui 會話
dsh --profile tui -s <id>               # 恢復特定的會話 ID
dsh --profile tui -w ./scratch          # 在指定目錄啓動新會話
dsh --profile tui -l                    # 列出當前配置文件下的會話
dsh --profile tui -p danger-full-access # 啓動時給予完全訪問權限(無沙箱、無提示)
dsh --profile tui -p workspace-write -y # 啓動時給予工作區寫入權限,並自動允許所有審批

REPL 內部命令

在交互界面中,支持以下內置命令:

輸入 含義
/exit, /quit, Ctrl-D 退出 REPL(會先刷新會話)
/session 顯示當前會話 ID
/sessions 交互式選擇會話(↑/↓ 移動,Enter 切換,Esc 取消)
/sessions list 靜態列出所有會話
/resume <n\|id> 在當前 REPL 中切換到指定會話(索引或 ID 前綴)
/history [n] 顯示當前會話中 n 條早期的交換記錄
/new 啓動新會話,釋放當前會話
/title [text] 顯示或重命名會話標題(重命名會固定標題)
/model [id] 交互式選擇模型或通過名稱熱切換(provider/id)
/effort [id] 交互式選擇推理 effort 或通過名稱設置
/effort default 恢復提供商默認設置
/help 顯示內置命令及所有已註冊的 Harness 命令
/approvals [ask\|auto] 設置審批模式(auto 允許所有請求,ask 恢復提示)
y / N 在審批提示時允許或拒絕 gated tool call
Ctrl-C(運行中) 取消當前輪次,保持在 REPL
Ctrl-C(空閒時) 退出 REPL
數字 或 文本 在 ⁇ 提示時選擇選項或回答

注意事項與已知限制

  1. Bundle 層級:TUI 配置僅需兩個 bundle 層。此插件重述了 dsh-headless 的部分行,不要添加 dsh-headless bundle。
  2. 審批模式限制:目前僅支持一次性審批(one-shot approvals),尚無按命令的允許列表。
  3. 計劃審查渲染:/plan 命令的渲染通過通用問答流程進行,而非專門的 diff 風格視圖。
  4. Token Delta:Token delta 未批量寫入,對於高負載流可能需要自行優化。
  5. 兄弟插件日誌:同 profile 中任何輸出到 stdout 的兄弟插件日誌會覆蓋 REPL 顯示。建議在全局配置 ~/.dsh/cordis.patch.yml 中靜默 MCP 代理。
  6. 類型簽名漂移:ctx.commands.execute 在安裝版本(0.1.1-rc.2)和發佈版本(rc.6)之間存在類型簽名差異,插件通過檢查參數數量進行分發。
  7. MCP 連接:MCP 服務器在後臺連接,工具可能稍後加入。

總結

dsh-plugin-tui 是爲 DeepSeek Harness 提供持久交互式終端體驗的插件。它通過流式輸出和會話管理,解決了傳統單輪插件無法進行長時間、多步驟編程協作的問題。如需瞭解更多細節,請訪問插件目錄或查看源碼倉庫。

羽毛球分组比赛记分
小程序二维码

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

小夜