前言¶
DSH 的理念是「一切皆插件」。社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。对使用 DSH 的开发者来说,智能体调用 write、edit、str_replace_editor 或 bash 时,通常需要确认当前变更内容,并决定是否放行。
dsh-edit-approval 提供这类审批:在 write / edit / str_replace_editor 调用写入文件前,展示红/绿行级 diff;在 bash 命令运行前,也可发起审批。Bash 审批默认关闭。
这是什么¶
dsh-edit-approval 是由 SiriLee 维护的 DeepSeek Harness 插件,许可证为 MIT。它面向两类工具调用:
write、edit、str_replace_editor:写入文件前审批,面板显示红色删除行和绿色新增行的行级 diff。bash:命令运行前审批,默认关闭。
审批结果支持 allowed-once 和 rejected。Settings → General 提供 Edit approval 与 Bash approval 主开关。
核心功能¶
编辑审批¶
编辑审批默认开启。当调用 write、edit 或 str_replace_editor 时,插件在写入文件前发起审批。审批面板显示红色删除行和绿色新增行的行级 diff。
用户可以选择 allowed-once,让当前调用继续;也可以选择 rejected,拒绝该调用。
Bash 审批¶
Bash 审批默认关闭。开启后,bash 命令运行前会发起审批。可以在 Settings → General 打开 Bash approval,也可以使用命令切换。
bash-approval settings namespace 的 allow 中可配置命令前缀白名单。白名单目前尚无 UI。
Bash 审批不读写文件系统,沙箱升级调用不会重复询问。
never 策略¶
当会话审批策略为 never 时,插件通过 next() 委托,保持 full-access 会话可用。插件不扩展访问权限,也不改变沙箱模式。
安装与启用¶
先安装插件:
dsh plugin --profile web add dsh-edit-approval
安装后重启 dsh web(--profile web)。
运行环境需要 Node ^22.19.0 || >=24.0.0。
贡献者可以使用固定 commit 安装:
dsh plugin --profile web add github:SiriLee/dsh-edit-approval#<sha>
如果从 git 安装首次运行失败,需要在 profile 的 pnpm-workspace.yaml 中添加 allowBuilds 键。npm pack 会运行 prepare,生成的 tarball 会携带预构建 lib/ 和 LICENSE。
典型用法¶
1、编辑审批默认开启。任意 write、edit、str_replace_editor 调用前会显示红/绿行级 diff;选择 allowed-once 或 rejected。
2、需要审批 bash 命令时,在 Settings → General 打开 Bash approval,或执行:
/approval-bash on
3、查看或关闭审批开关:
/approval-edit status
/approval-bash status
/approval-edit off
/approval-bash off
4、为 bash 审批配置白名单:在 bash-approval settings namespace 的 allow 中配置始终放行的命令前缀。
5、在 never 审批策略下,插件委托给沙箱,不扩展访问权限或改变沙箱模式。
适用场景与注意¶
适合希望在 DSH web profile 中逐次确认文件写入和命令执行的开发者。尤其适合需要查看编辑 diff、保留 full-access 会话可用,或对 bash 命令做前缀白名单的场景。
使用前注意:
- 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
Bash approval默认关闭;如不启用,命令调用不会进入该审批。allow白名单目前尚无 UI,需要通过 settings namespace 配置。- Node 版本要求为
^22.19.0 || >=24.0.0。 - git 安装首次运行可能需要
pnpm-workspace.yaml中的allowBuilds。
获取¶
dsh-edit-approval 的价值是把编辑和命令的放行决策显式化:编辑有红/绿 diff,命令有独立开关和白名单,策略下委托沙箱。
GitHub:https://github.com/SiriLee/dsh-edit-approval
社区目录可按 dsh-edit-approval 搜索;本文不附未确认的目录页 URL。