dsh-isolation-gate
Access gate for AI coding harnesses (DSH plugin + Claude Code hook): per-directory deny/read/full, roster groups, audit log, model-facing tools with owner-approved widening.
一句话定位
Access gate for AI coding harnesses (DSH plugin + Claude Code hook): per-directory deny/read/full, roster groups, audit log, model-facing tools with owner-approved widening.
安装方式
在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。
$ dsh plugin --profile web add dsh-isolation-gate@1.13.10
兼容的 DSH 版本
未声明
作者与热度
huanlin-labs · ★ 9 · 更新于 2026-11-05
关于这个插件
门禁 · dsh-isolation-gate
给 DeepSeek Harness(DSH)的隔离区授权台:默认禁、名单制、点一下生效、可审计、agent 自己能查。
> ### ⚠️ 定位与免责声明(先看这段)
>
> 这个插件的主战场是 DeepSeek Harness(DSH)+ Windows —— 那是作者每天在用、也是唯一做过完整真机验证的组合。DSH 里的宿主工具执行门、面板、CLI、审计,都是在这个组合下逐项验过的。
>
> 别的 harness(Claude Code、ZCode、Gemini CLI、opencode、pi、MCP)和 别的操作系统(Linux、macOS)属于实验性支持:
> - 有代码、有单测、CI 也在三平台上跑,但这不等于「在你那儿一定好用」;
> - 可能不够完善,也可能因为对方版本一升级就失效;
> - 各家的拦截强度也不一样 —— 有的能硬拦(前置钩子),有的只能"提示"(MCP),细节见下方支持矩阵。
>
> 欢迎提意见、报 bug、提 PR: 。
> 没验证到的部分我不会写成「支持」;你遇到问题也不是你用错了,是本项目还没覆盖到。
[安装](#安装) · [功能](#功能) · [它拦在哪一层](#它拦在哪一层) · [CLI](#命令行--agent-自查) · [English](./README.en.md) · [更新日志](./CHANGELOG.md)
dsh plugin --profile desktop add dsh-isolation-gate
> ⭐ 如果它帮你少踩一次坑,点个 Star 能让更多人找到它 —— 这是这个项目唯一的「传播预算」。
> [](https://github.com/huanlin-labs/dsh-isolation-gate)
---
这是什么(以及不是什么)
它不是又一个 allow/deny 规则引擎,也不是沙箱本身。
- 别人按「工具 / 命令 / 参数」立规则(
dsh-permission-rules、dsh-permissions这类:allow / deny / ask + glob / 正则); - 我们按「目录」立对象:这台机器上哪些目录属于禁区、现在给什么级别、谁改的、agent 自己怎么查。
规则引擎回答的是「这次调用准不准」,门禁回答的是「这个目录开不开」。两者可以叠着用,不冲突。
所以它的核心是管理面:
| 能力 | 说明 |
|---|---|
| 三级 | deny 禁(默认) / read 只读 / full 可读写删 |
| 两类受管对象 | 名字(D 根一级目录名,如 Zcode)或 任意绝对路径(如 \Zcode、E:\资料\合作档案\某项目) |
| 默认禁 + 名单制 | 只有名单里的对象受管;未列出的不归它管;新增对象一律先按「禁」处理 |
| 一屏开关 | 每个对象一个分段控件(禁 / 只读 / 可读写删),点了即落盘,重启后保持 |
| 分组 | 「harness 隔离」「跨家合作」这类命名组;组头一键切三档;组只存在状态文件里,名单仍是"一行一对象" |
| 选择文件夹 | 有原生目录选择器就用它;没有就退回「未入名单的一层目录一键加入 + 文本框」 |
| 两个拦截点 | ① 受管辖通道 bin/gate.mjs;② 宿主工具执行门 ctx.tools.guard()(2026-10-21 新增) |
| 审计 | ~/.dsh/dsh-isolation-gate/access-log.jsonl:只记时间/对象/级别/操作/允许与否/理由,不记文件内容 |
| agent 自查 | node bin/gate.mjs status —— 模型/脚本可以直接读策略,不用猜 |
---
它拦在哪一层
模型发起工具调用
│
├─ tools/pre-execute ← ★ 工具执行门(本插件 ctx.tools.guard)
│ file tools 参数 / shell 命令文本 → 按三级判定 → 拒绝文案回到模型
│
├─ 工具真正执行(read / write / edit / bash …)
│
└─ bin/gate.mjs ← ★ 受管辖通道(agent 显式走它读写受管对象)
判定不通过 ⇒ 一个字节都不碰
两条路都调用同一个 checkAccess,所以面板、CLI、工具门不会说两套话。
---
让模型自己管门禁(v1.1+)
插件注册 7 个模型可直接调用的工具,DSH 不必等人点面板:
| 工具 | 作用 | 权限 |
| --- | --- | --- |
| gate_status | 看默认级别、受管对象、待批数、授权窗口 | 只读 |
| gate_check | 预判某目标某操作会被放行还是拦下 | 只读 |
| gate_log | 读最近审计记录 | 只读 |
| gate_requests | 看自己提交的待批申请 | 只读 |
| gate_add | 把目录/名字纳入受管,固定为「禁」 | 只收紧 |
同分类对比
同一分类下 Star 最高的 5 个,便于横向比较。
| 插件 | 作者 | Star | 版本 | 更新 |
|---|---|---|---|---|
| dsh-our-free-model | Ebony-Vinyl | 68K | 2.1.0 | 2026-11-10 |
| next-ai-draw-io | DayuanJiang | 36.9K | 0.4.10 | 2026-11-09 |
| MemOS | MemTensor | 12.3K | 0.0.0 | 2026-11-09 |
| bisheng | dataelement | 12.2K | 0.0.0 | 2026-11-10 |
| webnovel-writer | lingfengQAQ | 7.9K | 0.0.0 | 2026-11-07 |