@xiaoso/dsh-tool-plus0.1.15
Oh My Pi bash runtime ported as a deepseek-harness tool plugin: persistent shell session, output minimizer, managed background jobs, command interception
Built for omp
The author tagged this package oh-my-pi.
Reports 0
No reports yet.
Readme
简体中文 | English
DeepSeek Harness 基础工具增强:持久 bash、结构化 read、多模式 edit、原子 write、全文搜索、图像直读,一个插件全覆盖。基于 Oh My Pi 内核移植,安装后自动接管官方 bash / pwsh / 文件 / 搜索工具,另有可选的 ast_grep / ast_edit 结构化搜索与重写。
功能特性
- bash:持久 shell,
cd、export跨调用保持状态;冗长日志(git/npm/cargo…)自动压缩;超长输出只保留头尾,完整内容落盘可回读;长命令自动转后台;可选拦截cat、grep、find、sed -i,引导改用专用工具(默认关闭) - 安全删除:
rm默认把文件移入系统回收站而非永久删除,误删可恢复;需要真删时用command rm - read:按行区间精准读取(支持
:N-M、:raw、多区间);大代码文件默认返回结构摘要,细节按需展开;zip/tar 归档、SQLite、notebook、PDF 直接读;PNG / JPEG / WebP / GIF 图片直读,超大图自动缩放;可抓取网页内容(含网页内图片);SPA 站点(内容由 JS 动态渲染,如 excalidraw.com)自动改用本机浏览器渲染后抓取 - write:原子写入,返回修改 diff;支持补丁式写入,可直接写 zip/tar 归档成员与 SQLite 数据
- edit:replace 默认,另支持 patch / hashline / apply-patch 三种补丁格式;多段编辑、唯一性校验、空白差异模糊匹配
- grep / glob:全文搜索与文件名匹配;mtime 排序、上下文行、忽略规则可配置
- ast_grep / ast_edit(可选):基于语法树的结构化代码搜索与重写,可在设置中开启
- agent 预设:标准增强版 / PTC(Code Mode)两套配套模板
设置面板(Bash 工具页):

