本地 Web 控制台
自包含零依赖仪表盘:查看状态、改配置、触发只读扫描;小屏自动切换卡片视图,无横向滚动。
mac-dev-cleanup 是一个由 AI 代理驱动的 macOS 开发者缓存清理 Skill:代理读取内置 SKILL.md 后调用 Python 脚本,自动扫描、分级并安全清理——真实清理先进废纸篓,随时可还原。
// 01 — 工作方式
不需要记任何命令。Skill 的意义就在于:意图由你表达,执行由代理与脚本完成。
在 Codex / Trae 等代理对话里说一句「清理我的开发缓存」,或粘贴快速开始里的安装 Prompt。
代理据此理解何时调用、如何调用,以及不可逾越的安全边界(个人文件、源码、.git 永不触碰)。
内置 Python 脚本完成扫描、风险分级与清理;真实清理先进废纸篓,附操作清单可一键还原。
// 02 — 特性
AI 负责省事,工程化负责兜底:每一层都有明确的安全边界。
本仓库就是一个 Skill:内含 SKILL.md 清单。你用自然语言下达指令,代理读取清单后调用内置 Python 脚本,自动扫描、分级并清理——无需记忆任何命令。
自包含零依赖仪表盘:查看状态、改配置、触发只读扫描;小屏自动切换卡片视图,无横向滚动。
识别 13 类目标:全局/应用缓存与日志、项目生成物、测试产物、截图、大目录/大文件、stale 依赖与模型。
safe / aggressive / manual。manual 项(截图、大文件、模型等)永不自动删除,仅报告待你确认。
以「源码 mtime + 最后 git commit」判定项目闲置(默认 90 天),自动标记 stale-deps / stale-model。
真实清理把候选移入 ~/.Trash/mac-dev-cleanup/<op-id>/ 并写入操作清单,可一键还原,绝不使用裸 rm。
单一 config.json 管理阈值、扫描根、排除项;Web 设置面板可视化编辑并原子写入。
清理后空间未必立即释放——APFS 快照会占位。文档说明重启释放机制与正确验证姿势(df -h ~)。
// 03 — 风险级别
清理前务必先跑只读扫描;不同模式对各级别的处理策略不同。
| 级别 | 行为 | 典型示例 |
|---|---|---|
| safe | clean-safe 与 clean-aggressive(加 --apply)均删除 | __pycache__、pip/npm/uv 缓存、playwright 临时文件、项目日志、覆盖率 |
| aggressive | 仅 clean-aggressive(加 --apply)删除 | node_modules、.venv、build、dist、Codex/Trae 缓存、大应用缓存/日志、stale-deps |
| manual | 任何模式都不自动删除,报告中标为「待确认」 | 截图、大目录、归档、dump、个人大文件、stale-model |
// 04 — 快速开始
复制给 AI 代理,即可自动完成「下载 → 安装 → 只读扫描验证」;也可手动安装。
代理会自动:克隆仓库 → 安装到 skills 目录 → 跑一次只读扫描做安装验证 → 向你汇报结果。
// 05 — 配置
用户可调项集中在 config.json;脚本每次运行读取,缺失则写入默认值;安全边界硬编码、不可被配置削弱。
// 06 — 安全须知
请先在废纸篓里留存一段时间再清空;受保护范围永不被扫描或删除。
df 可能不变——系统更新快照 com.apple.os.update-* 与 Time Machine 本地快照会占用容器空间。重启是最可靠的释放方式,不要因为 df 没变就以为清理失败。验证请用 df -h ~(而非 df /,后者在现代 macOS 上是只读系统卷)。
受保护、永不被扫描/删除的范围:个人媒体与文档、应用支持数据、源代码、.git、包 lockfile、用户自建资源;项目遍历时跳过 .git/.svn/.hg;系统目录(Application Support、Containers、Mobile Documents、Music、Movies、Trash 等)不进入。