前言¶
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。