用 dsh-tianshu-tui 給 DeepSeek Harness 裝上全屏終端工作區

前言

DeepSeek Harness(dsh)把模型、工具、會話、沙箱和界面都做成可替換的插件。官方默認入口是 Web UI:npx @deepseek-ai/dsh web 之後,瀏覽器打開 http://127.0.0.1:3080。對習慣在終端裏寫代碼的人來說,來回切瀏覽器並不方便:思考過程刷屏、審批要看 diff、多會話切換、圖片粘貼,這些都更適合全屏 TUI。

dsh-tianshu-tui 就是這條路上的社區插件。它不替換官方 CLI,而是把一套交互式終端界面掛到官方 DeepSeek Harness 的 tui profile 上。渲染核心來自天樞 Tianshu-Tui,倉庫維護者是 huiliyi37。社區插件目錄把它歸在「界面增強」,收錄日期 2026-08-15,當時標註 143 星標。

本文按插件目錄頁、GitHub README / 快速開始文檔,以及 npm 包 @huiliyi37/dsh-tianshu-tui 覈對後整理:它是什麼、能做什麼、怎麼裝、怎麼用。社區目錄 deepseek-harness-plugin.com 是獨立站點,和 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。

這是什麼

dsh-tianshu-tui(npm 包名 @huiliyi37/dsh-tianshu-tui)是跑在官方 @deepseek-ai/dsh 上的交互式終端 UI 插件。許可證 Apache-2.0,主要語言 TypeScript。當前 npm latest0.1.2-rc.10(2026-08-16 發佈),宿主 CLI 文檔要求 0.1.0-rc.6

它解決的問題可以收成一句話:在官方 dsh 進程裏提供全屏終端工作區,而不是另起一套 harness。

倉庫 README 把邊界寫得很清楚:UI 是純展示層,所有 agent 狀態都來自會話事件流。TUI 自身不註冊 prompt、工具或上下文面;用戶輸入會變成普通日誌消息,渲染狀態從會話事件派生。TDD 門、證據門、視覺橋、語義檢索這類能力在宿主 harness 的獨立包裏,不隨本插件分發——TUI 只是它們的主要交互面。宿主服務沒裝時,對應面板會打出 警告,而不是空白啓動失敗。

三個容易混的名字:

