dsh-workspace-only-plugin
by CsBpRd
DeepSeek Harness (dsh) 插件:Workspace Only 开关 —— 任何模式下越界文件访问都请求用户确认 (approval prompt in every mode)
安装
dsh plugin --profile web add github:CsBpRd/dsh-workspace-only-pluginGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
DeepSeek Harness (dsh) 插件:为 dsh 增加 "Workspace Only" 开关。
功能
- 开关开启后,任何模式(read-only / workspace-write / danger-full-access / auto)无差别对待:代理访问工作目录以外的文件,一律弹窗请求用户确认:
- 弹窗直接派发在
approval/request通道上,绕过审批策略闸门——即使会话是 Full access(审批 = never)也会弹出,不会静默拒绝; - 用户批准 → 放行这一次调用(按会话自身模式执行);用户拒绝 / 无应答渠道 → 拒绝;
- 越出工作区的
read/write/edit/read_image/glob/grep/bash/pwsh调用都会触发; - 内嵌路径(
node -e/python -c字符串里的绝对路径)也会被词法扫描捕获并触发弹窗; - auto 模式插件(
@nanmicoder/dsh-auto-mode)照常运行但被收编:其分类器仍裁决工作区内调用,越界调用先走本插件的用户确认。
- 弹窗直接派发在
- 权限预设
workspace-write显示名永久改为 "Write Only"(与开关状态无关)。 - 开关为全局设置(持久化到 settings.yaml),所有会话立即生效;设置页与输入栏各有一个开关。
安装
一行安装(推荐):
curl -fsSL https://raw.githubusercontent.com/CsBpRd/dsh-workspace-only-plugin/main/install.sh | bash
脚本自动:装进 profile 的 bundle 层栈(dsh plugin add,首次使用自动初始化 profile)→ 打两个必需的核心补丁 → 检测到运行中的 dsh web 则以原命令行重启(会话持久化,重启后恢复)。可调环境变量:DSH_PROFILE(默认 web)、DSH_HOME、DSH_NO_RESTART=1(跳过重启)。
手动安装:
- 在
~/.dsh/profiles/web/package.json的dependencies加:"dsh-workspace-only-plugin": "github:CsBpRd/dsh-workspace-only-plugin" - 在
dsh.profile.bundles末尾追加"dsh-workspace-only-plugin"。 cd ~/.dsh/profiles/web && pnpm install。- 重启 dsh web 服务。
与 auto 插件共存
本插件把 workspace-write 预设改名 "Write Only" 后,auto 插件的客户端按标签匹配权限菜单,需同步把
@nanmicoder/dsh-auto-mode 的 lib/client.js 中 REQUIRED_PERMISSION_LABELS 的
"Workspace Write" 改为 "Write Only"(auto 升级后需重打)。
核心补丁(升级 dsh 后需 node scripts/patch-core.mjs 重打)
@deepseek-ai/dsh-host-apiproxy的WEB_SETTINGS_NAMESPACES白名单加入"workspace-only"——该白名单决定 Web 客户端可读写的设置命名空间,插件自身无法注册暴露;- 上述 auto 插件标签补丁。
两处都幂等,脚本自动跳过已打过的文件。
安装(续)
cd /Volumes/CBR DATA/项目/dsh-workspace-only-plugin && node scripts/patch-core.mjs(打核心补丁)。
边界
- 收编是工具层闸门(词法路径扫描),非内核级隔离;扫描器无法静态看到的路径(完全动态计算)是残余面,与 auto-mode 插件同级哲学。
- 在 Write Only(workspace-write)会话,批准后的越界写仍受内核围栏拦截,此时按 dsh 既有 escalation 流程(
sandbox_permissions)再确认一次后放行——写操作始终需要用户明确同意。 - 技能加载、会话持久化等 dsh 内部机制不受影响。
原始 README: https://github.com/CsBpRd/dsh-workspace-only-plugin/blob/main/README.md ↗
同类插件
查看全部 →
k8e
k8e.sh — 开源 Agentic AI 沙箱矩阵

hol-guard
开源AI代理防病毒:运行时拦截风险工具、秘密访问、提示注入、恶意软件包、MCP服务器、插件和技能。

anolisa
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture):具备运行时、安全性、可观测性和 Tokenless 响应压缩能力的 Agentic OS,可降低 Token 使用量与成本。

mobius
首个自我演进的开源 Agent OS:连接你的团队、AI agent、设备与算力

deepseek-harness-desktop
DeepSeek Harness Tauri 桌面版 | Only 5mb installer, zero environment setup. Windows / macOS / Linux.

open-managed-agents
开源Claude管理代理API实现和自托管Claude标签式代理运行时。即插即用;在Cloudflare Workers/Durable Objects或Node.js上运行。Apache 2.0。