
zimzaza4/dsh-bash-win
60最近提交 2026年8月14日
dsh-bash-win DSH 插件
该插件允许 Windows 上的 DSH 使用 Git Bash 和 WSL2 bash,绕过禁用官方 bash 工具的受限令牌。它通过 ctx.subprocess 启动 bash.exe 或 wsl.exe,并提供沙箱(WSL 内 bwrap)和审批请求功能。支持前台执行(超时终止)和后台任务。
如何安装 dsh-bash-win DSH 插件
dsh plugin --profile web add @zimzaza4/dsh-bash-win复制不会执行命令。安装 dsh-bash-win DSH 插件前请核对仓库和版本。
dsh-bash-win DSH 插件数据来源
dsh-bash-win DSH 插件快照日期:2026年8月16日
discovered
dsh-bash-win DSH 插件能做什么
- 提供两个 bash 工具:`git_bash`(Git Bash/MSYS2)和 `wsl_bash`(WSL2/Linux),并自动探测安装路径。
- WSL2 支持沙箱模式(`sandbox: true`),使用 bwrap 限制文件访问:系统目录只读,workspace 可写,/mnt/c 其余只读。
- 审批机制:`require_approval` 在执行前弹窗;升权请求(`sandbox_permissions` + `justification`)也需用户批准。
- 前台执行支持 `timeoutMs` 超时终止整个进程树;后台任务通过 `run_in_background: true` 返回 job ID,配合 `job_output`/`job_kill` 管理。
- 输出收集上限 256 KiB,超限截断并落 spill 文件。
- Web 终端卡片:终端图标、可展开输出、退出码状态。
dsh-bash-win DSH 插件适合哪些场景
- 在 Windows 上通过 Git Bash 运行 MSYS2 命令(如 grep、sed、git),集成到 DSH 对话中。
- 在 WSL2 环境中执行 Linux 命令(apt、gcc、python),从 DSH 直接调用。
- 对敏感或不可信命令使用 WSL2 沙箱模式,通过 bwrap 限制文件系统访问。
- 设置审批流程,对高风险操作需要用户确认后再执行。
- 运行长时间的后台任务(如编译、数据处理),稍后获取结果。
dsh-bash-win DSH 插件适合谁
- Windows 上的 DeepSeek Harness 用户,需要 bash 能力但默认只有 PowerShell。
- 开发者需要在 DSH 内使用 Linux 环境(WSL2)进行工具链或测试。
- 对安全敏感的用户,希望使用沙箱执行和审批门控功能。
dsh-bash-win DSH 插件的限制
- Git Bash(`git_bash`)无文件沙箱;`sandbox: true` 会因 Windows 受限令牌限制而失败(Cygwin 无法启动)。
- WSL2(`wsl_bash`)首次调用有数秒冷启动延迟,需用 `timeoutMs` 控制等待。
- 每次调用都是全新进程,状态不跨调用保留。
- WSL2 沙箱模式需要在发行版中安装 `bubblewrap`(如 `apt install bubblewrap`)。
- 热模块替换(HMR)不可靠,修改代码后必须重启 `dsh web` 才能生效。
dsh-bash-win DSH 插件的仓库 README 摘录
以下文字摘自 dsh-bash-win DSH 插件的上游仓库 zimzaza4/dsh-bash-win 的 README,版权归原作者,仅作引用。
在 Windows 上为 DeepSeek Harness(DSH)提供 **Git Bash** 与 **WSL2** 两个 bash 工具的 Cordis 插件。 ## 这个项目解决什么 - DSH 在 Windows 上**禁用了官方 bash 工具**(只有 pwsh) 本插件通过 `ctx.subprocess` 直接 spawn `bash.exe` / `wsl.exe`,绕开受限令牌层, 把 Git Bash 或者 WSL2 带进 DSH,并**自建有效沙箱**(WSL 内 bwrap)与**审批请求**。 ## 安全模型 | 维度 | 机制 | 说明 | | --- | --- | --- | | **默认执行** | 无沙箱,全权限 | `git_bash` / `wsl_bash` 默认直接跑,可读写任意路径(绕开沙箱的代价) | | **沙箱** | WSL 内 bwrap(`sandbox: true`) | 系统目录只读、workspace 可写、`/mnt/c` 其余只读;越界写入被拒并报 `[sandbox: file access denied under workspace-write mode]` | | **审批** | `ctx.approval` | `require_approval: true` 执行前弹窗;升权请求(`sandbox_permissions` + `justification`)弹窗;`ask` 策略弹窗、`never` 自动拒绝 | 关键概念: - **操作路径本身不触发审批**——沙箱对越界的处理是"拒绝"(报错,不弹窗); - **审批只出现在两处**:显式批准模式(`require_approval`)和越界后的升权请求; - **升权阶梯**:`workspace-write`(bwrap 受限)→ `danger-full-access`(去掉 bwrap), 走官方 `approveEscalation` 流程,必须严格加宽且经用户批准。 ## 工具 | 工具 | 后端 | UI 标题 | 能力 | | --- | --- | --- | --- | | `git_bash` | 本地 Git Bash(MSYS2) | Git Bash | 批准模式(`require_approval`)、官方沙箱接入(`sandbox`,Windows 受限模式报 Cygwin 限制)、后台任务 | | `wsl_bash` | WSL2(Linux) | WSL Bash | **bwrap 真沙箱**(`sandbox: true`)、升权审批(`sandbox_permissions` + `justification`)、后台任务 | 共性能力: - 前
阅读完整 README仓库许可: MIT
dsh-bash-win DSH 插件常见问题
如何安装 dsh-bash-win?
在终端运行 `dsh plugin --profile web add @zimzaza4/dsh-bash-win`。安装完成后,重启 `dsh web` 使插件生效。新会话中将出现 `git_bash` 和 `wsl_bash` 两个工具。
Git Bash 能使用沙箱模式吗?
Git Bash 无法在 Windows 上使用沙箱模式,因为受限令牌限制导致 `sandbox: true` 会失败。如需沙箱,请使用 `wsl_bash` 并设置 `sandbox: true`,同时确保 WSL 发行版中已安装 `bubblewrap`。
git_bash 和 wsl_bash 有什么区别?
`git_bash` 运行本地的 Git Bash(MSYS2),提供完整的 MSYS2 语义但无文件沙箱。`wsl_bash` 在 WSL2 Linux 环境中运行,支持通过 bwrap 实现真沙箱,可执行 Linux 命令(apt、gcc 等)。WSL2 首次调用有冷启动延迟。
如何自定义 Git Bash 的路径?
有三种方式:1)插件配置:在 `cordis.patch.yml` 中设置 `bashPath`;2)环境变量 `DSH_BASHX_BASH_PATH`;3)自动探测标准安装位置。优先级为:配置 > 环境变量 > 自动探测。
安装后为什么看不到 bash 工具?
最常见的原因是安装后没有重启 `dsh web`。请先运行 `dsh plugin --profile web add @zimzaza4/dsh-bash-win`,然后重启 DSH 服务器。你可以用 `dsh --profile web --dump-config` 检查插件层是否已挂载。