名字 實際是什麼
dsh-tianshu-tui(本文) 官方 dsh 的 TUI 插件,數據目錄 ~/.dsh
oh-my-tianshu(原 tianshu-public) 獨立集成發行,自帶 CLI,home 與官方隔離
Tianshu-Tui 本插件渲染核心的上游來源(Apache-2.0,逐文件見 SOURCE-MAP.md

同分類裏還有另一款全屏終端插件 dsh-TUI(Claude Code 風格)。兩者都是社區界面增強,不是同一套代碼。

核心功能

下面這些能力來自倉庫 README 與快速開始文檔,不是演示環境裏的額外發揮。

終端裏的會話工作區

啓動後是完整的會話界面,不是一行 REPL:

  • 歡迎頁:品牌頭、會話短 id、環境檢查(API key / git 是否就緒)
  • 頂部欄:當前工作目錄、模型、git 分支和未提交文件數
  • 底部三行:圓角輸入框 → footer(模式徽標 + 快捷鍵)→ metrics(模型 / 成本 / 上下文佔用 / token / 耗時)
  • 對話流:Markdown 渲染、工具卡着色與計時、並行工具調用摺疊成組
  • 推理通道:思考中顯示即時頭行,結束後折成類似 ✻ 思考 (3.2s) · 12 行 的緊湊行,Ctrl+O 原位展開

會話側常用命令:

  • /session new|list|switch:新建、列出、切換;恢復時按同一渲染橋重放轉錄
  • /fork / /branch:把當前歷史複製到子會話,可選帶起始指令
  • /rewind:回退到指定消息(會話截斷,可選文件回退到邊界前快照)
  • /export:把轉錄導出爲 Markdown
  • /steerCtrl+T:中輪轉向,不中斷當前回合
  • /compact:壓縮會話上下文

多會話時,輸入軌上方會顯示短 id tab 欄。Ctrl+X 循環切換,Alt+1Alt+9 直接跳轉。空閒時連按兩次 Esc(1 秒窗口)打開 rewind 回退面板;在途輸出時單次 Esc 打斷,路徑與 Ctrl+C 相同。

輸入、審批與模式

輸入面按終端編碼場景來做:

  • 輸入 / 打開 slash 菜單:模糊前綴匹配、MRU 排序、ghost 預覽
  • 空輸入框按 Tab 彈出全部命令菜單,選中回車直接執行
  • @ 路徑 Tab 補全和 @mention 展開
  • 可選 vim 鍵位;Ctrl+E$EDITOR 編輯當前輸入
  • Ctrl+F 搜索歷史;Ctrl+P 命令面板;Ctrl+. 調出鍵位表
  • / 開頭的真實路徑(如 /src/main.ts~/xxx、Windows 盤符)不會再被誤判成 slash 命令

審批和提問也在終端裏完成。掛起的工具調用可以看內聯 diff,y / N / Ctrl+C 結算。Shift+Tabnormalplanalways-approve 之間循環。plan 模式會改 footer 徽標;always-approve 是會話級本地狀態,切換或退出時復位。

即時面板包括 /status/config/skills/tasks/subagents/workflow/goal/cost 按模型分桶累計用量並給出美元估算(內置 flash/pro 定價表,未知模型不猜價)。上下文佔用達到 95% 時,footer 會加 前綴。

圖片、模型與工作流觀察面

圖片鏈路是端到端的:Ctrl+V 從剪貼板讀圖(沒有圖則回退文本),kitty / iTerm2 可用終端圖形協議內聯渲染,再經 harness 附件服務交給模型。主模型聲明瞭 supportsVision 時直接轉發;主模型不識圖時,走視覺橋:提交前用獨立視覺模型生成描述。橋可用性來自裝配配置 vision.bridgeEnabled,或宿主 visionBridge 服務;兩者都沒有則圖片不發送,並給出警告。同圖反覆追問需要再裝同倉伴生包 vision-ask/

/model 無參數打開選擇器,可熱切換當前會話模型。spark-flash / spark-pro 是別名,分別映射到官方路由上的 deepseek-v4-flash / deepseek-v4-pro/effort 設置推理等級(off / high / max / auto)。

主題用 /theme 切換,倉庫文檔列出 16 個內置調色板,也支持 custom: 自定義。不支持真彩色的終端會降到 16 色;legacy 終端會把 emoji 收成 ASCII,避免破版。

需要說明:驗證門(dsh-evidence-gate 的 RED-first / TDD 門)、失敗路由、記憶(/memory/remember)、語義檢索等,README 把它們標成「與 harness 協同演化」的宿主能力。本插件提供 /workflow/memory/doctor/btw 這些入口和觀察面,並不把這些包打進 TUI bundle。

安裝與啓用

插件目錄頁給出的安裝命令是:

dsh plugin add github:huiliyi37/dsh-tianshu-tui

需要可復現安裝時,按目錄頁說明固定 commit 哈希:

dsh plugin add github:huiliyi37/dsh-tianshu-tui#<commit>

<commit> 換成倉庫裏的真實哈希。插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。裝之前應檢查源代碼倉庫和 Apache-2.0 許可證。

倉庫 README 寫得更細:本包不是獨立程序,只 npm i 跑不起來。需要先有官方 CLI @deepseek-ai/dsh(文檔寫的是 0.1.0-rc.6),並滿足:

  • Node.js ^22.19 || >=24
  • PATH 上有 pnpmdsh plugin 會轉發給它)
  • 跑模型需要 DEEPSEEK_API_KEY,或走官方 CLI 的登錄流程

README 強調:不要直接敲 PATH 上舊的 dsh 如果 dsh --version 不是 0.1.0-rc.6(例如 ~/.local/bin/dsh),可能走進本地 staging,出現 ERR_FS_EISDIR。它推薦始終用 npx,並把插件裝進名爲 tui 的 profile:

npx -y @deepseek-ai/dsh plugin --profile tui add @huiliyi37/dsh-tianshu-tui
npx -y @deepseek-ai/dsh --profile tui

從 GitHub 裝、且希望走同一套 profile 時:

npx -y @deepseek-ai/dsh plugin --profile tui add github:huiliyi37/dsh-tianshu-tui

倉庫已包含 lib/index.js,不必再打包。pnpm 可能提示 peer missing,文檔說可以忽略:peer 由官方 dsh 宿主提供。

看到歡迎頁品牌 dsh-tianshu-tui 即成功。退出用 Ctrl+Q/exit。已經全局安裝官方 CLI 且版本符合文檔時,把上面的 npx -y @deepseek-ai/dsh 換成 dsh 即可。

npx 仍報 ERR_FS_EISDIR,文檔給的退路是換乾淨 home 再裝:

DSH_HOME=/tmp/dsh-tianshu npx -y @deepseek-ai/dsh plugin --profile tui add @huiliyi37/dsh-tianshu-tui
DSH_HOME=/tmp/dsh-tianshu npx -y @deepseek-ai/dsh --profile tui

從 npm 安裝後,每次啓動會對照 npm latest,有新版本就寫入 profile。不想聯網檢查時設 DSH_TUI_SKIP_UPDATE=1github: / link: 安裝不會被改寫成 npm 包。0.1.2-rc.10 起,會話尚未開始工作時,自更新落盤後會自動重啓;已經在幹活則只提示,不打斷。也可以輸入 /restart 手動重啓同一進程。

典型用法

下面操作都來自 docs/getting-started.md 和 README,可以按原文復現。

1. 啓動後直接對話

啓動成功後,歡迎頁會檢查 API key 和 git。直接輸入問題回車即可。常用按鍵:

