3223698962/dsh-msys2-bash-executor
Standalone configurable MSYS2/UCRT64 and Git Bash executor for DeepSeek Harness, with global or per-preset activation
これは DeepSeek Harness(DSH)プラグインです。当サイトは GitHub README、インストール情報、メンテナンス状況、公開セキュリティシグナルをまとめています。
dsh-msys2-bash-executor
这是一个面向 Windows 的独立 DeepSeek Harness Bash 执行器。它可以通过 MSYS2/UCRT64 Bash 或 Git Bash 执行 agent 的 shell 调用,并在 DSH Web 设置页提供可视化配置。
本包不依赖 dsh-anchored-standard 或 dsh-anchored-standard-bash。插件会在隔离的 shell realm 中注册一个全局 Bash 工具,然后按全局开关或 preset ID 决定哪些新会话可以看到它。
功能
- 通过 DSH 的受管
subprocess服务直接传递argv,不使用 Node 的shell: true。 - 自动检测 MSYS2、UCRT64、Git Bash 和
PATH中的bash。 - 可配置 Bash 路径、参数、
PATH前置目录和环境变量。 - 支持前台超时、取消、输出限制、溢出文件、后台任务、增量读取和进程树终止。
- 可为 Standard、Code、Cordis、Minimal 和自定义 preset ID 分别启用。
- 可用一个全局开关为所有预设启用 Bash。
- Minimal 启用时会覆盖其内置持久 Bash 工具,绕过 Windows 不支持的 terminal inspection 路径。
- 未启用 Bash 的预设仍保留 Host PowerShell provider。
安全说明
本执行器没有沙箱。命令以 DSH 进程的完整用户权限运行,等价于 danger-full-access,不具备默认 PowerShell 沙箱的 Windows ACL 隔离。
请只在可信提示词、可信仓库和可信工具环境中使用。
从本地压缩包安装
目前暂不发布到 npm,可在本地检查并打包:
npm.cmd run check
npm.cmd pack --cache .npm-cache
dsh plugin --profile web add "C:\path\to\dsh-msys2-bash-executor-0.1.1.tgz"
从 GitHub 构建:
git clone https://github.com/3223698962/dsh-msys2-bash-executor.git
cd dsh-msys2-bash-executor
npm.cmd install
npm.cmd run check
npm.cmd pack --cache .npm-cache
dsh plugin --profile web add "C:\path\to\dsh-msys2-bash-executor-0.1.1.tgz"
安装或更新后重启 dsh web。启用范围仅对新建会话生效,运行中的会话会保留创建时的工具集合。
在 DSH Web 中配置
打开“设置”,进入“插件”的可配置插件页,在 MSYS2 / Git Bash 卡片中设置:
- 为所有预设启用 Bash:所有新会话显示
bash并隐藏pwsh。 - 按预设启用:关闭全局模式后,可分别控制 Standard、Code、Cordis、Minimal,或填写其他 preset ID。
- Bash 可执行文件:例如
C:\msys64\usr\bin\bash.exe或C:\Program Files\Git\bin\bash.exe。 - Bash 参数:命令之前传入的 JSON 数组,通常是
["-c"]。 - PATH 前置目录:每行一个 Windows 路径。
- 环境变量:值为字符串的 JSON 对象。
UCRT64 典型配置:
Bash 可执行文件:
C:\msys64\usr\bin\bash.exe
PATH 前置目录:
C:\msys64\ucrt64\bin
C:\msys64\usr\bin
环境变量:
{"MSYSTEM":"UCRT64","CHERE_INVOKING":"1"}
设置保存在插件独立的 msys2-bash 命名空间中,不会与 Host PowerShell provider 的 shell 设置冲突。由于 DSH 0.1.0-rc.6 的通用设置 API 只开放固定的内置命名空间,Web 卡片通过插件自己的类型化 Remote 读写该配置,因此无需修改 DSH 核心白名单。
启用机制
插件 bundle 在 Host 层挂载隔离的 Bash executor 和 @deepseek-ai/dsh-tool-bash。每个新 agent 创建时按实际 preset ID 应用策略:
- 已启用的预设:显示全局
bash,隐藏继承的pwsh。 - 未启用的预设:当全局
bash原本可见时将其隐藏。 - Minimal 已启用:在 agent 最近的工具层重新注册全局 Bash 定义,覆盖内置持久终端工具。
- Minimal 未启用:保持原有持久 Bash 工具不变。
Minimal 的特殊规避意味着启用独立执行器后,cd、shell 变量等状态不会在多次调用之间保持。若以后需要 Windows 持久会话,需要单独实现基于 Windows PTY 的终端后端,不能继续使用当前报错的 dsh-subprocess-local terminal inspection 路径。
在预设中手动挂载
全局/逐预设机制通常不需要修改 preset。若要让某个可移植预设显式携带执行器,可在 agent.cordis.yml 中加入:
- id: shell-bash
name: cordis:group
group: true
isolate:
shell: true
config:
- id: msys2-bash-executor
name: dsh-msys2-bash-executor/bash-executor
disabled: !!js process.platform !== 'win32'
- id: tool-bash
name: '@deepseek-ai/dsh-tool-bash'
必须隔离 shell,否则会与 Host PowerShell provider 重复注册 ctx.shell。
自动检测顺序
当 Bash 路径留空时,依次检查:
DSH_BASH_PATH。MSYS2_ROOT和MSYS_ROOT。C:\msys64\usr\bin\bash.exe和C:\msys64\ucrt64\bin\bash.exe。- Program Files 和 Local AppData 中的 Git Bash。
- Windows
PATH中的每个目录。 - 命令名
bash。
作用范围
本插件只调整 DSH Web profile 中 agent 的工具可见性,不会自动修改外部 Codex CLI 或 Claude Code 子进程 provider。后两者需要各自配置 shell 或环境,但也可以独立调用同一个 MSYS2/Git Bash 程序。
开发
npm.cmd run build
npm.cmd test
npm.cmd run check
npm.cmd run pack:dry
src/client.js 是浏览器端源码,scripts/build-client.mjs 会生成 DSH Web 使用的 lib/client.js。
排障
- 启动 DSH 时应优先使用 Windows 原生 Node;当前 DSH Windows 启动器与 MSYS2 构建的 Node 不兼容。
- Bash 进入错误的 MSYS2 子系统时,请设置
MSYSTEM并前置对应工具链目录。 - 设置页应填写 Windows 路径,因为最终由 Windows Node 启动可执行文件。
- 本执行器不会产生 Node
DEP0190警告,因为它不设置shell: true。
许可证
セキュリティとインストールエビデンス
このスコアは公開リポジトリメタデータと当サイトに登録されたインストールエビデンスのみに基づくもので、コードセキュリティ監査とは異なります。
公開プラグインカタログから取得し、公開 GitHub リポジトリにリンクしています。
リポジトリは MIT ライセンスを宣言しています。
過去180日以内にコードの更新があります。
再現可能な正確なインストールメタデータはまだ登録されていません。リポジトリの説明に従って手動で確認してください。
確認したパッケージメタデータにインストールライフサイクルスクリプトは宣言されていません。