Mole:一个把 Mac 清理、卸载、监控压进单一二进制的开源 CLI
macOS 终端工具箱,可深度清理缓存与残留文件、彻底卸载应用、分析磁盘占用,并实时显示 CPU、GPU、内存与网络状态。
秒懂
- 它是什么?
- Mole 是一个面向 macOS 的终端工具,把清理、卸载、磁盘分析、系统监控和优化集中在一个命令里。它免费开源,但项目同时销售一款原生 Mac 应用,CLI 与商业版之间的边界值得留意。
- 适合谁用?
- Mole 适合那些熟悉终端、愿意用 --dry-run 预览再执行删除的 macOS 用户,尤其是开发者,因为它的 purge 和 installer 子命令直接面向项目构建产物和安装包。不适合对文件删除零容忍、或者希望图形界面操作的新手,这类用户应该考虑官方提供的付费 Mac 应用,或者继续使用 CleanMyMac 等商业软件。
- 能商用吗?
- 可以,但有条件。GPL-3.0 是 copyleft 许可证:如果你分发包含它的软件,就必须以同一许可证公开该软件的源代码。只在内部运行、不对外分发,则不会触发这项义务。
- 还在维护吗?
- 在维护。仓库在最近一天内有新的提交。
- 用什么语言写的?
- 主要是 Shell(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。
开源项目深度解析
它解决什么问题:终端里的 Mac 维护工具箱
Mole 把四类常见的 Mac 维护任务,清理缓存和日志、卸载应用及残留、分析磁盘占用、实时监控系统状态,合并成一个名为 mo 的命令行工具。它的定位是替代 CleanMyMac、AppCleaner、DaisyDisk 和 iStat Menus 这四款商业软件,但只通过终端交互。目标用户是已经习惯命令行、不想为每个功能单独安装图形应用的开发者或高级用户。项目主页明确说 CLI 免费且开源,同时提供一款付费的原生 Mac 应用,后者覆盖清理、卸载、优化、磁盘分析和系统监控,并强调 VoiceOver 辅助功能。这意味着 CLI 和商业应用是两条产品线,CLI 的功能可能不会完全对齐商业版。
工作机制:从扫描到删除的路径与安全边界
根据 README 的描述,Mole 的核心机制是扫描已知的安全路径,然后按类别展示可清理的项目。例如 mo clean 会列出用户缓存、应用日志、浏览器缓存、开发者工具缓存等分类,并显示每类的大小和项目数。关键的安全设计是,Mole 只处理它能够证明安全的路径,当无法验证某个项目是否安全时,它会跳过或拒绝操作。所有可能删除文件的操作,包括 clean、uninstall、purge、installer 和 remove,都支持 --dry-run 参数,先预览将要执行的动作。此外,mo analyze 在移动项目到废纸篓前会请求确认。清理操作会记录到 ~/Library/Logs/mole/operations.log,用户可以通过 mo history 查看,也可以设置 MO_NO_OPLOG=1 完全禁用日志。这个日志机制是审计的关键,它让你知道 Mole 到底动过哪些文件。
安装与运行:Homebrew、脚本和自定义前缀
安装方式有两种。第一种是 Homebrew,执行 brew install mole 即可。如果 Homebrew 不再支持你的 macOS 版本,项目提供了安装脚本:curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash。脚本默认安装到 /usr/local/bin,这可能需要管理员密码。README 建议,如果希望未来的 mo update 不用输入密码,可以安装到用户目录:先 mkdir -p "$HOME/.local/bin",然后执行 curl -fsSL ... | bash -s -- --prefix "$HOME/.local/bin",再把该目录加入 PATH。安装特定版本时,可以传递 release 标签,例如 bash -s -- 1.51.0,或者传递 main 来跟踪开发分支,但 README 明确警告 main 分支包含未发布代码,可能有粗糙边缘。注意 legacy 的 latest 参数实际等同于 main,并不会安装最新的稳定版,这是一个容易踩的坑。
子命令的实际用法:clean、uninstall、optimize 与 purge
Mole 提供多个子命令,每个都对应一类维护任务。mo clean 执行深度清理,包括缓存、日志、临时文件和已卸载应用的残留数据。mo uninstall 卸载应用并移除相关文件,但会保留仍被其他已安装副本使用的共享数据。mo optimize 刷新缓存和服务,mo analyze 提供可视化磁盘浏览,mo status 显示实时 CPU、GPU、内存、磁盘和网络状态。mo purge 专门清理项目构建产物,mo installer 查找并删除安装包文件。所有删除类命令都支持 --dry-run 预览,例如 mo clean --dry-run 和 mo uninstall --dry-run。对于需要保护的缓存或优化项,可以使用 --whitelist 参数,配置会持久化到 ~/.config/mole/whitelist。mo analyze 可以指定路径,比如 mo analyze /Volumes 只分析外置驱动器,或者 mo analyze /private/tmp 查看用户拥有的临时目录。
安全机制与失败模式:它何时会拒绝或误判
Mole 的安全机制是路径验证和确认提示。它可以删除文件,所以设计上会保护共享和系统拥有的位置,当无法证明某个项目安全时,会跳过或拒绝。但这里有一个真实的失败模式:如果 Mole 的已知安全路径列表不完整,或者某个应用的残留数据不在它的扫描范围内,那么它可能会遗漏,而不是误删。反过来,如果 whitelist 配置不当,用户可能意外保护了本应清理的缓存,导致清理不彻底。另一个限制是,pnpm 缓存可能因为 pnpm 正在运行而被跳过,README 示例中就有 pnpm busy 的提示。此外,mo uninstall 只处理它能够关联到应用的文件,如果应用残留非常隐蔽,可能不会被发现。用户必须依赖 --dry-run 和 operations.log 来验证行为,否则删除操作的风险完全由用户承担。
与替代方案的差异:CLI 与商业软件的根本区别
最直接的替代是 CleanMyMac 等商业图形应用,它们提供可视化界面和更友好的交互,但需要付费且不是开源。Mole 的 CLI 免费开源,但交互完全依赖终端,对不熟悉命令行的用户门槛较高。另一个替代是 macOS 自带的存储管理工具,它只提供基本的缓存清理,没有卸载残留清理和磁盘分析功能。Mole 的独特之处在于把多个工具的功能合并到一个二进制中,并且支持脚本化操作,比如可以通过 --dry-run 和 --debug 组合进行详细的预览。但项目同时销售原生 Mac 应用,这意味着 CLI 可能不是项目的主要盈利方向,其功能更新速度可能不如商业版。如果你需要图形界面和 VoiceOver 支持,官方 Mac 应用是更合适的选择,但它是闭源的,且需要购买许可。
维护与升级成本:GPL-3.0 许可和更新机制
Mole 使用 GPL-3.0 许可,这意味着你可以自由使用、修改和分发 CLI,但如果分发修改版本,必须开源并保持相同许可。项目提供 mo update 命令来更新自身,但更新行为取决于安装方式。如果安装在 /usr/local/bin,更新可能需要管理员密码;如果使用 --prefix 安装到用户目录,则更新可以免密码。README 警告,安装 main 分支会获得未发布代码,因此不建议在生产环境使用。项目有活跃的发布节奏,最近的 V1.52.0 和 V1.51.0 相隔不到一周,说明维护比较频繁。但用户需要留意,CLI 的更新可能引入行为变化,尤其是清理规则,因此每次更新后建议先运行 --dry-run 再执行实际操作。操作日志文件会不断增长,如果不需要审计,可以设置 MO_NO_OPLOG=1 来禁用,但这样会失去追踪删除操作的能力。
编辑结论
Mole 适合那些熟悉终端、愿意用 --dry-run 预览再执行删除的 macOS 用户,尤其是开发者,因为它的 purge 和 installer 子命令直接面向项目构建产物和安装包。不适合对文件删除零容忍、或者希望图形界面操作的新手,这类用户应该考虑官方提供的付费 Mac 应用,或者继续使用 CleanMyMac 等商业软件。采用前必须验证三件事:第一,运行 mo clean --dry-run 和 mo uninstall --dry-run 确认扫描结果符合预期;第二,检查 ~/Library/Logs/mole/operations.log 是否记录了你想保留的路径;第三,确认你的 macOS 版本受支持,Homebrew 如果不再支持旧系统,改用脚本安装时留意 --prefix 参数以避免每次更新都要输入密码。Mole 的 CLI 是 GPL-3.0 许可,但项目同时销售闭源 Mac 应用,这意味如果你打算分发或修改 CLI,需要遵守 GPL 条款,而商业应用不受此约束。
社区笔记