底部多标签终端面板(node-pty + xterm.js):贴底全宽,输入框始终在终端上方。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-plugin-terminal
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:siberiah2o/dsh-plugin-terminal
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DeepSeek Harness (DSH) Web GUI 的底部终端面板插件 —— 在页面底部挂一个真正可交互的多标签 shell(Windows 走 ConPTY,Linux/macOS 走 openpty)。
English · MIT
安装
dsh plugin --profile web add dsh-plugin-terminal && dsh web
注意:这是 DSH(DeepSeek Harness)插件——不要用普通
npm i dsh-plugin-terminal,必须通过dsh plugin安装才会被加载。
截图
| 折叠 | 展开 | 多标签 |
|---|---|---|
![]() |
![]() |
![]() |
说明
- 底部终端面板:贴底固定,宽度对齐对话列;输入框始终在终端上方
- 快捷键展开/收起(默认
Ctrl+``,可配置为Ctrl+J` 等);拖拽顶部 grip 调整高度(120px–78% 视口,自动记忆) - 多标签:
+新建、✕ 关闭、⟳ 重启;切 tab 不中断进程,刷新或切换工作区自动恢复会话 - 每个终端记住自己的工作目录:新建终端落在当前 DSH 工作区;
dsh web重启后点 ⟳ 仍回到原目录,而不是服务端启动目录 - 重启 dsh web 不丢终端:会话元数据 + 滚动缓冲实时落盘(
$DSH_HOME/plugin-data/terminal/),重启后恢复为"已退出"历史标签(画面完整回放,点 ⟳ 一键重启进程);手动关闭的标签不留痕 - xterm.js 6:颜色、闪烁光标、备用屏幕、Unicode v11(CJK 宽度表)、10000 行回滚
- WebSocket 直连 PTY,低延迟;深浅主题下终端颜色均可读
- 复制粘贴:拖选后松开鼠标自动复制,右键粘贴;
Ctrl+V粘贴、Ctrl+Shift+C/Ctrl+Shift+V复制/粘贴(剪贴板 API 可用时)- ⚠️ 通过远程 http(非 https / 非 localhost)访问 GUI 时,浏览器会禁用
navigator.clipboard(非安全上下文)——插件会自动退回execCommand复制、并放行浏览器原生右键菜单粘贴,两种方式都能用
- ⚠️ 通过远程 http(非 https / 非 localhost)访问 GUI 时,浏览器会禁用
配置
插件行为存放在 DSH 设置文档($DSH_HOME/settings.yaml 的 terminal 段),可在 GUI 设置 → 插件 里直接改。改动对之后新建的会话即时生效(无需重启);已存在的标签保留它们启动时的命令。
| 字段 | 默认值 | 含义 |
|---|---|---|
toggleShortcut |
`ctrl+`` | 展开/收起底部面板的快捷键。格式:[ctrl|shift|alt|meta]+[...]+键,如 ctrl+j、ctrl+shift+f1。键可以是字母、数字、F1–F12,或名称(```、space、enter、tab、up/down/left/right、home/end、pageup/pagedown、delete、backspace、escape)。 |
shellCommand |
(空 = 自动探测) | 新建终端会话时使用的命令行。留空则用平台默认(Windows 下 pwsh/powershell/cmd,POSIX 下 $SHELL)。 |
示例 —— Windows 上以 cmder 启动终端,并把面板绑定到 Ctrl+J:
terminal:
toggleShortcut: ctrl+j
shellCommand: cmd.exe /k "C:\cmder\vendor\init.bat"
说明:
shellCommand按原样使用(不会注入任何参数):按空格拆分、双引号内的路径视为整体。- 如果快捷键是终端本身也会消费的按键(Ctrl+J 是 shell 的换行符 ^J),当焦点在终端面板内时按下会留给 shell,而不是切换面板。
- 运维级覆盖:环境变量
DSH_PLUGIN_TERMINAL_TOGGLE_SHORTCUT和DSH_PLUGIN_TERMINAL_SHELL_COMMAND优先于设置文档(也是无 settings 服务的 headless 组合下唯一的配置方式)。
在面板里运行 codex / claude code
这类 AI 编码 CLI 是全屏式 TUI(ANSI 转义序列 + 备用屏幕 + truecolor),对终端链路要求高。本插件已针对它们做了渲染调优:
- 子进程环境注入 TERM=xterm-256color、COLORTERM=truecolor(缺失时),非 Windows 下补 LANG/LC_ALL=en_US.UTF-8、PYTHONIOENCODING=utf-8,避免 256 色降级和中英文乱码
- xterm.js 6 内置 OSC 10/11/12 应答(Codex 查询终端背景色做主题适配可直接工作)
- unicodeVersion: "11" 保证中英混排不串位;drawBoldTextInBrightColors: false 保持粗体真实颜色;字体链带 CJK 兜底;回滚 10000 行(服务端环形缓冲 500k 字符)
仍遇到渲染问题时的建议:
- Claude Code:在会话里运行 /tui fullscreen(或 CLAUDE_CODE_NO_FLICKER=1 claude)切到全屏渲染,解决闪烁、滚动跳顶、resize 错乱;/tui default 切回
- tmux 里跑:确认 TERM=tmux-256color、tmux ≥ 3.4,必要时 set -ga terminal-overrides ',xterm-256color:RGB'
- Windows 中文乱码:用 Windows Terminal,chcp 65001,系统区域设置勾选"Beta: 使用 Unicode UTF-8";仍乱码就在 WSL 里跑
- 升级到最新版:多数渲染问题是工具自身的回归 bug,已在新版本修复
License
MIT
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 8076
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 8076
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
omdsh-dev/DSH-better-sidebar★ 3828
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
ccch1mneyyy/dsh-TUI★ 3661
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 3277
右下角常驻的小鲸鱼挂件:余额、今日已用与每轮对话消耗(含峰谷价),余额预警与今日预算的泡泡内容都可编辑;泡泡点击序列模块化自定义,支持并列加权 A/B、随机台词与随机图片;内置 30+ 厂商模板(OpenAI / OpenRouter / Kimi / 硅基流动 / 方舟 / 智谱 / MiniMax 等),按模型查余额与订阅额度;另有任务结束音效、导入音频、自定义角色与资源管理。数据全在本机,无遥测。
Devin-AXIS/deepseek-design#deepseek-idesign★ 1628
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。



社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。