在网页界面里打开真实交互式 shell 终端
26.1/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add giiiiiithub/terminal该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 80 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/8) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量写入剪贴板(不计风险)
查看扫描证据(共 9 处,展示前 9 条)
- 读取本地文件lib/index.mjs:86
if (existsSync(powershell)) found.push({ - 读取本地文件lib/index.mjs:123
]) if (existsSync(path)) found.push({ - 执行外部命令来自配置/变量lib/index.mjs:134
execFile(where, [command], { - 读取本地文件lib/index.mjs:190
if (!existsSync(cwd) || !statSync(cwd).isDirectory()) return { - 读取本地文件lib/index.mjs:190
if (!existsSync(cwd) || !statSync(cwd).isDirectory()) return { - 启用终端会话(PTY)lib/index.mjs:196
child = pty.spawn(shell, [], { - 执行外部命令固定命令lib/index.mjs:416
execFile("taskkill", [ - 写入剪贴板lib/client.js:13636
if (selection !== "") navigator.clipboard.writeText(selection).catch(() => {}); - 读取剪贴板lib/client.js:13639
navigator.clipboard.readText().then((text) => {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-typert-protocol给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 网页内交互式终端
- 真实PTY支持
- 浏览器端终端渲染
README
由 DeepSeek 最新模型翻译生成dsh-terminal
DSH Web UI 的终端面板插件,提供真实可交互的 shell 终端:
- 真实 PTY:宿主端用 node-pty 在 DSH 服务进程里拉起 shell(Windows 下走 ConPTY),不是模拟器。
- 平台默认 shell:Windows 默认 cmd.exe(可切换 PowerShell / pwsh / Git Bash),macOS 默认 /bin/zsh,Linux 默认 /bin/bash;可通过配置或面板里的下拉框切换。
- 浏览器渲染:客户端用 xterm.js(@xterm/xterm 6)渲染,支持全色彩、光标、滚动回看(5000 行)、Ctrl+Shift+C/V 复制粘贴。
- 多标签会话:可以同时打开多个会话标签,折叠面板后会话在宿主端继续运行。
- 停靠/浮动窗口:dock 模式可拖动上边缘调整高度,浮动模式可移动窗口并八向缩放。
- 随项目打开:首个会话默认在工作区目录(第一个 workspace path)启动,找不到时回退到配置目录或用户主目录。
前置条件
- 已安装 DeepSeek Harness,且 dsh web(或 dsh --profile web)能正常启动并打开浏览器界面。
- pnpm ≥ 9(DSH 的 profile 使用 pnpm 管理依赖)。
展开完整文档(README 剩余 1 节)
dsh-terminal DSH Web UI 的终端面板插件,提供真实可交互的 shell 终端: - 真实 PTY:宿主端用 node-pty 在 DSH 服务进程里拉起 shell(Windows 下走 ConPTY),不是模拟器。 - 平台默认 shell:Windows 默认 cmd.exe(可切换 PowerShell / pwsh / Git Bash),macOS 默认 /bin/zsh,Linux 默认 /bin/bash;可通过配置或面板里的下拉框切换。 - 浏览器渲染:客户端用 xterm.js(@xterm/xterm 6)渲染,支持全色彩、光标、滚动回看(5000 行)、Ctrl+Shift+C/V 复制粘贴。 - 多标签会话:可以同时打开多个会话标签,折叠面板后会话在宿主端继续运行。 - 停靠/浮动窗口:dock 模式可拖动上边缘调整高度,浮动模式可移动窗口并八向缩放。 - 随项目打开:首个会话默认在工作区目录(第一个 workspace path)启动,找不到时回退到配置目录或用户主目录。 前置条件 - 已安装 DeepSeek Harness,且 dsh web(或 dsh --profile web)能正常启动并打开浏览器界面。 - pnpm ≥ 9(DSH 的 profile 使用 pnpm 管理依赖)。 - 插件依赖原生模块 node-pty。若安装时 pnpm(≥ 10)拦截其构建脚本,按提示把 node-pty 加入 profile 目录 pnpm-workspace.yaml 的 allowBuilds 后重新执行安装命令。 安装 第一步:安装 方式1:npm 源(推荐) 包已发布到 npm registry,一行安装: dsh plugin --profile web add dsh-terminal 方式2:GitHub 源 dsh plugin --profile web add github:giiiiiithub/terminal 仓库内已提交 lib/ 构建产物,git 源安装时无需现场构建。 方式3:本地源码(开发调试) - Windows: dsh plugin --profile web add "file:C:/user/abc/terminal",假设本项目源代码在: C:/user/abc/terminal - macOS: dsh plugin --profile web add "file:/opt/dsh-terminal" - Linux: dsh plugin --profile web add "file:~/dsh-terminal" 第二步:重启服务 插件含宿主端代码,必须重启 dsh web 进程才会加载: 停止当前 dsh web 进程(如 Ctrl+C,或结束 dsh --profile web 的 node 进程),然后: dsh web 版本 ≥ 0.1.1 起插件自带 dsh.bundle,dsh plugin add 会自动把插件登记进 profile 的加载层,无需再手动编辑 cordis.patch.yml。 早期版本(0.1.0)需要手动添加条目,升级后请删除 profile 里手写的 terminal insert 条目,否则会和 bundle 层自动插入的条目重复。 第三步:验证 刷新浏览器页面,会话头部出现 >_ 终端 按钮即安装成功。点击展开面板,首次展开会自动启动一个会话(默认 shell,Windows 下为 cmd.exe)。 卸载 1. 移除依赖: dsh plugin --profile web remove dsh-terminal 或手动:在 profile 目录执行 pnpm remove dsh-terminal。 2. 若曾在 profile 的 cordis.patch.yml 里手写过 terminal insert 条目,一并删除。 3. 重启 dsh web 服务,刷新页面后 >_ 终端 按钮消失即卸载完成。 配置 默认值可在 profile 的 cordis.patch.yml 里按 id 定点覆盖(bundle 层之后应用): - id: terminal config: shell: cmd.exe # 默认 shell(Windows 下默认即 cmd.exe,也可填完整路径) cwd: <工作目录> # 新会话默认工作目录,不配置该项时,每次新建terminal都会使用shd当前会话所在工作目录 env: # 追加到进程环境 LANG: "zh_CN.UTF-8" | 配置项 | 默认值 | 说明 | | shell | cmd.exe (win32) / /bin/zsh (macOS) / /bin/bash (Linux) | 新会话默认 shell | | cwd | 客户端工作区路径;都没有时为用户主目录 | 新会话默认工作目录。解析顺序:客户端请求参数(UI 默认传当前会话 workspace)→ 本配置 → 用户主目录 | | env | — | 追加的环境变量 | | defaultReadTimeoutMs | 250 | read 长轮询上限 | | maxBufferBytes | 2,000,000 | 每会话输出缓冲上限,超出丢弃最旧字节 | 已知限制 - 折叠面板/非活动标签的会话输出在宿主端缓冲(上限 2MB),重新激活时一次性回放。 - 活会话上限 64 个:超出后 open 先逐出已退出会话,仍满则返回 session-limit 错误。 - 服务重启会终止所有会话(PTY 随宿主进程退出)。 - 已退出会话在宿主端保留 60 秒,供客户端读取退出码,之后转入 tombstone(上限 64 条)并移出会话列表;kill 会立即释放会话 id。 - kill 终止 shell:Windows 上先执行 taskkill /PID <pid> /T /F 强制清理进程树(node-pty 的控制台枚举辅助进程在个别情况下会失败,只杀 shell 本身),再走 node-pty 正常终止;Linux 下按进程组终止。仅当子进程主动脱离控制台/会话(如以 CREATE_NEW_CONSOLE 启动)时仍可能残留。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
giiiiiithub/terminal
在网页界面里打开真实交互式 shell 终端
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这是你的仓库?认领条目