前言¶
在 DSH Web GUI 裏做智能體開發或 AI CLI 工作流時,經常會遇到一個需求:頁面上已經打開對話界面,但還需要一個可用的 shell 來執行命令、查看日誌、切換目錄,或者繼續操作 Codex、Claude Code 這類全屏終端程序。
dsh-plugin-terminal 是針對 DeepSeek Harness(DSH)Web GUI 的底部終端面板插件。它在頁面底部提供一個多標籤 shell 面板,底層使用 node-pty,Windows 上通過 ConPTY 工作,Linux/macOS 上使用 openpty。
這是什麼¶
dsh-plugin-terminal 是一個 DSH Web GUI 插件,用於在視口底部增加一個可交互終端面板,並與會話列對齊。倉庫地址指向 siberiah2o,許可證爲 MIT。
它解決的核心問題是:讓 DSH Web GUI 用戶無需離開瀏覽器頁面,就能在底部打開、切換、重啓多個終端標籤,並保持終端會話、工作目錄和回滾記錄。
核心能力¶
- 底部終端面板固定在 DSH Web GUI 視口底部,並與會話列對齊。
- 支持多標籤 shell,可新建、關閉、重啓標籤;切換標籤時進程繼續運行;刷新頁面或切換 workspace 後,活動會話可恢復。
- 終端會記住工作目錄:新標籤從當前 DSH workspace 啓動;
dsh web重啓後,重啓操作會回到該終端原來的目錄,而不是服務啓動目錄。 - 會話元數據和 scrollback 會持久化到
$DSH_HOME/plugin-data/terminal/。dsh web重啓後,這些終端可以作爲已退出的歷史標籤恢復。 - 支持 xterm.js 6 特性,包括顏色、閃爍光標、alternate screen、Unicode v11 CJK 寬度表,以及 10000 行 scrollback。
- 通過 WebSocket 雙向通道連接 PTY,在淺色和深色主題下都提供深色終端表面。
- 支持鼠標選擇複製、右鍵粘貼、
Ctrl+V粘貼;當剪貼板 API 可用時,支持Ctrl+Shift+C/Ctrl+Shift+V複製粘貼。 - 可配置面板切換快捷鍵,並支持拖拽調整面板高度,面板尺寸會被記住。
- 針對 Codex、Claude Code 等全屏 AI coding CLI 做了適配,支持 truecolor 和 CJK 渲染。
安裝與啓用¶
官方安裝命令是:
dsh plugin --profile web add dsh-plugin-terminal && dsh web
注意:這是一個 DSH 插件,需要通過 dsh plugin 安裝並啓用,不要直接使用普通的:
npm i dsh-plugin-terminal
典型用法¶
配置快捷鍵和 shell 命令¶
插件行爲可以在 DSH 設置文檔中配置,位置是 $DSH_HOME/settings.yaml 的 terminal 部分;也可以在 GUI 中進入 Settings → Plugins 修改。
示例配置:
terminal:
toggleShortcut: ctrl+j
shellCommand: cmd.exe /k "C:\cmder\vendor\init.bat"
其中:
toggleShortcut用於切換底部終端面板。shellCommand用於指定新終端會話啓動時執行的命令行。
shellCommand 會按原樣使用,不會注入額外 flags。命令行按空格拆分,並保留雙引號,因此帶引號的路徑可以正常使用。
使用環境變量覆蓋配置¶
以下環境變量可以覆蓋設置文檔中的配置,也適用於 headless compositions:
DSH_PLUGIN_TERMINAL_TOGGLE_SHORTCUT
DSH_PLUGIN_TERMINAL_SHELL_COMMAND
與 Codex、Claude Code 等全屏 CLI 配合¶
dsh-plugin-terminal 對 Codex、Claude Code 這類全屏 TUI 做了渲染適配,包括 truecolor 和 CJK 寬度處理。
如果 Claude Code 渲染出現閃爍,可以在會話中使用:
/tui fullscreen
或者用:
CLAUDE_CODE_NO_FLICKER=1 claude
切換到無閃爍的 fullscreen renderer。
在 tmux 內使用時,建議設置:
TERM=tmux-256color
並確認 tmux 版本爲 3.4 或更新版本;必要時可以添加 terminal-overrides。
適用場景與注意¶
適合以下使用場景:
- 在 DSH Web GUI 中同時使用對話界面和 shell。
- 在瀏覽器頁面裏運行 Codex、Claude Code 等全屏 AI coding CLI。
- 需要在 Web GUI 中保留終端工作目錄、會話歷史和 scrollback。
- 需要多個終端標籤並行工作,並避免頻繁切換到本地終端窗口。
使用前需要注意:
- 插件會按當前
dsh進程權限運行。安裝前應檢查源碼和許可證。 - 當 GUI 通過 remote http 打開,且不是 https、也不是 localhost 時,瀏覽器會禁用
navigator.clipboard。此時插件會回退到execCommand複製,並允許瀏覽器原生右鍵菜單粘貼。 - 如果切換快捷鍵本身也會被終端消耗,例如某個快捷鍵在 shell 中有含義,那麼在終端面板有焦點時,按鍵會先發給 shell,而不是切換面板。
shellCommand不會被自動追加 flags,需要按實際命令行書寫。
鏈接¶
- 目錄頁鏈接來自提供的插件線索:
https://www.skillhub.cn/plugins/siberiah2o/dsh-plugin-terminal - GitHub 倉庫:
https://github.com/siberiah2o/dsh-plugin-terminal