想做什麼 怎麼做
查看全部快捷鍵 Ctrl+.
切換模型 /model 回車後 ↑↓ 選擇,或 /model <名稱>
切換主題 /theme 回車後 ↑↓ 選擇(會即時預覽)
新會話 / 恢復會話 Ctrl+N / Ctrl+S
中斷當前回覆 Ctrl+C(在途);空閒空輸入需連按兩次才退出
退出 Ctrl+Q/exit

/help 會列出全部命令;/help <命令> 看單條詳情。

2. 用 slash 命令管會話和模型

/session new
/model spark-flash
/effort high
/theme graphite
/export ./session.md

/model spark-flash/model spark-pro 不會註冊一個叫 spark 的 provider,只是映射到已註冊的 deepseek-official 路由。切模型後,footer 的 glance 和視覺能力提示會跟實際模型走。

探索性改動可以用 /fork 開一條子會話;要回到某一輪之前,用 /rewind。需要把當前對話留檔時用 /export

3. 看工作流、記憶和診斷

宿主已裝配對應服務時:

/workflow
/status
/memory
/remember 這條約定下次還要用
/doctor
/mcp

/workflow 是運行觀察面:時長、run 名、階段數、workflow/log 敘述。/memory 瀏覽跨會話記憶(列表 / 過濾 / 刪除 / 預覽)。/doctor 做終端診斷並給出修復指引。/mcp 列出已連接的 MCP server 和工具數。

缺 goal / subagent / workflow 等插件時,TUI 仍會啓動,相關命令回顯 ,不會整屏空白。需要模型側 LSP 工具(lsp_goto_definition 等)時,文檔指向社區插件 omdsh-dev/dsh-lsp,TUI 展示橋會消費同一套 LSP server,不雙份拉起。

適用場景與注意事項

適合這些情況:

  • 已經在用官方 DeepSeek Harness,希望把日常編碼交互留在終端,而不是默認 Web UI
  • 需要全屏看思考過程、工具 diff、審批卡、多會話 tab 和 workflow 運行狀態
  • 終端支持 kitty / iTerm2 圖形協議,想把截圖直接貼進對話
  • 和獨立發行 oh-my-tianshu 同時安裝:兩套 home 隔離,文檔寫明可並存;共存時給 tianshu 側設 DSH_HOME=~/.dsh-tianshu

使用時注意下面幾條,都來自目錄頁或倉庫文檔:

  1. 權限與供應鏈。 插件以當前 dsh 進程權限運行,安裝可能執行代碼。先看 GitHub 源碼、LICENSESOURCE-MAP.mdNOTICE。生產或要復現的環境,用 github:huiliyi37/dsh-tianshu-tui#<commit> 釘死版本。
  2. 它不是獨立 harness。 只安裝本 npm 包不會出現可運行的 agent。宿主能力(證據門、視覺橋、記憶、語義索引)在別的包裏;沒裝時對應面板會明確報不可用。
  3. Node 和 CLI 版本要匹配。 文檔要求 Node.js ^22.19 || >=24,官方 CLI 0.1.0-rc.6。PATH 上的舊 dshERR_FS_EISDIR 的常見原因。
  4. 不要在 DeepSeek Harness 工作區根目錄對本包跑 tsdown。 README 寫明會把未發佈的 @deepseek-ai/dsh-root 寫進 bundle,加載必失敗。
  5. 圖片再詢問是伴生能力。 一次性提交時的視覺橋在宿主側;ask_image 和圖片註冊表在同倉 vision-ask/。未裝配時,已發送圖片不能再追問。
  6. LSP 默認只是展示層。 內置橋把診斷畫在工具卡徽標和 /lsp 面板上,不寫會話事件,也不註冊模型工具面。模型可調的 LSP 工具需要另裝 dsh-lsp
  7. 已知結構債。 README 寫明 app.ts 仍是較大的單體(約 3.2k 行),渲染組合和鍵仲裁還在裏面。這不影響安裝使用,但二次開發時要有預期。

小結

dsh-tianshu-tui 給官方 DeepSeek Harness 補了一層全屏終端 UI:會話、審批、思考摺疊、主題、圖片和 workflow 觀察面都在 TTY 裏完成。它刻意把自己限制成展示層,agent 狀態仍走會話事件;TDD、證據門、視覺橋等工程能力則繼續留在宿主插件裏。對已經在用 dsh、又不想把編碼交互交給瀏覽器的人,按目錄頁或 README 把插件裝進 tui profile 即可驗證。

地址:

  • 社區目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-tianshu-tui/
  • GitHub:https://github.com/huiliyi37/dsh-tianshu-tui
  • npm:https://www.npmjs.com/package/@huiliyi37/dsh-tianshu-tui
  • 官方 DeepSeek Harness:https://github.com/deepseek-ai/deepseek-harness
羽毛球分组比赛记分
小程序二维码

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

小夜