前言¶
DeepSeek Harness(下面簡稱 dsh)的默認入口是本地 Web UI。官方開發者預覽頁給出的快速啓動命令是 npx @deepseek-ai/dsh web,界面、工具、會話、權限這些能力都按「一切皆插件」掛到 Cordis 內核上。對習慣在 SSH、tmux 或純終端裏幹活的人來說,開瀏覽器並不是最順手的路徑。UI 本身也是插件,換一套終端界面並不需要改 dsh 源碼。
deepseek-harness-tui 就是沿着這條路做的:用 Rust 和 ratatui 在終端裏畫出 agent 時間線,把流式推理、工具調用、Skills、多圖 prompt 和持久會話收進同一個界面。它由 openma-ai 維護,MIT 許可證,當前 npm / Cargo 版本均爲 0.2.1。社區插件目錄把它歸在「界面增強」,收錄日期是 2026-08-15。本文寫於 2026-08-17,GitHub 倉庫星標爲 34。
需要先分清兩件事。第一,社區插件目錄(deepseek-harness-plugin.com)是獨立站點,和 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。第二,目錄裏還有名稱非常接近的 TUI 項目,例如精選插件 dsh-TUI。本文只寫維護者爲 openma-ai、npm 包名爲 @openma/deepseek-harness-tui 的這一份,安裝時認準倉庫和包名。
倉庫 README 也寫明:本項目與 DeepSeek、xAI 無關聯;交互設計參考了 grok-build,運行底座是 DeepSeek Harness。
這是什麼¶
一句話定位:deepseek-harness-tui(命令名 dsh-tui)是 DeepSeek Harness 的終端原生 agent UI。
它解決的問題很具體。默認 Web UI 適合本機瀏覽器;一旦你人在服務器、跳板機,或者就是不想離開終端,推理過程、工具結果、token 用量和會話恢復就缺少一個能在 TTY 裏看完的界面。這個插件把上述信息畫進 ratatui 界面,並且提供兩種接法:
1、作爲 dsh 的 profile 插件運行(倉庫推薦)。agent、工具、provider、憑據和可調用 skills 都來自宿主 profile,TUI 只負責呈現和輸入。
2、Standalone 模式,直接連 SDK JSON-RPC runtime。界面還是同一套,會話目錄改到 ~/.dsh-tui/sessions。
插件 runner 在宿主 TTY 上拉起平臺原生二進制,通過 Unix 的 fd 3/4,或 Windows 上帶認證的 loopback TCP,提供一套與官方 SDK server 兼容的 JSON-RPC。它不是把 @deepseek-ai/dsh-sdk-jsonrpc-server 直接掛進 profile;agent、工具、provider 和持久化仍由外圍 dsh profile 提供。Cordis 補丁裏的插件 id 是穩定的 tui-runner。
核心能力¶
倉庫 README 列出的能力可以按使用順序理解。
1、完整的 agent 時間線。推理、回覆、工具參數與結果、plugin 上下文、subagent 生命週期、token / cache 指標會即時畫在同一條時間線上。最新消息下方持續顯示階段、耗時和隊列深度。
2、宿主能力原生接入。plugin 模式下讀取 dsh 的模型、agent preset、權限、provider、憑據和可調用 skills。skills 與內置命令共用可搜索、可滾動的斜槓菜單。0.2.0 起,斜槓菜單會走 runner 的 tui/skills,過濾用戶可調用的 skill;選中後落入 /name,回車作爲普通 prompt 發出,skill 正文由宿主注入。
3、多圖 prompt。從文件、剪貼板或粘貼操作最多暫存 8 張圖片,草稿裏以可編輯的 [image n] chip 內聯顯示,並支持名稱、尺寸、大小和類型預覽。發送順序就是 token 順序。
4、終端友好的 Markdown。標題、列表、引用、代碼塊、行內代碼、強調、刪除線、鏈接和圖片標記都能渲染,同時保留 CJK / Latin 混排和軟換行。
5、高密度工具視圖。工具調用區分進行中、成功和失敗;結果可摺疊,長輸出有獨立滾動視窗,不會把整段對話擠掉。
6、適合長對話的控制。回合中可以排隊 follow-up,也可以打斷並立即發送。持久化 JSONL 會話用 /new、/resume 和 --session-id 管理。plugin 模式會話寫在 ~/.dsh/sessions。
7、跨平臺輸入。readline 編輯、上下文快捷鍵;macOS 上會直接讀物理 ⌘ / ⌥ 狀態,Linux / Windows 用 ctrl 組合鍵,讓行首尾、跳詞、刪詞在不同終端儘量一致。
8、終端原生界面。深淺主題、窄屏佈局、鼠標選擇和工具交互、原生 / tmux / OSC 52 剪貼板。支持 kitty graphics protocol 的終端可以預覽圖片,也可以用可選的 /liang 像素寵物。Ghostty、Kitty、WezTerm 等會顯示 RGBA 精靈,其他終端退回半塊字符鯨魚;寬度低於 60 列時自動隱藏。
當前集成基線寫在 README 裏:dsh 0.1.0-rc.6,Node.js 18+,pnpm 10+。官方 npm 包帶了四套原生二進制:macOS Apple Silicon(darwin-arm64)、macOS Intel(darwin-x64)、Linux x64、Windows x64。
安裝與啓用¶
社區目錄頁給出的安裝命令如下,在已經裝好的 DeepSeek Harness 終端裏運行即可:
dsh plugin add github:openma-ai/deepseek-harness-tui
目錄頁同時提醒:如需可復現安裝,請固定 commit 哈希:
dsh plugin add github:openma-ai/deepseek-harness-tui#commit
把 #commit 換成實際提交哈希。插件以當前 dsh 進程的權限運行,安裝時可能執行代碼,裝之前應檢查源代碼倉庫和許可證。
倉庫 README 更推薦按 profile 安裝 npm 包,而不是隻加 GitHub 源。前置條件是已安裝並配置好的 dsh、Node.js 18+ 和 pnpm 10+。安裝命令不需要 -w:
dsh plugin --profile tui add @openma/deepseek-harness-tui
dsh --profile tui
裝完可以用下面的命令確認 bundle 已掛成 tui-runner:
dsh --profile tui --dump-config
如果只想先看界面、暫時不接 runtime 也不準備 API key,可以用 demo:
npm install --global @openma/deepseek-harness-tui
dsh-tui --demo
主命令是 dsh-tui,dsb 是兼容別名。卸載全局包:
npm uninstall --global @openma/deepseek-harness-tui
Standalone 模式只裝 TUI 二進制是不夠的,還需要在工作區附近的 .venv 裏裝 DeepSeek Harness SDK,或顯式指定 runtime:
python -m venv .venv
.venv/bin/pip install deepseek-harness-sdk
dsh-tui --workspace .
也可以設置 DSH_RUNTIME_BIN,或傳入 --runtime-bin。憑據優先使用 --api-key、DEEPSEEK_API_KEY,隨後嘗試讀取本機 ~/.dsh 配置。找不到 dsh-jsonrpc-agent 時,README 的建議是裝 SDK、設環境變量,或改回 plugin 模式。
常用操作¶
進入界面後,倉庫給出的按鍵和命令如下。完整列表可以在界面裏用 /help 和 /keys 查看。
| 按鍵 / 命令 | 行爲 |
|---|---|
enter |
發送;回合運行時排隊 follow-up |
ctrl+x |
打斷當前回合並立即發送下一條 |
esc |
打斷當前回合(保留草稿);空閒時清空草稿 |
ctrl+c |
先清草稿,再中斷;連按兩次退出 |
/ |
打開命令菜單並按前綴過濾;plugin 模式下 host 的 skills 也在其中 |
/model · /mode |
選擇模型和 agent preset;完整目錄需要 plugin 模式 |
/permission · shift+tab |
選擇或輪換權限 preset;需要 plugin 模式 |
/effort · /plan |
設置推理力度,或把 plan 模式傳給宿主 |
/image [text] |
發送本地圖片(png / jpeg / webp / gif);需要 plugin 模式 |
/clip [text] · ctrl+v |
暫存剪切板圖片,最多 8 張同行;macOS / Linux |
ctrl+o · ctrl+t |
展開輸出 · 切換主題 |
!cmd |
在客戶端本地執行 shell 命令,不經過 agent |
幾條和模式相關的差別值得單獨記下:
- plugin 模式下,
ctrl+x把中斷轉發給宿主,不做硬中斷;Standalone 裏esc會停 runtime,會話日誌仍保留。 /model、/permission、/image以及完整 skill 目錄依賴 plugin 模式。- 輸入框右側的
/liang可用/liang on、/liang off顯式開關,不影響主界面功能。
兩種模式的會話目錄也不一樣:plugin 寫 ~/.dsh/sessions,Standalone 默認寫 ~/.dsh-tui/sessions,可用 --session-root 修改。
適用場景與注意事項¶
比較適合這幾類用法:已經在用 dsh,但更想在終端裏看推理和工具過程;需要 SSH / tmux 遠程會話,瀏覽器不方便;希望沿用宿主的模型、權限、skills 和會話,而不是另起一套 Web 皮膚。
安裝和運行前有幾件事需要覈對。
1、權限模型。插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。裝之前閱讀倉庫源碼和 MIT 許可證,不要把來源不明的 GitHub 地址直接丟進生產環境的 profile。
2、平臺限制。npm 包目前只帶 darwin-arm64、darwin-x64、linux-x64、win32-x64 四套二進制。啓動時報 no native binary for ...,先確認裝的是最新版本,並且自己的平臺在這個矩陣裏。倉庫提供從源碼構建的路徑:需要 Rust stable 和 Node.js 18+,本地腳本只編當前平臺。
3、版本基線。README 寫明當前集成基線是 dsh 0.1.0-rc.6。dsh 仍處於開發者預覽,核心插件和 API 還會變,釘版本比追 latest 更穩妥。0.1.0 及更早的 runner 是 CJS,可能和 dsh 並行加載的 ESM 插件搶同一份模塊,出現 ERR_REQUIRE_ESM_RACE_CONDITION;倉庫要求升到 0.1.1 以上。本文覈實到的發佈包是 0.2.1。
4、pnpm。遇到 workspace root 相關錯誤,README 的處理是升級到 pnpm 10+,再重新運行不帶 -w 的安裝命令。
5、像素寵物和圖片預覽。依賴 kitty graphics protocol。終端不支持時主界面仍可用,只是寵物或縮略圖退回降級顯示。
6、同名插件。社區目錄裏至少還有其他 TUI 實現,包名、維護者和安裝命令都不同。認準 github:openma-ai/deepseek-harness-tui 或 @openma/deepseek-harness-tui,避免裝到另一套界面上。
小結¶
deepseek-harness-tui 做的事情很剋制:不替換 dsh 的 agent 循環,只把終端變成一套能看流式推理、工具調用、skills 和持久會話的界面。推薦路徑是 dsh plugin --profile tui add @openma/deepseek-harness-tui,再用 dsh --profile tui 啓動;目錄頁等價入口是 dsh plugin add github:openma-ai/deepseek-harness-tui。先看界面可以用 dsh-tui --demo,不接 runtime、不需要 API key。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/deepseek-harness-tui/
GitHub:https://github.com/openma-ai/deepseek-harness-tui
npm:https://www.npmjs.com/package/@openma/deepseek-harness-tui