DeepSeek Harness 插件

dsh-plugin-terminal-mervyn-teo

DSH Web plugin: a real PTY terminal in a VS Code-style collapsible footer panel (host PTY + WebSocket + xterm.js)(英文原文)

跳到安装方式

来源信息

GitHub 仓库
mervyn-teo/dsh-plugin-terminal
最近更新
2026年8月20日
分类
插件开发工具
GitHub stars
3
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/mervyn-teo/dsh-plugin-terminal
插件名:dsh-plugin-terminal-mervyn-teo
作者:mervyn-teo

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-plugin-terminal

<p align="center"> <a href="https://github.com/mervyn-teo/dsh-plugin-terminal"> <img src="assets/banner.png" alt="dsh-plugin-terminal 横幅 — DeepSeek Harness 页脚中的真实 PTY 终端" width="100%"> </a> </p>

English | 中文

一个 DeepSeek Harness(DSH)Web 插件:在页脚添加一个 真实 的交互式终端 —— 一个 VS Code 风格的、停靠在底部 的可折叠面板。与早期版本(用内置 help/echo/ls 命令伪造输出)不同,本插件 在 PTY 中运行真正的 shell,并把原始终端字节流传输到浏览器。它是一个持久化的 bundle 插件(Host 半边 + 浏览器半边),每次启动都会自动加载。

演示

<p align="center"> <img src="assets/demo.gif" alt="dsh-plugin-terminal 演示 — 页脚中的真实终端" width="640"> </p>

功能

  • 真实终端 —— 在 PTY 中运行真正的交互式 shell(Windows 默认 PowerShell,

其他平台默认 $SHELL//bin/bash),底层使用 DSH 的 subprocess.spawnTerminal 原语(node-pty)。

  • 完整终端渲染 —— xterm.js 渲染 ANSI 颜色、光标移动、全屏应用

vimhtoptop …)以及 256 色输出。

  • VS Code 风格页脚面板 —— 可折叠的底部面板,带标题栏、顶部拖拽调整大小、

重启按钮与折叠开关。

  • 键盘快捷键 —— Ctrl+ ` 切换面板(VS Code 默认快捷键)。
  • 实时调整大小 —— 调整面板时 PTY 会重新换行。
  • Terminal 配置卡片 —— 在 设置 → 插件 中实时配置主题、字号、面板高度、

不透明度、启动折叠、shell 与工作目录。

  • 优雅降级 —— 当 xterm.js 无法加载时(离线),纯文本流式视图仍能使用真实

shell。

文件

文件用途
lib/index.jsHost 半边 —— 创建 PTY 并通过 /api/terminal WebSocket 桥接。
lib/client.js浏览器半边 —— 页脚面板与配置卡片。
cordis.patch.yml插入插件行的组合补丁。
package.json包元数据(dsh.bundle + dsh.client 清单)。

安装

dsh plugin --profile web add github:mervyn-teo/dsh-plugin-terminal

然后重启 dsh web —— Host bundle 在启动时加载。

默认配置在 cordis.patch.yml。可在那里(或 profile 自带的 cordis.patch.yml) 修改后重启,或在运行时通过配置卡片调整。Host 半边提供两个同源路由供浏览器半边

使用:GET|POST /api/terminal/config/api/terminal WebSocket 升级。

依赖

  • DSH 需要挂载 subprocesswebServer 服务。
  • 终端首次渲染 xterm.js 时需要能访问 jsDelivr(纯文本降级视图无需网络)。

设置

设置 → 插件 → Terminal 提供:

设置说明
主题darklight 终端主题(实时生效)。
字号终端字号(像素,实时生效)。
最大高度面板最大高度(像素)。
不透明度终端背景不透明度 0–100%(100 = 完全不透明)。
启动折叠面板是否在启动时折叠。
Shell新会话使用的 shell 可执行文件。
工作目录新会话的默认目录(留空 = 主目录)。

Shell 与工作目录在下次打开终端时生效;主题、不透明度、字号与最大高度立即生效。

说明与限制

  • 终端从 jsDelivr CDN 加载 xterm.js;首次展开需要网络访问。纯文本降级视图离线

仍可用。

  • 会话是进程本地的,重启 DSH 后不会恢复。
  • 与 Web GUI 的其他部分一样,WebSocket 路由仅绑定回环地址。
  • Windows —— Windows 上默认 shell 为 powershell.exe(将 shell 设为

cmd.exeshellArgs 设为 [] 可切换为命令提示符)。需要 DSH 主机提供为 Windows 构建的 node-pty(conpty/winpty)。

许可证

[MIT](LICENSE)