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

存储体检 OnebugIS/dsh-storage-inspector

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

扫描本地磁盘占用,定位大文件并给出清理建议

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · other
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
  • 发起网络请求
    lib/client.js:127
    const response = await fetch(`api/storage/report${query}`, {
  • 读取本地文件
    lib/scan.js:137
    st = await ctx.limit(() => lstat(abs))
  • 读取本地文件
    lib/scan.js:177
    entries = await ctx.limit(() => readdir(abs, { withFileTypes: true }))
  • 读取本地文件
    lib/scan.js:237
    const entries = await readdir(root, { withFileTypes: true })
  • 读取本地文件
    lib/scan.js:241
    const st = await lstat(join(root, entry.name))
  • 读取本地文件
    lib/scan.js:285
    entries = await ctx.limit(() => readdir(root, { withFileTypes: true }))
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 存储管理插件:本地磁盘占用检查与清理建议

README

由 DeepSeek 最新模型翻译生成
dsh-storage-inspector 给 DSH 做一次安全的本地存储体检。 看清 ~/.dsh 哪些模块占空间、最大的文件在哪里、哪些内容可以回收,以及为什么不能随便删。 当前版本是 V1 / 只读版。它不会删除、移动或上传任何文件;自动清理功能尚未开启。 目录 - 它解决什么问题 - 功能概览 - 工作原理 - 安全与隐私 - 数据口径 - 安装 - 使用 - 开发与测试 - 故障排查 - 版本计划 - 贡献与发布 它解决什么问题 DSH 的运行时、会话、缓存、插件和日志都可能积累在 ~/.dsh。只看目录列表很难回答三个问题: 1. 到底占了多少磁盘? Finder、du 和文件逻辑大小可能会给出不同答案; 2. 空间花在哪里? 需要按模块、缓存和最大文件定位; 3. 什么能动、什么不能动? 运行时目录和活动配置不能因为“看起来很大”就删除。 本插件把这些判断集中到一个扫描器中,提供设置页和 Agent 工具两个入口,避免两套口径互相矛盾。 功能概览 设置页存储面板示意图 上图是用于解释字段的界面示意图,不是某台机器的真实截图;示例数字不代表固定占用。
展开完整文档(README 剩余 1 节)
dsh-storage-inspector

给 DSH 做一次安全的本地存储体检。 看清 ~/.dsh 哪些模块占空间、最大的文件在哪里、哪些内容可以回收,以及为什么不能随便删。

当前版本是 V1 / 只读版。它不会删除、移动或上传任何文件;自动清理功能尚未开启。

目录

- 它解决什么问题
- 功能概览
- 工作原理
- 安全与隐私
- 数据口径
- 安装
- 使用
- 开发与测试
- 故障排查
- 版本计划
- 贡献与发布

它解决什么问题

DSH 的运行时、会话、缓存、插件和日志都可能积累在 ~/.dsh。只看目录列表很难回答三个问题:

1. 到底占了多少磁盘? Finder、du 和文件逻辑大小可能会给出不同答案;
2. 空间花在哪里? 需要按模块、缓存和最大文件定位;
3. 什么能动、什么不能动? 运行时目录和活动配置不能因为“看起来很大”就删除。

本插件把这些判断集中到一个扫描器中,提供设置页和 Agent 工具两个入口,避免两套口径互相矛盾。

功能概览

设置页存储面板示意图

上图是用于解释字段的界面示意图,不是某台机器的真实截图;示例数字不代表固定占用。

| 能力 | 说明 |
| 设置 → 存储 | 总量、物理/逻辑双口径、模块占用、Top 文件和分级建议 |
| storage_report | 在对话中询问 DSH 占用;默认摘要,detail=full 返回完整报告 |
| 可解释分类 | 区分 active、cache、runtime、sessions、unknown,并说明建议原因 |
| 安全边界 | 只读、不联网、不跟随符号链接、硬链接去重、loopback 接口 |
| 统一口径 | 设置页和 Agent 工具共同使用 lib/scan.js |

工作原理

架构图:一个扫描器连接本地 DSH、设置页和 Agent 工具

扫描流程是:

1. 读取 DSH_HOME,未设置时使用 ~/.dsh;
2. 遍历目录并计算物理块大小与逻辑大小;
3. 跳过符号链接,按 inode 对硬链接去重,遇到权限错误则跳过并继续;
4. 识别模块、缓存和禁止触碰的运行时目录;
5. 生成 Top 文件与“可回收 / 谨慎处理 / 禁止”的解释性建议;
6. 将同一份报告提供给设置页和 storage_report。

安全与隐私

- 只读:V1 不删除、不移动、不改名、不写入扫描目录;
- 本地:只读取 DSH 目录,默认 ~/.dsh,也可由 DSH_HOME 指定;
- 不联网:扫描器没有上传路径、文件名或报告的网络逻辑;
- 不跟随符号链接:避免意外越界扫描其他目录;
- 权限最小化:权限拒绝的条目会跳过,不通过提权绕过;
- loopback 栅栏:设置页接口只接受本机 loopback 请求,并拒绝反向代理头与跨站请求;
- 运行时保护:dsh-runtimes/ 标记为“禁止”,因为其中包含 DSH 自带的 Node/Python/pnpm;
- 会话边界:sessions/ 只显示体积,不提供第二套删除入口,避免绕过会话归档工具;
- 依赖隔离:包不声明任何 @deepseek-ai/* 运行时依赖,避免 link: 安装时解析出第二份核心实例。

数据口径

物理大小与逻辑大小的计算模型

设置页主数字使用物理块大小:

physical bytes = st_blocks × 512
logical bytes = 所有文件 st_size 之和

物理口径更接近 macOS Finder / du 实际占用;逻辑口径更接近文件内容总和。两者不同是正常现象,尤其是大量小文件会产生块分配放大。报告会同时展示两种口径,不把差异伪装成扫描错误。

兼容性与限制

| 项目 | 当前支持/默认值 |
| DSH | >=0.2.1-rc.3(由 package.json 声明) |
| Node.js | >=20 |
| 平台 | macOS 本机路径已覆盖测试;其他平台需自行验证文件系统块口径 |
| 扫描范围 | 仅 DSH 根目录;不会扫描工作区、项目目录或系统其他路径 |
| 缓存 | 默认 5 分钟(cacheTtlMs=300000) |
| 超时 | 默认 10 秒(timeoutMs=10000);超时会返回已扫描部分并标记不完整 |
| 权限错误 | 跳过无法读取的条目,complete=false 且 totals.skipped 增加 |

缓存命中时,设置页的“重新扫描”会通过 force=1 绕过缓存。根级 fingerprint 能快速识别常见变化;深层文件变化仍由 TTL 兜底,因此需要最新结果时请手动重新扫描。

当报告的 complete 为 false 时,数字是部分结果,不能当作完整磁盘盘点;设置页会显示“扫描超时/部分结果”提示。

安装

快速开始

1. 确认 DSH 与 Node.js 版本符合上表;
2. 从 npm 安装:

dsh plugin --profile desktop add dsh-storage-inspector

3. 重启 DSH;
4. 新建一个会话,询问“DSH 占多少空间?”验证 storage_report;
5. 打开 设置 → 存储 查看图形化报告。

从源码安装(开发 / 自用)

在插件目录的上一级项目中执行:

bash
dsh plugin --profile desktop add \
"link:/absolute/path/to/DSH存储管理插件/2_dsh-storage-inspector"

然后重启 DSH。没有启用 HMR 时,修改代码也需要重启才能加载新模块。

卸载: bash
dsh plugin --profile desktop remove dsh-storage-inspector

当前阶段坚持「测试先行、明确授权后安装」。不要在未经使用者授权的情况下改写 desktop 配置档。

从 GitHub 获取 bash
git clone https://github.com/OnebugIS/dsh-storage-inspector.git
cd dsh-storage-inspector

再使用上面的 link: 安装命令

从 npm 安装

正式发布后,推荐使用: bash
dsh plugin --profile desktop add dsh-storage-inspector

如果 npm 版本尚未同步,可暂时使用上面的 GitHub link: 开发安装方式。

使用

设置页

打开 DSH 的 设置 → 存储,可查看:

- 总物理占用与总逻辑大小;
- 各模块占用及分类;
- 最大文件榜;
- 缓存、活动配置、会话和运行时的分级建议;
- 缓存命中与强制刷新状态。

智能体工具

在对话中询问: text DSH 占多少空间?

模型可以调用摘要: json { "name": "storage_report",
"arguments": { "detail": "summary" }
}

需要最大文件榜和完整明细时使用: json { "name": "storage_report",
"arguments": { "detail": "full" }
}

summary 默认不携带最大文件榜,适合日常对话;full 才返回完整明细,避免把大量路径塞进上下文。

开发与测试

环境要求:Node.js >=20。
bash
npm test
npm run preflight
npm pack --dry-run
node --check lib/scan.js
node --check lib/index.js
node --check lib/client.js

当前测试覆盖:

- 白盒:fixture、权限、符号链接、硬链接、物理/逻辑口径、模块分级、缓存、建议构造、真实 ~/.dsh 集成扫描;
- 黑盒:Host 工具注册契约、HTTP loopback 栅栏、设置页请求与 403 行为、卸载清理、安装后的工具与设置入口;
- 发布预检:manifest、patch 插入语义、locale、icon、README、运行时文件和核心依赖隔离。

相关维护资料:上线部署方案、测试方案、验证清单。

故障排查

设置页显示「仅本机可用」

这是预期的安全行为。请确认你是从 DSH 本机打开设置页,不要通过反向代理、远程端口转发或跨站 iframe 访问。

数字和 Finder / du 不一样

先确认比较的是同一口径:插件主数字是物理块大小,同时提供逻辑大小。macOS 文件系统、稀疏文件、硬链接和大量小文件都可能造成差异。

修改代码后没有变化

确认插件仍以 link: 安装;然后完全重启 DSH。未启用 HMR 时,热替换不会自动加载新模块。

想删除 dsh-runtimes/ 或 sessions/

不要直接删除。前者是 DSH 自带运行时,后者由会话归档类工具负责;本插件 V1 只提供观察和解释,不提供删除按钮。

版本计划

- V1(当前):只读扫描、双口径、模块占用、Top 文件、可解释建议、设置页 + 智能体工具;
- V2(计划):dry-run 清理预览、白名单、废纸篓、undo 日志;sessions/ 继续交给专门的会话归档插件;
- V3(原则):不提供直接永久删除。

贡献与发布

欢迎提交 Issue / Pull Request。建议先说明:

- 操作系统与 DSH 版本;
- npm test 和 npm run preflight 结果;
- 复现步骤与期望行为;
- 是否涉及路径、权限、符号链接或硬链接。

提交前请不要上传 .env、token、cookie、私钥或真实会话路径。发布前必须通过测试、预检和 npm pack --dry-run,并确认 tarball 不含 node_modules、敏感信息或工作区绝对路径。

License

MIT
预览分享卡片长什么样 ↓OnebugIS/dsh-storage-inspector
分享 · DeepSeek Harness Hub
OnebugIS/dsh-storage-inspector

扫描本地磁盘占用,定位大文件并给出清理建议

这是你的仓库?认领条目

回到顶部