前言¶
在 DSH 里做开发时,经常会遇到需要查看 shell 输出、执行交互式命令或运行全屏终端程序的情况。如果只需要静态文本,普通输出面板可能已经够用;如果希望保留 ANSI 颜色、光标移动和 256 色输出,就需要一个真实 PTY 终端。dsh-plugin-terminal 就是面向 DSH Web 的这类插件。
下面介绍它的功能、安装方式和需要注意的限制。
这是什么¶
dsh-plugin-terminal 是一个 DSH Web 插件:在 VS Code 风格的可折叠底部面板中提供真实 PTY 终端。它由 host PTY + WebSocket + xterm.js 组成,插件 owner 是 mervyn-teo,许可证为 MIT。
核心功能¶
- 提供真实交互式终端,通过 PTY 运行默认 shell:Windows 默认
PowerShell,其他环境默认$SHELL或/bin/bash。 - 使用
xterm.js渲染 ANSI 颜色、光标移动、全屏应用和 256 色输出。 - 提供 VS Code 风格可折叠底部面板,包含头部、顶部可拖拽调整高度、重启按钮和折叠开关。
- 支持
Ctrl+`切换面板。 - 面板尺寸变化时,PTY 会重新流式布局。
- 在
Settings → Plugins中提供 Terminal 设置卡片,可配置主题、字体大小、最大高度、不透明度、初始折叠、shell 和工作目录。 xterm.js无法加载时,提供纯流式视图 fallback。
安装与启用¶
先确认 DSH 已挂载 subprocess 和 webServer 服务。安装插件后,再重启 dsh web,因为 host bundles 在启动时加载。
dsh plugin --profile web add github:mervyn-teo/dsh-plugin-terminal
典型用法¶
1、在 DSH Web 中使用 Ctrl + ` 切换终端面板。
2、打开 Settings → Plugins → Terminal,调整主题、字体大小、最大高度、不透明度、初始折叠、shell 和工作目录。
3、主题、不透明度、字体大小、最大高度会立即应用;shell 和工作目录在下次打开终端时应用。
4、Windows 默认使用 powershell.exe。如需 Command Prompt,可设置 shell 为 cmd.exe 且 shellArgs: []:
shell: cmd.exe
shellArgs: []
适用场景与注意¶
适合需要在 DSH Web 中直接操作真实 shell 的 DSH 用户和插件开发者。使用前注意:
- 插件以当前
dsh进程权限运行,安装前应检查源码与许可证。 - 终端会话是
process-local,不会在 harness 重启后保留。 - WebSocket 路由像 Web GUI 一样绑定
loopback。 - Windows 需要 Windows 构建的
node-pty(conpty/winpty)。 - 首次渲染
xterm.js需要访问jsDelivrCDN;离线时仍可使用纯流式 fallback。
结尾¶
dsh-plugin-terminal 的价值在于把真实 PTY 终端放进 DSH Web 的底部面板,提供可折叠面板、终端渲染、实时尺寸调整和终端设置卡片。GitHub 仓库:mervyn-teo/dsh-plugin-terminal。