用途:在 macOS 上发现并回收被浪费的 SSD 空间。分两阶段:先只读扫描,再逐项交互确认后直接删除。仅支持 macOS,扫描器不会触及用户数据(文档、照片、邮件、钥匙串、容器应用数据、iCloud、系统卷均排除),自身不删除任何内容。
主要能力:扫描不依赖固定路径列表,按类别发现膨胀项,包括分散型占用(单项不大但总量巨大)。类别有 build(各项目的 node_modules、target、build、dist、.next、.venv、pycache)、cache(工具与 Electron 应用缓存)、browser-cache(Chrome/Brave/Vivaldi/Firefox 缓存)、agent(Claude/Codex 对话历史与日志数据库,永久性,需审查)、ai-models(ollama/Hugging Face 权重,可重新下载)、git-gc(臃肿的 .git 对象,用 git gc 重打包不丢内容)、worktree(分支已合并的 git worktree)、dsstore(大量 .DS_Store 文件)、trash(~/.Trash 及各卷 .Trashes)。每项附带大小、风险等级和一行后果说明。
使用方式:阶段一运行 python3 scripts/scan_reclaimable.py --json,--min-mb N 可提高下限(默认 200)。阶段二按大小从大到小逐项询问 delete/skip/stop,绝不批量。选择持久化在 ~/.config/mac-disk-reclaim/decisions.json,下次只询问新项。记录删除用 python3 scripts/decisions.py set "<key>" delete --path "<path>" --category "<category>",跳过用 skip。执行删除时,method: cmd 运行项目自带清理命令(如 git gc、git worktree remove、brew cleanup --prune=all、docker system prune -af --volumes、find ~ -name .DS_Store -delete);method: rm 通过守卫删除:python3 scripts/safe_delete.py "<path>" --yes。删除是直接且永久的,不进废纸篓。记忆控制:--no-memory 重新审查全部,decisions.py list 查看,decisions.py forget <key> / --all 清除。
限制:Swap 无法在运行中的 Mac 上清空,/private/var/vm 交换文件由内核管理,删除有崩溃风险,sudo purge 只释放非活跃内存,只有重启能清空。扫描仅用 du/find;可 brew install dust 加速,或用 mac-cleanup-py 做一键清理,但二者都不提供本技能的逐项确认直接删除。切勿删除扫描器未发现的任何内容,切勿把手工输入的路径交给 safe_delete.py;若 safe_delete.py 阻止某路径,不要绕过。