GoshawkGGGG/dsh-safe-tool ↗★ 0
dsh-safe-tool
AI-powered command approval plugin for DeepSeek Harness — intercepts tool calls and routes them through a read-only review subagent
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:GoshawkGGGG/dsh-safe-tool说明文档
阅读完整 README ↗配置
在你的 profile cordis.patch.yml 中添加:
- insert:
- id: dsh-safe-tool
name: 'dsh-safe-tool'
config:
enabled: true # 总开关(默认 true)
timeoutMs: 30000 # 单次审核超时(ms)(默认 30000)
maxTokens: 2048 # 审核子代理 token 上限(默认 2048)
filterMode: 'deny-list' # 'deny-list' 或 'allow-list'(默认 deny-list)
tools: # 需要审批的工具列表
- 'bash'
- 'write'
autoAllowPatterns: [] # 正则白名单,匹配则直接放行(默认空)
deleteReviewerSessions: true # 审批后删除子代理会话记录(默认 true)
reviewerPreset: 'minimal' # 审批子代理继承的专属预设(默认 minimal)
配置
设置命名空间
插件内部使用 dsh-safe-tool 作为 settings 命名空间。
Web UI 中显示为卡片标题 "AI 工具执行审批":
Settings → Plugins → "AI 工具执行审批"
配置项说明
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enabled | boolean | true | 总开关,关闭后插件不拦截任何工具调用 |
provider | string | undefined | 审核子代理使用的 provider ID,默认继承父代理 |
model | string | undefined | 审核子代理使用的 model ID,默认继承父代理 |
maxTokens | number | 2048 | 审核子代理单次请求的 token 上限(包含 thinking tokens) |
timeoutMs | number | 30000 | 单次 AI 审核超时时间(毫秒) |
humanTimeoutMs | number | 30000 | AI 回退人工审批的超时时间(毫秒) |
filterMode | 'deny-list' | 'allow-list' | 'deny-list' | 拦截模式:deny-list=拦截列表中工具;allow-list=仅放行列表中工具 |
tools | string[] | ['bash', 'write'] | 工具名称列表,根据 filterMode 决定拦截/放行范围 |
autoAllowPatterns | string[] | [] | 正则表达式列表,匹配工具参数则直接放行,跳过 AI 审批 |
deleteReviewerSessions | boolean | true | 审批结束后从磁盘删除审批子代理会话记录,不留审批痕迹 |
reviewerPreset | string | 'minimal' | 审批子代理继承的专属 agent 预设 id(默认极简模式);预设不存在时回退继承主 agent |
拦截模式说明
deny-list(默认):仅拦截 tools 列表中列出的工具,其他工具直接放行。
filterMode: 'deny-list'
tools:
- 'bash' # 拦截 bash 工具
- 'write' # 拦截 write 工具
# 其他工具(read, glob 等)直接放行
allow-list:仅放行 tools 列表中列出的工具,其他工具全部拦截。
filterMode: 'allow-list'
tools:
- 'bash' # 只放行 bash,其他工具全部拦截
配置项说明
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enabled | boolean | true | 总开关,关闭后插件不拦截任何工具调用 |
provider | string | undefined | 审核子代理使用的 provider ID,默认继承父代理 |
model | string | undefined | 审核子代理使用的 model ID,默认继承父代理 |
maxTokens | number | 2048 | 审核子代理单次请求的 token 上限(包含 thinking tokens) |
timeoutMs | number | 30000 | 单次 AI 审核超时时间(毫秒) |
humanTimeoutMs | number | 30000 | AI 回退人工审批的超时时间(毫秒) |
filterMode | 'deny-list' | 'allow-list' | 'deny-list' | 拦截模式:deny-list=拦截列表中工具;allow-list=仅放行列表中工具 |
tools | string[] | ['bash', 'write'] | 工具名称列表,根据 filterMode 决定拦截/放行范围 |
autoAllowPatterns | string[] | [] | 正则表达式列表,匹配工具参数则直接放行,跳过 AI 审批 |
deleteReviewerSessions | boolean | true | 审批结束后从磁盘删除审批子代理会话记录,不留审批痕迹 |
reviewerPreset | string | 'minimal' | 审批子代理继承的专属 agent 预设 id(默认极简模式);预设不存在时回退继承主 agent |