推荐环境与配置
- 完全权限模式:建议在
danger-full-access下使用本插件,可避免沙箱模式下文件写入被误拦。
安装
从 npm 安装(推荐)
Web 端
dsh plugin --profile web add --allow-build=@xiaoso/dsh-tool-plus --allow-build=koffi @xiaoso/dsh-tool-plus
--allow-build 放行安装脚本(本包和 koffi 各一次),需要 pnpm ≥ 10.4;pnpm 11 起不加会直接报 ERR_PNPM_IGNORED_BUILDS 装不上。用不了该参数(pnpm 版本过低)时,先任选一种放行方式,再重跑安装命令:
- 往
~/.dsh/profiles/web/pnpm-workspace.yaml追加三行:allowBuilds:、'@xiaoso/dsh-tool-plus': true、koffi: true - 或执行
cd ~/.dsh/profiles/web && pnpm approve-builds --all(需 pnpm ≥ 10.32)
桌面端
profile 由桌面应用独占,dsh plugin --profile desktop 会被拒;要装新版就进它自己的目录:
cd ~/.dsh/profiles/desktop
pnpm add --allow-build=@xiaoso/dsh-tool-plus --allow-build=koffi @xiaoso/dsh-tool-plus
本地开发
dsh plugin --profile web add link:<本仓库路径>
预设
| 预设 | 底座 | 说明 |
|---|---|---|
| Tool Plus 标准增强版 | 官方 standard | 官方标准模式全部能力 + 文件/Shell 工具集换成本插件 |
| Tool Plus PTC 增强版 | 官方 PTC(Code Mode) | 同上,但经 Code Mode 以 run_code 组合多步操作 |
两个预设随插件声明:安装插件(作为 profile bundle)时,插件的补丁层里就带着两条 @deepseek-ai/dsh-agent-preset 声明行,装上即可在预设列表里选。没有安装步骤,插件启动时也不写任何文件。
设置页「Tool Plus → 预设」是改它们的地方(dsh 0.1.7 起官方的预设页只读、也没有 agent_preset 工具,所以这里是唯一的图形入口):
- 最小更新:只把这几个仍挂着的官方工具行关掉,其他内容一个字节都不动
- 对齐模板:用所选模板整份替换这一行的插件列表
- 恢复随包:删掉你写在 profile 配置(
<profile>/cordis.patch.yml)里的覆盖,回落到随包声明 - 查看差异:先看差在哪几行,再决定动不动手
写入通过宿主自己的 ctx.configEditor 完成,因此自带 profile 锁、并发保护、原子写与失败回滚。
配置
开箱即用,无需配置。需要微调时常用项有:后台阈值(autoBackgroundMs)、超时(defaultTimeoutMs / maxTimeoutMs)、输出截断窗口、编辑默认模式(editMode,默认 replace)、结构化摘要开关(readSummarizeEnabled)。抓取相关:可切换网页转 Markdown 的后端(fetchReader,含浏览器 JS 渲染——SPA 页面),设置面板里可一键「探测浏览器」查看本机可用的 Chrome/Edge。
性能
标准模式/标准模式增强下,在 Linux 上跑 SWE-bench Multilingual(20 题 × 3 轮):
| 指标 | 官方工具面 | 本插件(命令拦截开) | 本插件(命令拦截关,默认) |
|---|---|---|---|
| 解题率 | 83.3% | 83.3% | 81.7%(低 1 题,正常波动) |
| 步数 / 题 | 24.4 | 29.7(+21.7%) | 25.3(+3.8%) |
| 总 token / 题 | 729,434 | 954,100(+30.8%) | 779,799(+6.9%) |
| 系统提示词 / 步(含工具定义) | 4,642 | 6,305(+35.8%) | 6,305(+35.8%) |
| 系统提示词累计 / 题(单步 × 步数) | 113,265 | 187,259(+65.3%) | 159,622(+40.9%) |
| 净 token / 题(除系统提示词) | 616,169 | 766,841(+24.5%) | 620,177(+0.7%) |
| 任务结束后平均上下文长度(token) | 42,817 | 48,645(+13.6%) | 44,781(+4.6%) |
read 调用次数 |
225 | 459 | 198 |
bash 每次调用耗时 |
3,140 ms | 2,391 ms | 2,045 ms |
bash 每次调用返回 token |
790 tok | 343 tok | 638 tok |
| 平均耗时 / 题(未计入 token 速率波动、网络速度带来的误差) | 123 s | 135 s | 151 s |
注:
- 平均耗时是端到端实测,未计入
token速率波动、网络速度带来的误差,绝对值只作横向参考。 - 本节性能只代表在该基准测试下的表现(该基准任务占用上下文较低,因此无法代表大任务情况)
- 由大模型计算统计核对,数据可能有疏漏,但不影响整体结论
结论:
- 解题率与官方持平(命令拦截关的那组低 1 题,属正常波动)
bash本身更省,省下的 token 基本能抵消工具定义变厚带来的系统提示词增量(功能更强,工具定义比官方预设更厚)bash更快,但带来的增益会被bash自身以及其他增强工具带来的副作用抹平- 在
linux上,综合性能和官方默认标准模式工具相当,但功能更丰富
因此本插件工具在 linux 上,无法承诺更省 token 或具有更强的性能;windows 不适合跑标准测试,只能从个人体感说比 powershell 更好用。
完整的四组数据与逐题矩阵见 docs/benchmark/sbml-compare-ops.md。
环境要求
- dsh CLI:需全局安装,
npm i -g @deepseek-ai/dsh - Node.js ≥ 22.19 或 ≥ 24
- Git Bash(推荐):Windows 上作为 bash 执行环境
- 适用于 DeepSeek Harness
dshv0.2.1-rc.1(pre-release,接口可能变动)
注意事项
- 不提供单独的
pwsh工具:shell 场景由功能更全的持久bash统一承担
安全 rm 删掉的文件进系统回收站,各平台的落点与可见性:
| Windows | macOS | Linux | |
|---|---|---|---|
| 落点 | 回收站 | 废纸篓 ~/.Trash |
$XDG_DATA_HOME/Trash;默认 ~/.local/share/Trash |
| 跨卷 / 外接盘 | 该卷回收站 | 该卷 .Trashes |
该挂载点 .Trash-<uid> |
| 系统回收站可见 | 可见 | 可见 | 同卷可见;跨卷要打开该位置 |
| 文件名 | 原名 | 原名 | UUID,靠 .trashinfo 还原 |
| 放回原处 | 支持 | 支持 | 视文件管理器 |
| 实现 | Shell API | 系统 API | 第三方 XDG 实现 |
| 已知限制 | 网络盘无回收站 | 需 10.12+ | 部分桌面环境看不到,需到落点自行还原 |
构建
pnpm install
pnpm build # tsc 声明 + tsdown 打包 + 资产复制
pnpm typecheck
pnpm test # 含真实 bash 用例,Windows 需 Git Bash,缺失自动 skip
License
MIT,第三方组件许可见 THIRD_PARTY_NOTICES.md。