前言¶
在 DSH(DeepSeek Harness)的 Web 插件生態中,有時需要在瀏覽器中執行命令。傳統的做法是打開本地終端,這會切斷與當前聊天或任務的上下文關聯。dsh-console 解決了這個問題,它通過 Web 界面提供一個真實的 PTY 終端。
這是一個社區維護的插件,旨在讓開發者在不離開 Web 界面的情況下,直接操作命令行。
核心功能¶
dsh-console 將終端能力集成到 DSH 的主視圖中:
- 主視圖“控制台”標籤頁:與“對話”、“軌跡”等標籤同級,採用 iTerm 風格的深色多標籤欄設計。
- 真 PTY 交互終端:基於
node-pty底層實現,支持vim、top、htop以及Ctrl+C等所有交互式程序。 - 用戶真實 shell 環境:繼承用戶的登錄 shell(
$SHELL -l)、完整的環境變量以及 256 色支持。這保證了 conda 環境和 git 狀態提示符能正常顯示。 - 輸出不丟:利用 host 側的 512KB 環形緩衝區,結合 SSE(Server-Sent Events)流式推送。即便在切換標籤、刷新頁面或斷線重連後,終端歷史輸出依然會自動回放還原。
- 多標籤管理:支持通過
+新建標籤、×關閉標籤。每個標籤有獨立的 PID 和幾何尺寸顯示,且帶有綠點存活指示。
安裝與啓用¶
安裝過程非常簡單,推薦使用官方提供的一鍵腳本。
# 1. 進入插件目錄
cd dsh-console
# 2. 執行安裝腳本
./install.sh
# 3. 重啓 DSH
install.sh 腳本會自動完成以下三件事:
* 將插件文件拷貝至 ~/.dsh/profiles/web/node_modules/dsh-console。
* 在 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 中追加 dsh-console。
* 提示重啓 DSH。
典型用法¶
完成安裝並重啓 DSH 後,按照以下步驟操作:
- 在瀏覽器中打開 DSH Web 界面,地址爲
http://127.0.0.1:3080。 - 進入任意會話,頂部標籤欄會出現“控制台”標籤(位於“軌跡”與“任務面板”之間)。
- 點擊
+或“新建終端”按鈕創建一個新標籤。 - 直接在終端中鍵入命令進行交互式操作。
適用場景與注意¶
- 環境依賴:構建插件需要 Node.js >= 18,但運行預構建的插件包不需要。
- 會話生命週期:PTY 會話與 DSH 進程綁定。當 DSH 重啓時,所有終端標籤會像關閉窗口一樣被終止,請注意保存工作。
- 已知限制:
- 終端窗口尺寸固定爲 120×34,暫不支持動態 resize。
- 終端標題固定顯示“終端 N”,目前不支持 OSC 標題序列動態更新。
dsh-console 提供了從 Web 到命令行的直接通路,適合需要在 DSH 環境中快速調試腳本或執行後臺任務的場景。