前言¶
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 latest 爲 0.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/steer或Ctrl+T:中輪轉向,不中斷當前回合/compact:壓縮會話上下文
多會話時,輸入軌上方會顯示短 id tab 欄。Ctrl+X 循環切換,Alt+1~Alt+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+Tab 在 normal → plan → always-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 上有
pnpm(dsh 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=1。github: / 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
使用時注意下面幾條,都來自目錄頁或倉庫文檔:
- 權限與供應鏈。 插件以當前 dsh 進程權限運行,安裝可能執行代碼。先看 GitHub 源碼、
LICENSE、SOURCE-MAP.md和NOTICE。生產或要復現的環境,用github:huiliyi37/dsh-tianshu-tui#<commit>釘死版本。 - 它不是獨立 harness。 只安裝本 npm 包不會出現可運行的 agent。宿主能力(證據門、視覺橋、記憶、語義索引)在別的包裏;沒裝時對應面板會明確報不可用。
- Node 和 CLI 版本要匹配。 文檔要求 Node.js
^22.19 || >=24,官方 CLI0.1.0-rc.6。PATH 上的舊dsh是ERR_FS_EISDIR的常見原因。 - 不要在 DeepSeek Harness 工作區根目錄對本包跑 tsdown。 README 寫明會把未發佈的
@deepseek-ai/dsh-root寫進 bundle,加載必失敗。 - 圖片再詢問是伴生能力。 一次性提交時的視覺橋在宿主側;
ask_image和圖片註冊表在同倉vision-ask/。未裝配時,已發送圖片不能再追問。 - LSP 默認只是展示層。 內置橋把診斷畫在工具卡徽標和
/lsp面板上,不寫會話事件,也不註冊模型工具面。模型可調的 LSP 工具需要另裝dsh-lsp。 - 已知結構債。 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