前言¶
在 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