跳到正文

MAXeaglet/dsh-bash-terminal

92最近提交 2026年8月15日

dsh-bash-terminal DSH 插件

该插件提供 `shell` 工具执行一次性命令,以及 `terminal` 工具提供持久交互式终端会话,运行在用户选择的终端后端(PowerShell、Git Bash 或 WSL)上。终端后端在 DSH Web UI 设置中选择,AI 模型无法更改。插件集成了 DSH 的沙箱、后台任务和子进程接缝。

如何安装 dsh-bash-terminal DSH 插件

dsh plugin --profile web add dsh-bash-terminal   # 自动加进 profile 的 bundles 并应用 patch

复制不会执行命令。安装 dsh-bash-terminal DSH 插件前请核对仓库和版本。

dsh-bash-terminal DSH 插件数据来源

dsh-bash-terminal DSH 插件快照日期:2026年8月16日

discovered

dsh-bash-terminal DSH 插件能做什么

  • 通过 `shell` 工具在 PowerShell、Git Bash 或 WSL 中执行一次性命令。
  • 通过 `terminal` 工具提供持久交互式终端会话(支持 open/send/signal/close)。
  • 允许用户在 DSH Web UI 设置中选择默认终端后端(设置持久化到 DSH settings 系统)。
  • 支持通过 `distro` 参数指定 WSL 发行版。
  • 集成 DSH 沙箱系统:受限模式下 fail-closed,支持通过 `sandbox_permissions` 和 `justification` 进行沙箱升级。
  • 将后台任务注册到通用 `jobs` 注册表,支持 `run_in_background`、`job_output`、`job_kill`。

dsh-bash-terminal DSH 插件适合哪些场景

  • 快速执行 `git status` 或 `npm install`,无需切换终端窗口。
  • 在 WSL 发行版中打开持久 SSH 会话,跨多轮对话交互。
  • 执行 PowerShell 脚本并获取完整输出,通过交互式终端处理 SIGINT。
  • 使用 Git Bash 在 Windows 路径上运行 POSIX 命令(如 `ls`、`grep`),无需打开独立终端。
  • 开发者在 DSH 对话中,需要偶尔在 WSL 中运行 Linux 特定命令时无缝使用。

dsh-bash-terminal DSH 插件适合谁

  • 使用 DSH 的 Windows 用户,希望在不离开聊天界面的情况下,在熟悉的终端(PowerShell、Git Bash 或 WSL)中运行命令。
  • 需要跨不同终端环境执行任务,并希望统一接口的开发者。

dsh-bash-terminal DSH 插件的限制

  • 仅支持 `win32` 平台(Windows)。
  • 交互式 PowerShell 会话需要 PowerShell 7;PowerShell 5.1 无法启动 ConPTY 会话。
  • WSL 交互式会话在 ConPTY 下可能偶发 WSL 服务 RPC 错误(0x8007072c),一次性命令正常。
  • Git Bash 是 msys2 环境,与 WSL 或原生 Linux 存在差异(路径映射、软件包可用性)。
  • DSH 的 Windows ACL 沙箱启动器尚未在 npm 上发布,沙箱基础设施已就绪,但需 DSH 发布后才能完全生效。

dsh-bash-terminal DSH 插件的仓库 README 摘录

以下文字摘自 dsh-bash-terminal DSH 插件的上游仓库 MAXeaglet/dsh-bash-terminal 的 README,版权归原作者,仅作引用。

> 🌐 [English](README.en.md) · 社区交流:[LINUX DO](https://linux.do) · [GitHub](https://github.com/MAXeaglet/dsh-bash-terminal) ![test](https://github.com/MAXeaglet/dsh-bash-terminal/actions/workflows/test.yml/badge.svg) DSH(DeepSeek Harness)插件:一个 `shell` 工具,在 Windows 上统一执行 **PowerShell / Git Bash / WSL** 三种终端命令。 | 后端 | 实际执行 | 语法 / 路径 | 环境变量 | |------|----------|-------------|----------| | `powershell`(默认) | `pwsh -NoLogo -NoProfile -NonInteractive -Command <cmd>` | PowerShell;`C:\...` | `$env:NAME` | | `gitbash` | Git for Windows `bash -lc <cmd>` | POSIX;`/d/WorkSpace`;PATH 含 `/usr/bin`、`/mingw64/bin` | `$NAME` | | `wsl` | `wsl [-d <distro>] -e bash -lc <cmd>` | Linux;`/mnt/d/...` | `$NAME`(经 WSLENV) | 每次调用都启动全新 shell:**不保留状态**(cwd / 变量 / 别名)——请传 `workdir` 而不是用 `cd`。 ## 设计要点 - **终端由用户决定,AI 无法更改**:Web UI 设置页(设置 → 通用)出现"默认终端"下拉(PowerShell / Git Bash / WSL);`shell` 工具永远只使用该设置,不暴露终端参数给模型。设置通过 DSH settings 系统持久化(settings.yaml)。 - **不占用 `ctx.shell` 能力接缝**:DSH 自带的沙箱化 `pwsh` 工具保持原样可用;本插件的 `shell` 工具是**额外的**多终端入口。 - 通过共享的 `ctx.subprocess` seam 派生进程:进程树终止(Windows `taskkill /T`)、SIGTERM→grace→SIGKILL、输出 spill 文件,与官方 `dsh-tool-bash` / `dsh-tool-pwsh` 行为一致。 - 后台任务注册进通用 `jobs` registry,支持 `ru

阅读完整 README仓库许可: MIT

dsh-bash-terminal DSH 插件常见问题

如何安装 dsh-bash-terminal?

首先运行 `npm install -g dsh-bash-terminal`,然后执行 `dsh plugin --profile web add dsh-bash-terminal`。接着以管理员身份运行 `powershell -ExecutionPolicy Bypass -File install.ps1 install` 来修补 DSH 设置白名单,最后重启 DSH Web。详细步骤请查看 README。

支持哪些终端后端?

支持 PowerShell(默认,交互式会话需要 PowerShell 7)、Git Bash(来自 Git for Windows)和 WSL(任意已安装的 Linux 发行版)。你可以在 DSH Web UI 设置中选择默认终端。AI 模型无法更改你的选择。

能在 Linux 或 macOS 上使用吗?

不能,该插件仅注册在 `win32` 平台(Windows)上,专为 Windows 设计。在其他平台上,这些工具将不可用。

为什么我的交互式 PowerShell 会话无法启动?

交互式 PowerShell 会话需要 PowerShell 7(pwsh.exe)。PowerShell 5.1 无法启动 ConPTY 会话,会报错 0x8009001d。一次性命令在 PowerShell 5.1 下可以正常工作。要使用交互式会话,请安装 PowerShell 7。

如何更改默认终端后端?

打开 DSH Web UI 设置(齿轮图标)→ 通用 →「默认终端」下拉菜单,选择 PowerShell、Git Bash 或 WSL。更改立即生效并持久化。随后 AI 模型将使用该后端执行 `shell` 和 `terminal` 工具。