dsh-gitbash-preset README

The project's README from github.com/liceses/dsh-gitbash-preset. As one markdown file: README.md.

dsh-gitbash-preset

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>,并通过沙箱感知门控保证不绕过安全边界。

特性

工作原理

环节 说明
插件行 cordis.patch.yml 在 web profile 组合中插入 dsh-gitbash-preset,启动时安装预设文件
预设组合 agent.cordis.yml 中 gitbash-shell 组以 entry-local realm 提供 shell 服务,tool-bash 注册模型工具
执行器 gitbash-executor.mjs 通过 host 的 subprocess 服务执行 bash -c,处理超时、后台、输出截断与错误诊断
沙箱门控 run/start 校验策略:仅 danger-full-access(或部署无沙箱)放行,否则抛出带指引的错误

安装

dsh plugin --profile web add @icelily/dsh-gitbash-preset

或手动合并 cordis.patch.yml 到 profile patch 层。重启 DSH 后生效;重启后插件会自动安装预设(已存在则 no-op,不会覆盖你已有的版本)。

也可以不装插件,直接把 agent-presets/minimal-gitbash/ 目录复制到 ~/.dsh/.agent-presets/。

使用

  1. Web 界面新建会话,选择 极简模式 (Git Bash);
  2. 二选一启用 bash:
    • 把会话沙箱切到完全访问,之后所有 bash 调用直接走 git bash;
    • 或保持 workspace-write,让模型在第一次调用失败后按提示用 sandbox_permissions: "danger-full-access" + justification 单次升级(走正常审批流程)。

配置

预设配置(agent-presets/minimal-gitbash/agent.cordis.yml 中 gitbash-executor):

字段 默认 说明
shellPath 自动探测 显式指定时优先(如 'C:\\Program Files\\Git\\bin\\bash.exe')
timeoutMs 120000 单次命令默认超时(上限 maxTimeoutMs)
maxTimeoutMs 600000 超时上限
maxOutputBytes 64000 单流保留字节数(溢出写入 spill 文件)
graceMs 3000 终止进程的 SIGTERM→SIGKILL 宽限

插件配置(cordis.patch.yml 插入行):

字段 默认 说明
force false 预设已存在时是否用包内文件覆盖(保留用户额外文件)

开发

npm run check   # 三个文件语法检查(插件、执行器、测试)
npm run test    # 单元测试:路径转换 / 探测优先级 / 配置校验,10 个用例

限制

License

MIT

dsh-gitbash-preset (liceses/dsh-gitbash-preset)

Searching Database…

这是什么?一个 DeepSeek Harness(DSH)插件,安装一个备用的 'Minimal Mode (Git Bash)' 智能体预设,把 DSH 内置极简模式的 bash 工具调用重映射到 Git for Windows 的 bash(MSYS),让极简模式在 Windows 上真正可用。
这个插件怎么安装?把插件的 cordis.patch.yml 合并进你的 DSH 配置补丁层并重启 DSH;它会自动把内置预设安装到 ~/.dsh/.agent-presets/minimal-gitbash/(除非那里已经有一个)。你也可以完全跳过插件,自己把 agent-presets/minimal-gitbash/ 文件夹复制到那里。
需要安装 Git for Windows 吗?需要——插件需要一个真实的 bash.exe 作为映射目标,它会通过 GITBASH 环境变量、常见的 Git 安装目录(ProgramFiles、ProgramFiles(x86)、LOCALAPPDATA)或 PATH 自动检测。
依赖它之前有什么大坑?Git Bash 的 MSYS 运行时无法在 Windows 的受限令牌沙箱里启动,所以 bash 只能在 DSH 的 'danger-full-access' 策略(或一次性提权)下运行;而且与原来的持久 PTY 会话不同,这里每次 bash 调用都会启动一个全新的 shell,所以 cd 和 export 不会在命令之间保留。
它在 macOS 或 Linux 上也能用吗?不能,这是一个仅限 Windows 的修复:macOS 和 Linux 本来就有可供 DSH 极简模式使用的 bash,所以这个预设专门针对 Windows/Git Bash 的空缺。
DSH 内置的极简模式为什么在 Windows 上直接用不了?它依赖 PTY 后端来维持持久的 bash 会话,而 DSH 的子进程层在 win32 上直接拒绝 PTY;就算绕过这一点,它还硬编码了在 PATH 里找 'bash',而 Windows 默认没有。
如果我的会话沙箱不是完全访问权限,会怎样?bash 工具会在第一次调用时失败,并给出指引:要么把会话切换成完全访问,要么按照 DSH 的正常审批流程,附带理由申请一次性的沙箱内提权。
能指定具体的 Git Bash 安装位置,而不是自动检测吗?可以,在预设的 gitbash-executor 配置里设置 shellPath 字段(例如 'C:\Program Files\Git\bin\bash.exe')即可跳过自动检测。
重新安装插件会覆盖我对预设的自定义调整吗?不会,默认情况下,如果预设已存在,安装器会跳过复制;只有设置 force: true 才会用打包的文件覆盖。
Creator
liceses
Size
0.4 MB
Stars
135
Updated
CommitOct 07
Age
2mo
Commits · 90 Days