mcpField
Y
yyl-disk-cleaner-cat

yyl-disk-cleaner-cat

github.com/ttfake92-labOther317475 installsUpdated 2w ago
Repository

About yyl-disk-cleaner-cat

A macOS disk-cleanup skill that scans files through a local service and requires confirmation in a pixel-art web page before permanent deletion. Preference memory, cleanup history, and a live cat animation support users who want to review items before removing them.

Key features

  1. 01Scan developer and system caches
  2. 02Confirm permanent deletion in a web page
  3. 03Require manual selection for large files
  4. 04Show deletion progress live
  5. 05Store cleanup history and preferences
  6. 06Measure performance and network read-only

Use cases

  1. 01Clear developer and app caches
  2. 02Review and remove large files individually
  3. 03Check space freed after cleanup
  4. 04Remember paths that must not be cleaned

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/ttfake92-lab/skills --skill yyl-disk-cleaner-cat

After installing, type/yyl-disk-cleaner-catin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

metadata.json
README.md
references/
categories.md
src/
engine.py
server.py
web/
app.js
index.html
style.css

Details

From the project README

磁盘清理小猫 🐱

一句话:扫描 → 打开像素网页让你确认 → 小猫实时打扫 → 把这次清理写进记忆。

三层结构:

  • 大脑(你,Claude):读记忆、按偏好讲解、收尾总结、更新偏好。
  • 引擎 + 桥梁(src/server.py):扫描磁盘、起本地服务、执行永久删除、把进度实时推给网页、写记忆。
  • 界面(web/ 像素页):展示可清理项(学到的安全类别已预勾选)+ 永久删除确认 + 会打扫的像素小猫。

为什么要本地服务而不是单个 HTML:静态网页无法把「用户点了确认」告诉后端,也收不到真实删除进度。server.py 是让「确认 → 真删 → 小猫同步打扫」成立的桥梁。

运行流程(你要做的)

设 $SKILL_DIR = 本 SKILL.md 所在文件夹。

1. 先读记忆,回忆偏好
cat ~/.disk-cleanup-cat/MEMORY.md 2>/dev/null || echo "(首次使用,还没有记忆)"

读到偏好后,用一句话跟用户打招呼,比如「上次释放了 X,缓存类你一向直接清,这次我先帮你预勾好」。

2. 启动小猫(会扫描 → 自动开浏览器)

在后台运行,这样你能继续对话、并在结束后读取结果:

python3 "$SKILL_DIR/src/server.py"
  • 启动后会先扫描磁盘(约 10–20 秒,终端打印进度),扫完自动用浏览器打开像素页。
  • 告诉用户:「小猫正在巡视磁盘,扫完会自动弹出一个像素页面,你在上面勾选要清理的东西、点『开始打扫』就行。」
  • 终端会实时打印每一项的释放情况;用户点页面右下角「关掉小猫」即退出服务。
3. 用户在网页上确认 + 打扫

这一步在网页里完成,你不用操作。页面会:

  • 列出可清理项(缓存类已预勾选,大文件永远默认不勾、需用户亲自勾);
  • 醒目提示「永久删除,不进废纸篓」;
  • 确认后小猫走到对应灰尘堆实时打扫,删完显示成果。
4. 收尾总结

服务结束后(或用户说扫完了),读最新记忆并总结:

tail -n 3 ~/.disk-cleanup-cat/history.jsonl 2>/dev/null; echo "---"; cat ~/.disk-cleanup-cat/MEMORY.md

用结论先行的方式汇报:这次释放了多少、清了哪些类别、磁盘现在多空。

5.(可选)把对话里学到的偏好写进记忆

如果用户在对话里表达了偏好(例如「微信缓存别动」「Downloads 里的素材永远别碰」),写进 preferences.json 的 never_touch 或 notes,让下次更聪明:

python3 - <<'PY'
import json,sys; sys.path.insert(0,"$SKILL_DIR/src"); import engine
p=engine.load_prefs()
p.setdefault("never_touch",[]).append("/Users/你/某个永不清理的路径")   # 按需修改
p["notes"]=(p.get("notes","")+"\n用户说:微信缓存不要动").strip()
engine.save_prefs(p); engine.render_memory_md()
print("偏好已更新")
PY

安全红线(务必遵守)

  • 永久删除,删什么必须用户在网页上确认——这是设计约定,不要替用户跳过确认。
  • 引擎只删两类:(1) 已知缓存白名单目录 (2) 用户亲手勾选的大文件。删除前过 _is_safe_to_delete():绝不碰 /、家目录根、~/Library、~/Documents 等关键路径,绝不超出家目录,命中 never_touch 即跳过。
  • 性能 / 网络是「真实测量 + 安全一键」板块:
    • 测量只读(内存 swap、Top 进程、DNS 实测延迟、ping 延迟/丢包),不改任何东西。
    • 唯一的一键操作 = 禁用/还原「用户级」后台自启(~/Library/LaunchAgents/*.plist)。禁用 = launchctl unload + 把 plist 挪到 ~/.disk-cleanup-cat/disabled-agents/(不删除、随时一键还原)。每次都要用户在网页上点 + 确认。
    • 系统级 daemon、改 DNS、刷新缓存等需 sudo 的,只给可复制命令,由用户手动执行。
    • Theater 坚决不做:清内存/RAM 加速、一键加速、提升带宽——在 macOS 上无效甚至有害。
  • 不要自己写 rm 或 launchctl 去操作——一切删除/禁用走 server.py(/api/clean、/api/action),它有白名单守卫和可还原设计。

清理板块一览

板块内容默认勾选
开发者缓存npm/yarn/pnpm、pip、Homebrew、Xcode DerivedData/DeviceSupport、模拟器、Go、Gradle、Docker✅(Docker、Archives 除外)
系统与应用缓存~/Library/Caches 各应用、应用日志、废纸篓、.DS_Store✅
大文件与下载超大文件、久未动的下载⬜ 永远手动
性能优化内存 swap 压力、CPU/内存 Top 进程、登录项、后台自启测量只读;自启可一键禁用/还原(用户级、可还原)
网络优化DNS 实测延迟+推荐、ping 延迟/丢包、Wi-Fi测量只读;改 DNS/刷新缓存给 sudo 命令

细节见 references/categories.md。

记忆与交接

全部存在 ~/.disk-cleanup-cat/(独立于本 skill 文件夹,重装不丢):

  • MEMORY.md —— 给人/Claude 读的概览与交接(自动生成,可手动补「备注」)。
  • preferences.json —— 代码用:自动勾选偏好、never_touch、notes、学习统计。
  • history.jsonl —— 每次清理一行:时间、释放、类别、清了哪些项。

学习逻辑:某类别被批准 ≥2 次后,下次自动勾选;大文件永远保持手动。

自测 / 调试

python3 "$SKILL_DIR/src/engine.py"             # 只扫描打印 JSON,不删任何东西
CAT_NO_OPEN=1 CAT_PORT=8799 python3 "$SKILL_DIR/src/server.py"   # 起服务但不自动开浏览器

离线打开 web/index.html(无后端)会自动用演示数据渲染,可纯看小猫动画。

Comments

Markdown supported