dsh-bash-native:为 DeepSeek Harness 提供 Windows 原生 bash 执行能力
spookywaste/dsh-bash-native
为 DeepSeek Harness 提供 Windows 原生 POSIX bash 执行器,基于 Rust brush 引擎,无需 WSL 或 MSYS 兼容层,支持三档权限策略与后台作业。
dsh-bash-native 是 DeepSeek Harness 的 Windows 原生 bash 执行插件,用 Rust 实现的 brush 引擎让 DSH 的 shell 拿到一个真正的 bash,不依赖 WSL 或 MSYS 兼容层。它解决的是 Windows 上跑 POSIX 脚本要么走兼容层、要么跨 VM 边界、每条命令都要付出额外进程或往返代价的问题。插件把引擎与工具链随包分发并在解析时校验,服从 DSH 的三档文件策略,后台作业经作业系统汇报,还给模型一节可见的环境契约。由 SpookyWaste 维护,采用 MIT 协议,仅支持 Windows x64。
如何安装
dsh plugin --profile web add dsh-bash-native- 分类
- 工具与能力
- 平台
- DSH Plugin
- 作者
- spookywaste
- 分发方式
- 插件
dsh-bash-native 核心特性
dsh-bash-native 仓库简介
它是做什么的?
spookywaste/dsh-bash-native 是 DeepSeek Harness(DSH)的 Windows 原生 bash 执行插件,用 Rust 实现的 brush 引擎给 DSH 的 shell 提供一个真正的 bash,不依赖 WSL 或 MSYS 兼容层。它解决的是 Windows 上跑 POSIX 脚本要么走兼容层、要么跨 VM 边界、每条命令都要付出额外进程或往返代价的问题。插件把引擎与工具链随包分发并在解析时校验,服从 DSH 的三档文件策略,后台作业经作业系统汇报,并给模型一节可见的环境契约。由 SpookyWaste 维护,采用 MIT 协议,仅支持 Windows x64。
核心功能
- 原生 bash 引擎:命令交给随包分发的 brush 引擎执行,
echo、cat、ls、cp、rm、sort等由引擎内建解析为 builtin,空PATH也成立,没有兼容层或 VM 边界。 - 三档权限策略:服从 DSH 的
read-only/workspace-write/danger-full-access文件策略,受限档位把引擎 argv 交给沙箱,不限档位直接 spawn 并如实报告档位。 - 后台作业与输出溢出:后台作业经作业系统汇报,超出内存上限的输出落到 spill 文件并把路径随结果返回。
- 路径与脚本兼容补丁:
/tmp成为 shell 解析路径时的别名,盘符挂载点让/c/Windows/System32等于C:\Windows\System32,Windows 写出的 CRLF 脚本按文本读,bash script.sh、bash -c、sh -c与调用 bash 的 Makefile/npm 钩子都能用。 - 产物校验与盖章:每次解析按 lock 里的 sha256 校验引擎产物,并把 size 与 mtime 记入本地 verified 目录,未变化就跳过重复哈希。
- 不干扰其他 preset:Web 面用自带 agent preset 挂载,agent 面用 overlay 显式启用,不替换宿主层的 shell,其他 preset 的 pwsh 工具不受影响。
怎么使用这个插件?
在 DSH 中启用后,把 Native Bash (Windows) 设为默认 preset,或在会话里切过去,之后模型发起的 shell 命令就由原生 brush 引擎执行。运行环境要求 Windows x64、Node 24 与相应版本的 DSH;脚本可以按 bash script.sh、bash -c、sh -c 的方式调用,但按路径直接执行脚本(如 ./s.sh)暂不成立。需要调整行为时,可在配置里把产物校验改为每次哈希,或对单条命令设置逃生开关关闭路径改写。
报错怎么排查?
- 后台作业没有 PID、
$!为空、jobs把已结束作业报成 Running:这是 shell 未为该作业登记进程(内建、函数、bundled 工具)所致,判活要用wait而不是kill -0。 - 命令替换里的
jobs/jobs -p看到空表,或kill %1 %2报错:kill一次只接受一个目标,且 Windows 不送信号,任何信号都以 128+n 结束(TERM 143、KILL 137)。 awk '/x/{print}'拿到被改写的路径、sed '/x/d'报 invalid command code:盘符改写分不清路径与程序的脚本操作数,可改写为awk '$0 ~ /x/',或对该条命令关闭路径改写。- 引擎本身仍处于 preview 阶段,遇到疑似缺陷时按官方说明修复或反馈。
本页是基于该插件官方 README 独立重写的导读——权威文档和最新变更请以源头为准:spookywaste/dsh-bash-native。插件是安装时就在你机器上运行的第三方代码;收录不代表背书——安装前请自行审阅源码。
