配置键 | 类型 | 默认值 | 归属组件 |
| 非负整数 |
| 任意(迁移标记) |
| 字符串路径 | — | file / ptc |
| 字符串路径 | — | shell |
| 布尔 |
| shell |
| 布尔 |
| 全部 |
| 字符串 | 空 | 全部 |
| 布尔 |
| 全部 |
|
|
| shell |
| 字符串数组 |
| shell |
| 布尔 |
| shell |
| 布尔 |
| file / ptc |
典型错法是把denyCredentialReads写到dsh-ops/shell行——它属于 file / ptc,会被拒绝;反过来把bashPath写到 file 行也会被点名。类型同样受校验:shellPolicy只接受advise与deny-host-shell两个值。
逐键要点
publishBashTool(shell,默认true):决定是否发布ops_bash。受限模式走宿主 sandbox,完全权限下用宿主 subprocess;不想给 shell 就设false。
shellPolicy(shell,默认advise):设成deny-host-shell会拒绝deniedHostTools里的宿主 shell(默认[pwsh, bash, pwsh_persistent])。副作用是也会禁用第三层 pwsh,谨慎开启;它与allowSystemShellFallback相互独立。
allowSystemShellFallback(shell,默认false):为false时,随包或已 provision 的 bash 缺失也不探测系统 PATH、不扫常见安装目录;设true才用未固定摘要的系统 bash。它在 POSIX 主机上不起作用,因为 shell 组件本就解析宿主 bash,没有 pin 过的载荷可「回退」。
promptPolicy/extraGuidance/required(全部):提示词注册是独立运行时段,不写 AGENTS.md——Shell 关就撤销 bash/pwsh 路由,文件关就撤销原生文件说明。
bashPath(shell)与binaryPath(file / ptc):可选显式路径,不可用时报错、不会悄悄换执行器。Windows 上bashPath只在danger-full-access下生效;受限模式下ops_bash只运行校验过 IPC 兼容代理的固定摘要 MSYS,其它任何msys-2.0.dll(含自带 Git for Windows)都按设计返回EXECUTOR_UNAVAILABLE。用dsh-ops ladder --config <文件>看restricted: yes/no。
三个已弃用但仍被接受的键
serverName、enableShellTools、toolCallTimeoutMs属于已移除的 FastCtx 后台组件。它们仍被接受、仍做类型校验(早期 bundle 会把enableShellTools: false与toolCallTimeoutMs: 300000写进每个 file 行),但已经不起作用;配置更新 2 会在下次启动时把它们从已保存的行里删除。
configUpdateVersion在标记什么
非负整数,默认0,任意组件行都可以有,记录一次性配置迁移是否已完成。当前值为2:更新 1 撤销旧的隐式系统 bash 选择,更新 2 删除上面三个弃用键。lib/config-updates.js集中维护迁移,0.2.5 首次启动时逐行自检:没有此键、或值为0的行被判「未完成迁移」,进而把旧allowSystemShellFallback: true改成false,再写回标记。不要删除迁移标记,删了会重新自检;迁移完成并重启或热加载后,你主动改回true会被保留。
dsh-ops/tui只接受三个键
这一行是独立配置的只读侧栏,只接受maxSessions、maxActive、recentLimit,上表其它键一概不适用于它。在 dsh-TUI 中启用该行并重启即可添加侧栏,它不抢焦点、不执行额外工具调用;没有tuiPanels的宿主只会让这一行等待。聚焦后可用f筛选、n/p本地翻页、a确认跨会话提醒。
可复制的 YAML 示例
dsh-ops/shell行:
config: promptPolicy: true publishBashTool: true shellPolicy: advise deniedHostTools: [pwsh, bash, pwsh_persistent] allowSystemShellFallback: false
dsh-ops/file行:
config: promptPolicy: true required: false denyCredentialReads: true
dsh-ops/tui行(数值为示例,按需调整):
config: maxSessions: 8 maxActive: 3 recentLimit: 200
三段都省略了bashPath、binaryPath这类可选路径键——不写就代表「自动解析」。另注意:换包之后必须重启应用,只改配置不需要重启,因为宿主只在启动时 import 一次插件模块。
安全档位如实说明
配置再清楚,也要先看清安全姿态。本站对该插件的扫描档位为 🔵「含敏感能力」,共 17 处证据(spawnSync执行外部命令、curl、发起外部网络请求、读写本地文件),尚无人工评估,站点也未做风险分级(未覆盖不等同于无风险)。所以publishBashTool、shellPolicy、denyCredentialReads不只是「开关」,而是你自行承担的风险边界。建议先只开dsh-ops/file观察。
总结
dsh-ops 的配置问题几乎都能归结为「键写错了组件行」,记住四行的所有权与默认值、别删configUpdateVersion、dsh-ops/tui只认三个键,就足够了;想对照同类插件的中文清单与安装形态见 完整插件清单与汉化避坑指南。
适合与不适合
适合:正在排查「未知配置键」报错、需要一张准确归属表的人;想按最小权限原则裁剪工具、只保留dsh-ops/file或单独关掉 shell 的人;从旧版本升级、看到configUpdateVersion或三个弃用键却不知道能不能删的维护者。
不适合:只想一键装完就用、不打算碰config的用户——默认值已经能跑,读这篇没有功能增量;macOS arm64 用户——shell 工具仅 Windows,配置键解决不了自行编译原生 worker 与指定bashPath;以及必须在受限模式下使用自带 Git Bash 的场景——无论怎么填bashPath都会被按设计拒绝。
标签:dsh-ops、DeepSeek Harness、配置参考
本文由 DeepSeek Harness Hub 自动整理,数据来源于插件详情页。