
liceses/dsh-gitbash-preset
1060最近提交 2026年8月15日
dsh-gitbash-preset DSH 插件
该插件提供一个可在 Windows 上运行的极简模式预设变体。它用每次调用新 shell 的方式替代持久 bash 会话,并包含沙箱感知门控以确保不绕过安全边界。插件启动时自动安装预设,并自动探测 Git Bash 可执行路径。
如何安装 dsh-gitbash-preset DSH 插件
dsh plugin --profile web add @icelily/dsh-gitbash-preset复制不会执行命令。安装 dsh-gitbash-preset DSH 插件前请核对仓库和版本。
dsh-gitbash-preset DSH 插件数据来源
dsh-gitbash-preset DSH 插件快照日期:2026年8月16日
discovered
dsh-gitbash-preset DSH 插件能做什么
- 幂等安装:启动时把预设复制到用户预设根,已存在则跳过,仅 force 时覆盖
- 自动探测 Git Bash 路径:支持环境变量、常见安装目录、PATH 查找
- 沙箱感知门控:仅在 'danger-full-access' 策略下执行,否则给出明确升级指引
- 保留原极简模式的 persona 和 str_replace_editor 工具,无上下文压缩
dsh-gitbash-preset DSH 插件适合哪些场景
- 在 Windows 上使用 DSH 极简模式,绕过原始持久 bash 因 PTY 限制而失败的问题
- 无需安装 WSL 或 Cygwin,即可在 Windows 环境中执行 bash 命令
- 将 Git Bash 作为 DSH 工具调用的 shell,支持自动路径探测和可配置超时/输出限制
- 在 Windows 机器上为 DSH Web 界面集成极简模式预设
dsh-gitbash-preset DSH 插件适合谁
- Windows 上希望使用 DSH 极简模式的用户
- 需要在 DSH 中拥有 bash 执行环境但不想安装 WSL 或 Cygwin 的开发者
dsh-gitbash-preset DSH 插件的限制
- 沙箱为 workspace-write 或更窄时,Git Bash 无法启动(MSYS 受限令牌限制),需切换完全访问或单次升级
- 与原极简模式不同,bash 为每次调用新 shell,不保持 cd/export 状态
- 仅限 Windows 平台(Git Bash 是 Windows 专用工具)
dsh-gitbash-preset DSH 插件的仓库 README 摘录
以下文字摘自 dsh-gitbash-preset DSH 插件的上游仓库 liceses/dsh-gitbash-preset 的 README,版权归原作者,仅作引用。
DeepSeek Harness 插件:一键安装「极简模式 (Git Bash)」agent preset —— 把 DSH 自带极简模式中的 bash 调用映射到 Git for Windows 的 bash(MSYS),让 Windows 上的极简模式真正可用。 ## About DSH 自带的极简模式在 Windows 上无法使用,失败有两层原因: 1. **PTY 平台限制**:极简模式的持久 bash 依赖 PTY 后端,而 `@deepseek-ai/dsh-subprocess-local` 在 win32 上直接拒绝(`terminal inspection is unsupported on platform win32`),与 bash 是否存在无关; 2. **shell 缺失**:即便绕过 PTY,`@deepseek-ai/dsh-bash-local` 硬编码从 PATH 找 `bash`,Windows 上默认没有。 本插件交付一个可安装的预设变体:**同一套极简 persona + str_replace_editor 双工具表面**,但 bash 工具每次命令执行 `<git bash> -c <command>`,并通过沙箱感知门控保证不绕过安全边界。 ## 特性 - **幂等安装**:插件启动时把打包的预设复制到用户预设根(`${DSH_HOME:-~/.dsh}/.agent-presets/minimal-gitbash/`),已存在则跳过,`force: true` 才覆盖; - **自动探测 bash**:`GIT_BASH` 环境变量 → 常见安装目录(ProgramFiles / ProgramFiles(x86) / LOCALAPPDATA)→ PATH 中的 `bash.exe` → 兜底 `bash`,无需硬编码路径; - **沙箱感知门控**:MSYS 运行时无法在 Windows 受限令牌沙箱内启动(无法创建 signal pipe),因此命令仅在"完全访问"策略下执行——不绕过沙箱,受限时给出明确升级指引; - **极简不变**:固定 persona、`str_replace_editor`、无上下文压缩,与原极简模式一致。 ## 工作原理 | 环节 | 说明 | | --- | --- | | 插件行 | `cordis.patch.yml` 在 web profile 组合中插入 `dsh-gitbash-preset`,启动时安装预设文件 | | 预设组合 | `agent.cordis.yml` 中 `gitbash-shell` 组以 entry-local realm 提供 `shell` 服务,`tool-bash` 注册模型工具 | | 执行器 | `gitbas
阅读完整 README仓库许可: MIT
dsh-gitbash-preset DSH 插件常见问题
如何安装这个插件?
在终端中运行 `dsh plugin --profile web add @icelily/dsh-gitbash-preset`,重启 DSH 后预设会自动安装。你也可以手动将 `agent-presets/minimal-gitbash/` 目录复制到 `~/.dsh/.agent-presets/`,无需安装插件。
这个插件需要完全访问沙箱吗?
是的,Git Bash 执行仅在沙箱策略为 "danger-full-access"(或无沙箱)时才能工作。如果沙箱较窄(如 workspace-write),插件会优雅失败并给出升级指引。你可以将会话沙箱切换为完全访问,或使用单次升级流程(需审批)。
为什么每次 bash 调用都会启动一个新 shell?
Windows 上持久 bash 会话需要 PTY 支持,而标准 DSH 本地子进程后端不支持 PTY。为了绕过此限制,插件对每个命令都启动新 shell。这意味着当前目录、导出变量等状态不会在调用之间保持。
能否手动配置 Git Bash 路径?
可以,在预设配置(agent.cordis.yml)中设置 `shellPath` 选项,例如 `'C:\Program Files\Git\bin\bash.exe'`。插件也会通过环境变量、常见安装目录和 PATH 自动探测路径。
如何卸载这个插件?
运行 `dsh plugin --profile web remove @icelily/dsh-gitbash-preset` 并重启 DSH。复制到 `~/.dsh/.agent-presets/minimal-gitbash/` 的预设文件不会自动删除,如果需要可以手动删除。