🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

额外可写路径 0x7a76/dsh-extra-paths

DeepSeek Harness
0x7a7616 天前有提交已提供中文文档扫描:含敏感能力

配置外部目录免审批直接写入,覆盖文件工具与终端

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 0x7a76/dsh-extra-paths
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · security
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 16 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/17) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 8 处,展示前 8 条)
  • 发起网络请求
    lib/client.js:99
    const response = await fetch(`${ROUTE}?${query.toString()}`, {
  • 执行外部命令固定命令
    scripts/dsh-paths.mjs:42
    const bin = execFileSync('which', ['dsh'], { encoding: 'utf8' }).trim()
  • 读取本地文件
    scripts/dsh-paths.mjs:54
    const modules = tried.find((dir) => existsSync(join(dir, '@deepseek-ai')))
  • 写入本地文件
    scripts/dsh-paths.mjs:65
    writeFileSync(new URL('../tsconfig.peers.json', import.meta.url), `${JSON.stringify(out, null, 2)}\n`)
  • 读取本地文件
    lib/resolve.js:93
    if (!existsSync(root)) {
  • 读取本地文件
    lib/paths.js:38
    while (!existsSync(probe)) {
  • 读取本地文件
    lib/pattern.js:106
    names = readdirSync(directory);
  • 读取本地文件
    lib/pattern.js:119
    if (statSync(child).isDirectory())
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-fs@deepseek-ai/dsh-sandbox@deepseek-ai/dsh-sandbox-policy@deepseek-ai/dsh-settings@deepseek-ai/dsh-fs-sandbox@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-extra-paths 让 DSH 对一组配置的外部路径首次尝试即可写、无需审批:既覆盖 write/edit 工具,也覆盖 bash 子进程。 插件以服务包装实现,不改 DSH 核心代码,并提供 Web 设置页与「当前工作区解析出的生效根」预览。 安装 需要 DSH 0.1.5 / 0.2.0 / 0.2.1(不在范围内会被安装闸门拒绝)。 dsh plugin --profile <name> add dsh-extra-paths # <name>=你的 profile 名 想从源码安装(开发时): pnpm install && pnpm build dsh plugin --profile <name> add /path/to/dsh-extra-paths # 路径=本仓库的绝对路径 装好后打开 设置 → 插件 里的「Extra paths」卡片,或设置左栏的「额外可写路径」。 配置 写进设置文档 ~/.dsh/settings.yaml 的 extra-paths 段,或直接用设置页(保存即生效,无需重启)。
展开完整文档(README 剩余 1 节)
dsh-extra-paths

让 DSH 对一组配置的外部路径首次尝试即可写、无需审批:既覆盖 write/edit 工具,也覆盖 bash 子进程。
插件以服务包装实现,不改 DSH 核心代码,并提供 Web 设置页与「当前工作区解析出的生效根」预览。

安装

需要 DSH 0.1.5 / 0.2.0 / 0.2.1(不在范围内会被安装闸门拒绝)。

dsh plugin --profile <name> add dsh-extra-paths # <name>=你的 profile 名

想从源码安装(开发时):

pnpm install && pnpm build
dsh plugin --profile <name> add /path/to/dsh-extra-paths # 路径=本仓库的绝对路径

装好后打开 设置 → 插件 里的「Extra paths」卡片,或设置左栏的「额外可写路径」。

配置

写进设置文档 ~/.dsh/settings.yaml 的 extra-paths 段,或直接用设置页(保存即生效,无需重启)。
下面的 <工作根> 是占位符,指你放项目的那个上层目录(绝对路径,或 ~/ 开头的路径):

extra-paths:
paths:
- <工作根>/notes/home # 用默认 scope/surfaces
- path: ../../notes/home # 相对路径按「会话工作区」解析 scope: always-write
- path: <工作根>/some-repo scope: write
surfaces: [fs] # 只允许 write/edit 工具写

| scope | 会话 read-only | 会话 workspace-write |
| write(默认) | 拒绝 | 可写 |
| always-write | 可写 | 可写 |

surfaces:fs = write/edit/str-replace 工具;shell = bash 子进程。读与执行本来就不受沙箱限制。

相对路径怎么写

相对路径按各会话自己的工作区解析(设置页里可以改「基准工作区」来预览):

| 写法 | 解析成 | 说明 |
| .. | <工作根> | 工作区的上一层,该目录及其所有兄弟目录都可写 |
| ../某仓库 | <工作根>/某仓库 | 只放行那一个兄弟仓库(比 .. 精确,推荐) |
| ../../notes/home | <工作根>/notes/home | 往上几层再进别的树 |
| ~/notes/home | 家目录下 | 与工作区无关;~user 不展开(与宿主一致) |

模式:按目录结构锚定(不用写死路径)

path 里可以用通配符描述一组目录,于是"路径里存在某个目录"可以变成一个条件:

| 写法 | 命中(授予的根) |
| <工作根>//.worktrees/.. | 每个含 .worktrees 的仓库根(.worktrees 的上级) |
| <工作根>//.worktrees/ | 每个具体 worktree(不碰 .git 与主检出) |
| <工作根>/<某仓库>/.worktrees/ | 某一个仓库下所有 worktree(零遍历开销,最推荐) |
| <工作根>//notes | 每个仓库/项目下的 notes 目录 |

语法: = 恰好一层、 = 最多 3 层(只匹配真实存在的目录,所以"必须存在 .worktrees"是自然结果);结尾的 .. 在命中之后再上移(因此 …/.worktrees/.. 就是".worktrees 的上级",不会被词法折叠吃掉)。

安全边界(都是硬约束,不是建议):

- 通配符前必须有字面量锚点,且锚点至少两层、必须是绝对路径或 ~/ 开头 —— /、~/、/srv/ 一律拒绝
- 遍历不进入 node_modules、.git, 也不进入隐藏目录(.worktrees 本身是字面量,仍在当层匹配)
- 有界: 最多 3 层、目录数 > 4096 或命中 > 256 时整个模式不生效(fail closed,绝不给"部分命中"这种不可预期的授权);触顶原因会写进告警
- 展开结果缓存 30 秒,因此新建的 worktree 最迟 30 秒被纳入

设置页每行会实时显示解析到的绝对路径(符号链接以宿主的「解析预览」为准),模式行显示命中条数 [生效 ×N] 并列出每个具体根;0 命中或被拦截都会明确说明,所以不必"先保存再看解析对不对"。

已知边界

- 逐路径的"完全不受限"做不到:bash 沙箱是整次调用粒度。
- 相对路径按会话工作区解析,因此同一份配置在不同工作区指向不同目录——设置页的预览会显示实际解析结果。
- Windows 的 shell 侧不放行;always-write 会削弱 read-only 急停按钮对该路径的作用。
- 写在工作区外的文件不会出现在 deliverables 的工作区变更卡片里。
预览分享卡片长什么样 ↓0x7a76/dsh-extra-paths
分享 · DeepSeek Harness Hub
0x7a76/dsh-extra-paths

配置外部目录免审批直接写入,覆盖文件工具与终端

回到顶部