前言¶
DeepSeek Harness(DSH)会在本机留下 Bash 运行时解压副本、请求用图片缓存、会话投影缓存,以及桌面端的 Electron 渲染缓存等。时间一长,$DSH_HOME 和系统临时目录里的 dsh-* 会占掉不少磁盘,但哪些目录能删、哪些属于会话数据,单靠手工翻路径很容易误删或漏清。
社区插件 dsh-disk-janitor(维护者 Algorandius)面向上述问题:先扫描并展示 DSH 各顶层目录占用,再按固定类别清理可再生缓存;会话日志与附件不在清理范围内。
这是什么¶
dsh-disk-janitor 是 DSH 的磁盘清理插件,在 SkillHub 目录中归类为「记忆」,当前版本 v0.1.0(MIT 许可证)。它不替代会话列表里的删除操作,而是专门处理 Host 侧已定义的几类缓存根目录。
实现上 Host 侧仅使用 node: 内建模块,不依赖 DSH 包 import;客户端通过 dsh.bundle.patch 与 dsh.client 契约接入,要求 DSH 0.2.x。
核心功能¶
三种使用入口¶
- 设置页:设置 → 磁盘清理(
settings.section,排在「插件」之后),可查看占用并执行清理。 - 对话:对 Agent 说明「看看 DSH 占了多少磁盘」或「清理一下缓存」,会调用
disk_janitor工具。 - 自动模式(可选):默认可关闭,仅支持自动清理
temp-scratch与request-image-cache。
清理项与扫描范围¶
除 acl-backups(权限修复回滚记录,不是缓存)外,其余条目均为可再生缓存;两类都不碰会话、附件、插件与运行时。
| id | 内容 | 说明 |
|---|---|---|
bash-runtime |
$DSH_HOME/dsh-ops/bash-ipc/* |
Windows 沙箱 Bash 解压副本,删后下次终端调用会重新解压,通常最大的一块 |
request-image-cache |
$DSH_HOME/cache/attachments |
为模型请求生成的图片副本 |
projection-cache |
$DSH_HOME/storages/session_projcache |
会话视图派生缓存,清理后首次打开会话稍慢 |
acl-backups |
$DSH_HOME/dsh-ops/acl-backups |
回滚记录,删掉不影响使用 |
temp-scratch |
系统临时目录里的 dsh-* |
只清理 6 小时前未改动过的 |
desktop-cache |
%APPDATA%\@deepseek-ai\dsh-desktop\{Cache,GPUCache,…} |
Electron 渲染/着色器缓存,重启 DSH 后重建 |
扫描时会同时给出 $DSH_HOME 每个顶层目录的占用(插件、运行时、会话、附件等),便于判断「盘被谁吃了」。
安全设计(摘要)¶
- 删除只作用于六个固定缓存根目录内的条目;路径由 Host 解析,客户端只能传类别 id。
- HTTP 路由只认 loopback(
127.0.0.1/localhost/::1),非本机 Host 返回 403。 - 写操作要求
Content-Type: application/json,并带有 CSRF 相关校验;?force=1强制扫描 2 秒内只生效一次。 - 自动清理默认关闭,且可选类别仅限
temp-scratch/request-image-cache。
配置¶
设置页改动会写入 $DSH_HOME/dsh-disk-janitor.json,也可手改:
{
"autoClean": { "enabled": false, "intervalHours": 6, "categories": ["temp-scratch", "request-image-cache"] }
}
enabled 为 false 时不会后台定时清理;开启后按 intervalHours 与 categories 执行。
安装与启用¶
DSH 生态以「一切皆插件」为主;SkillHub(skillhub.cn)是社区独立目录站点,与 DeepSeek / 幻方无官方从属关系。该插件在目录页标注为「可安装」,安装方式为将插件信息发送给 DeepSeek Harness 完成安装(目录页:Algorandius/dsh-disk-janitor)。
已抓取资料与 README 中未给出形如 dsh plugin add … 的固定 CLI 字符串,本文不自行拼接命令。安装前建议在 GitHub 仓库阅读源码与 MIT 许可证;插件以当前 DSH 进程权限运行,清理能力仅覆盖上述缓存类别。
典型用法¶
- 打开 设置 → 磁盘清理,查看
$DSH_HOME分项占用与各缓存类别大小,按需勾选后清理。 - 在对话中直接说明需求,例如让 Agent 扫描占用或清理缓存(由
disk_janitor工具执行)。 - 若希望定期清理临时目录与图片请求缓存,在设置页或
dsh-disk-janitor.json中开启autoClean,并保持categories在文档允许的范围内。
需要强制刷新扫描时,接口支持 ?force=1,但 2 秒内重复强制扫描会被限流,避免本地刷接口占满 CPU。
适用场景与注意¶
适合:长期在本机跑 DSH、尤其是 Windows 沙箱 Bash 副本变大、或桌面端 Electron 缓存膨胀时,想先看清再清缓存的使用者。
注意:
- 会话日志、附件不在清理范围内;删除会话请用会话列表中的操作。
bash-runtime清理后首次终端调用会重新解压,可能略慢,但不影响数据。projection-cache清理后首次打开对应会话会稍慢。- 要求 Node >= 20(见仓库
package.json的engines)。
结尾¶
dsh-disk-janitor 把 DSH 占盘拆成可读的目录视图与六类可控清理项,并在 Host 侧用路径白名单与 loopback 校验约束写操作。需要安装或查看更新时,可访问 SkillHub 目录页与 GitHub 仓库:
- 目录页:https://www.skillhub.cn/plugins/Algorandius/dsh-disk-janitor
- GitHub:https://github.com/Algorandius/dsh-disk-janitor