前言¶
DeepSeek Harness(dsh)把模型適配、工具、會話、沙箱和 UI 都做成可替換插件,官方口號是「一切皆插件」。開發者預覽階段默認入口是網頁界面:npx @deepseek-ai/dsh web 能在瀏覽器裏跑智能體。習慣 SSH、tmux、純終端的人會立刻碰到缺口——官方倉庫本身並不提供一套完整的全屏 TUI。
社區目錄 DeepSeek Harness 插件庫 把這類擴展按功能分類收錄。需要說明:該站點是獨立社區目錄,與 DeepSeek / 幻方沒有官方從屬關係,不是官方應用商店。目錄裏「界面增強」分類下,精選條目 dsh-TUI 把 Claude Code 風格的全屏終端交互接到現有 dsh 服務上:像素鯨魚頂欄、即時工作狀態行、思考流式展開、雙擊 Esc 時間回溯,以及上下文進度條和 TPS 儀表。
本文按目錄詳情頁、GitHub 倉庫 README、docs/getting-started.md、docs/architecture.md、npm 包說明和 DeepSeek Harness 官方倉庫 交叉覈對後整理。
這是什麼¶
dsh-TUI 是給 DeepSeek Harness 用的全屏終端界面插件,由 GitHub 用戶 ccch1mneyyy 維護,許可證 MIT,主要語言 TypeScript。倉庫地址是 ccch1mneyyy/dsh-TUI,發佈到 npm 的包名是 @deepseek-harness-tui/dsh-tui。本稿覈對時 GitHub API 顯示 1551 星,npm 上當前版本是 0.8.0;社區目錄頁當時列出 1058 星,目錄數據可能滯後。
它解決的是「dsh 能跑智能體,但終端裏沒有一套完整交互界面」這件事。插件以 Cordis 方式掛到獨立的 dsh-tui profile 上,不改 DeepSeek Harness 核心源碼:裝上就啓用,卸掉不會留下核心補丁。TUI 只負責交互與呈現;模型調用、工具執行、fork / resume、compaction 和持久化仍由 dsh 現有服務擁有,會話日誌纔是對話真源。
倉庫 README 寫明:該插件曾被 DeepSeek Harness 官方公衆號作爲「內測用戶精選插件」展示。這是倉庫自己的收錄說明,不改變它仍是社區維護插件這一事實。
核心功能¶
按 README 與交互文檔,能力可以分成下面幾塊。
1、終端原生對話。流式 Markdown、結構化工具卡、/ 命令與 @ 文件補全(消息任意位置都能補全;文本會附加文件內容,PNG / JPEG / WebP / GIF 作爲持久圖片塊發送)、歷史搜索、消息選擇。渲染有 inline 和 alternate-screen 兩種模式;/lang 可在中英界面之間切換。
2、可觀察的 Agent 狀態。即時工作狀態行、上下文分段進度條、TPS 儀表、緩存命中率、推理等級、輸入 / 輸出 token,以及 Git / 會話信息。工作狀態行復用同作者的 dsh-working-activity 狀態機,從會話事件在進程內派生,不把 UI 狀態寫進共享日誌。TPS 儀表按倉庫說明採用流式 1/8 格 gauge,速度語義色爲 ≥50 綠 / ≥20 黃 / <20 紅。
3、完整會話工作流。/resume 打開全屏會話瀏覽器,/new 開新會話,/compact 壓縮,/export 導出 Markdown,/btw 做不進主歷史的側問。輸入框爲空時連按兩次 Esc,會按 turn 邊界做會話 rewind / fork:選中一條用戶消息後,歷史回放到該邊界之前,原消息回到輸入框供修改重發。
4、接到 dsh 已有能力。Agent preset、Skills、MCP、Goals、Todos、子代理、ask_user_question 問卷都走現有服務或命令註冊表,而不是在 TUI 裏另起一套 Agent。preset 包含官方的 standard / code / minimal / cordis,以及隨包提供的「梁神模式」liangshen,用 /preset 切換;已經產生對話的會話不能原地換 preset。
5、爲長會話做的渲染。事件驅動投影、差分終端輸出、消息虛擬化、回放合併與有界緩存,避免每幀成本隨會話無限增長。屏幕外的消息行會變成固定高度佔位,不參與完整子樹佈局。
安裝與啓用¶
目錄詳情頁給出的安裝命令如下,在已經裝好 dsh CLI 的終端裏運行即可:
dsh plugin add github:ccch1mneyyy/dsh-TUI
如需可復現安裝,目錄頁建議固定 commit 哈希:
dsh plugin add github:ccch1mneyyy/dsh-TUI#commit
把 #commit 換成實際提交哈希。插件以當前 dsh 進程的權限運行,安裝時可能執行代碼;裝之前應檢查源代碼倉庫和許可證。
倉庫 README 推薦的路徑更完整:全局安裝官方 CLI 和本插件,首次啓動會自動初始化 dsh-tui profile。前置條件是 Node.js ^22.19 || >=24、官方 @deepseek-ai/dsh、pnpm 10 或更高,以及支持交互輸入的終端 TTY。跑模型還需要 DEEPSEEK_API_KEY。
# 1. 全局安裝 CLI + 本插件(自帶 dsh-tui 命令)
npm install -g @deepseek-ai/dsh @deepseek-harness-tui/dsh-tui
# 2. 未裝 pnpm 時先裝(首次初始化 profile 需要)
npm install -g pnpm
# 或:corepack enable pnpm
# 3. 啓動;首次運行會執行
# dsh plugin --profile dsh-tui add @deepseek-harness-tui/dsh-tui@<版本>
dsh-tui
手工分步與上面等價:
npm install -g @deepseek-ai/dsh
dsh plugin --profile dsh-tui add @deepseek-harness-tui/dsh-tui
dsh --profile dsh-tui
dsh-tui 和 dsh --profile dsh-tui 等價。命令從當前目錄啓動,Agent 的默認工作區也是當前目錄,所以要先 cd 到目標項目再啓動。macOS / Linux 下密鑰這樣導出:
export DEEPSEEK_API_KEY='your-key'
PowerShell 則是:
$env:DEEPSEEK_API_KEY = 'your-key'
不要把真實密鑰寫進倉庫。自定義兼容端點還可以設置 DEEPSEEK_BASE_URL。
更新時倉庫要求顯式帶 @latest,否則 pnpm 可能按 profile 裏已記錄的版本範圍就地解析,看起來像「重複執行安裝命令但版本沒變」:
dsh plugin --profile dsh-tui add @deepseek-harness-tui/dsh-tui@latest
TUI 內輸入 /update 也會更新已安裝的 @deepseek-harness-tui/dsh-tui 並自動重啓、恢復當前會話。啓動橫幅右上角會顯示當前版本(✦ dsh-TUI vX.Y.Z)。
舊版用過無 scope 包 dsh-cc-tui 和 cc-tui profile 的,需要遷到新包和新 profile,不要把舊包和新包加到同一個 profile 裏。環境變量已從 CC_TUI_* / DSH_CC_* 統一爲 DSH_TUI_*,數據目錄從 ~/.dsh-cc 改爲 ~/.dsh-tui;首次啓動若舊目錄存在而新目錄不存在,會整體複製(不移動)並提示一行。
典型用法¶
進入項目目錄後啓動:
cd /path/to/your-project
dsh-tui
恢復上次會話:
dsh-tui --resume
Windows 倉庫檢出還提供 dsh-tui.cmd,行爲等價。dsh-tui 不支持把 stdout 重定向後啓動,必須在交互式終端裏跑。
進去之後,常用操作如下。
1、對話。輸入內容後 Enter 發送,Shift+Enter 換行。模型正在工作時:Enter 把文本 steer 到當前回合的下一步邊界,Tab 排成 follow-up,Ctrl+Enter 中斷當前回合並立即投遞。Ctrl+O 展開或收起思考全文、工具參數與輸出。
2、時間回溯。輸入框爲空時連按兩次 Esc,打開用戶消息列表,選中並確認後 fork 出一條分支會話。智能體跑偏時不必丟掉整個會話。空閒時連按兩次 Ctrl+C 退出。
3、會話管理。輸入 / 打開命令菜單。/resume 瀏覽並恢復歷史會話(可搜索、預覽、跨項目;子 agent 運行默認摺疊),/new 新開,/compact 壓縮上下文,/export 導出 Markdown,/btw <問題> 做不進 session log 的單輪側問。/model 切換模型走的是會話 fork,不是原位替換:歷史原樣保留,新會話路由到新模型,舊會話仍留在 /resume 列表裏。
4、環境自檢。/doctor 看終端類型和模式,/status 看會話信息,/cost 看 token 用量,/permissions 看權限說明,/mcp 看 MCP 連接狀態。主題用 /theme(auto / light / dark / dark-ansi),也可把自定義 JSON 放到 ~/.dsh-tui/themes/。
VS Code 裏有兩條路:直接在集成終端運行 dsh-tui;或者按倉庫 docs/vscode.md 安裝 companion 擴展 dsh-tui-vscode(發佈者 baobaolaodie,已上架 VS Code Marketplace)。擴展本身是另一個倉庫,不在本稿安裝範圍內。
適用場景與注意事項¶
目錄頁把適用對象寫得很明確:住在終端裏的開發者,不用瀏覽器也能跑 DeepSeek Harness。
- SSH 或 tmux 管服務器上的智能體時,不必做端口轉發,也不必開瀏覽器。
- 小 VPS 或同時跑着重構建的筆記本上,TUI 比瀏覽器標籤頁更省資源。
- 需要 Claude Code 那一類全屏狀態行、流式思考和雙擊 Esc 回退的終端體驗時,這是目前目錄裏對口的補位插件。
使用前有幾條邊界必須看清楚。
插件以當前 dsh 進程權限運行。dsh-TUI 自己不實現獨立沙箱,而是使用當前 profile 的文件、Shell、sandbox 與 approval 策略。倉庫提供的 profile 在非 Windows 平臺默認採用工作區約束與審批(DSH_PERMISSION_MODE 爲 workspace-write,審批策略通常爲 ask);Windows 當前沒有對應的沙箱後端,組合會退回到 danger-full-access,審批策略設爲 never。在包含敏感憑證或不可信倉庫的環境裏啓動前,應檢查實際的 profile 配置,而不是隻看界面。
pnpm 必須是 10 或更高。文檔寫明 pnpm 9 對傳遞依賴的提升行爲不同,profile 裏會解析不到 dsh-working-activity,表現爲啓動後立刻退出且幾乎無報錯(issue #60)。遇到這種情況先升級 pnpm 再重裝:
npm install -g pnpm@latest
dsh plugin --profile dsh-tui add @deepseek-harness-tui/dsh-tui@latest
不要對同一個 profile 再單獨 add dsh-working-activity,否則工作狀態行可能重複。
其他已知限制來自架構文檔,不是使用故障:注入到 system prompt 的插件上下文不會在 UI 裏單獨列出;Ctrl+V 讀剪貼板依賴平臺工具(Windows 用 PowerShell Get-Clipboard,macOS 用 osascript / pbpaste,Linux 需要 wl-paste / xclip / xsel 之一);退出時以進程退出收尾,不等待 Agent 異步落盤,持久化由 persistence 插件兜底;/vim、/connect、/hooks 是 Claude Code 同名佔位命令,DSH 側沒有等價機制時會給出說明,而不是靜默執行。
結尾¶
dsh-TUI 做的事情很集中:在不改 dsh 核心的前提下,給 DeepSeek Harness 補一套能在 SSH、tmux 和本地終端裏用的全屏界面。Agent、模型、工具和會話仍然走官方服務,TUI 只把這些事件畫到終端上,並補上狀態行、回溯和會話工作流。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-tui/
GitHub:https://github.com/ccch1mneyyy/dsh-TUI
npm:https://www.npmjs.com/package/@deepseek-harness-tui/dsh-tui