Mole:CleanMyMac 的开源命令行平替,一个 mo 命令管清理、卸载、磁盘与监控
阅读时间: 大约 13 分钟
Mole:CleanMyMac 的开源命令行平替,一个 mo 命令管清理、卸载、磁盘与监控

Mole 是 tw93(Pake 作者)开源的 macOS 清理与优化命令行工具,主命令 mo,GPL-3.0 协议,官方定位是”把 CleanMyMac、AppCleaner、DaisyDisk、iStat Menus 风格的工作流合并进一个终端命令”。免费开源之外,作者另售闭源原生 Mac/Windows App(mole.fit)。本文基于其 GitHub README、安全说明与仓库页面做一手核对。
一、背景动机:商业清理软件重,命令行用户要可控
macOS 长期积累的缓存、日志、已卸载应用残留、项目构建产物与安装包,是磁盘紧张的主要来源;CleanMyMac 这类商业软件功能全但付费、带图形界面与订阅。Mole 的思路是:在终端里用一条命令完成同类工作,开源可审计,默认不破坏,所有删除动作先 --dry-run 预览。仓库页面(2026-10-19 快照)显示约 71.4k stars、2.5k forks,最新 release 为 1.61.0。
二、是什么:开源 CLI 与闭源原生 App 的双层结构
README 顶部即划清边界:本仓库是免费开源 CLI(mo);带”删除前审阅、800+ 应用残留库、磁盘钻取、实时状态、风扇控制”的是独立下载的原生 App。brew install mole 只装 CLI。
- 支持环境:macOS 12 及更新,Intel 与 Apple Silicon 均可;Windows 有独立
windows分支 CLI;官方不支持 Linux。 - 安装:
brew install mole,或脚本curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash;Nix 用户可装 flake;也支持mo update --nightly跟踪 main 分支(明确提示粗糙边缘)。 - 协议:CLI 为 GPL-3.0,修改再分发须同协议,fork 需改名并署名上游;原生 App 为单独商业产品。
- 防伪声明:官方只通过 Homebrew、本仓库与 mole.fit 分发,伪装的”Mole 系”应用、要求粘贴编码命令的站点均无关联。
三、技术机制:七条命令 + dry-run + 白名单 + 操作日志
| 命令 | 职责 | 关键机制 |
|---|---|---|
mo clean | 深度清理:用户/应用缓存、日志、临时文件、开发者产物、已卸载应用残留 | 默认清空废纸篓(可在白名单保留);--dry-run 预览;--whitelist 保护指定缓存 |
mo uninstall | 卸载已装应用连同 LaunchAgents、偏好设置、残留 | 共享数据在仍有副本使用时保留;个人数据默认保留,按 D 逐选数据路径;不改写 shell/Hook/MCP 配置,只按文件行号列出引用 |
mo optimize | 有界维护:QuickLook 缩略图、图标服务缓存、DNS 缓存、数据库优化、磁盘健康 | 不必要/不安全/不可用的任务带原因跳过;--whitelist 排除任务与路径模式 |
mo analyze | 交互式磁盘 TUI 浏览器 | 方向键/Vim 导航、过滤、多选、Finder 预览、确认后移废纸篓;--json 输出带 scan_status(complete/partial/unavailable) |
mo status | 只读实时仪表盘 | CPU、内存、磁盘 I/O、网络、电源、进程;健康分综合 CPU/内存/磁盘容量/SMART/I-O/温度/电池/运行时长 |
mo purge | 清理可重建项目产物(node_modules、target、.build、build、dist) | 近 7 天有活动或活动不可验证的默认不选;保护含部署密钥对、嵌套 Git 仓库、Git 跟踪文件的目录;优先 fd,回退 find |
mo installer | 找 DMG/PKG/MPKG/ISO/XIP/ZIP 安装包 | 扫描 Downloads、Desktop、Homebrew 缓存、iCloud、邮件、Telegram 等;损坏压缩包跳过,符号链接根支持但不跟随其下链接 |
另有 mo touchid(为 sudo 配置 Touch ID)、mo completion(Tab 补全)、mo history(查 ~/Library/Logs/mole/operations.log,可用 MO_NO_OPLOG=1 关闭)。
安全设计:校验路径、保护共享与系统目录;默认不带 sudo,仅在需要时申请管理员权限;白名单文件读不到时 clean/purge/optimize 直接停止而非裸奔;analyze 删除一律进废纸篓而非直接抹掉;非交互 purge 必须显式 --yes。
四、关键数据:官方示例与宣传图的数字口径
README 正文的缩短示例(作者演示机,非统计均值):
| 场景 | 官方示例输出 |
|---|---|
mo clean | 跟踪清理 4.5GB、97 项、4 类,可用空间 219.0GB → 223.5GB |
mo uninstall | Photoshop 2024 释放 4.20GB,个人数据保留 |
mo optimize | 32 项中 Applied 2、13 unchanged、3 skipped、1 unavailable |
mo purge | 估算释放 6.00GB、2 项(website node_modules 3.80GB、rust-app target 2.20GB) |
mo installer | 移除 5 个安装包释放 3.83GB |
mo status 示例 | MacBook Pro M4 Pro / 32GB / macOS 26,健康分 92,CPU 45.2%、内存 58.4% |
官方宣传图(big-mole)的四个面板:dry-run 发现 120.96GB 可回收(未改动);三次实际释放 85.33GB、62.33GB、45.40GB,对应清理文件数 1215902 / 815844 / 505096。

五、评测方法与口径批判:释放空间为什么不能当承诺
- 个案不是均值:宣传图 85.33GB 与社区帖中 237.52GB、23GB+10GB 都来自具体某台机器,磁盘占用、缓存规模、使用时长不同,结果可从几十 GB 到几百 GB 剧烈波动;“约等于 19 部 4K 电影”是营销类比,不是容量换算承诺。
- dry-run 与实清两个口径:120.96GB 是”潜在可回收”预览值,实际释放取决于确认选项与权限,二者本就不等。
- 大小估算有偏差:
analyze的快速文件夹估算可能把 APFS 共享块重复计;+后缀表示部分扫描实测字节,unknown/unavailable不等于空目录;扫描非原子快照,临时失败不替换完整缓存结果。 - optimize 不是加速魔法:官方示例 32 项只生效 2 项,数据库优化需先关闭对应应用,磁盘验证在条件不满足时直接跳过。
- purge 空间为估算:且默认保守(7 天活动保护、密钥/Git 保护),深于 6 层的项目需
--paths自定义扫描根。 - 健康分是启发式综合:不替代硬件诊断;僵尸进程诊断只读,不会替你结束进程。
六、适用与不适用场景
适合:
- 偏好终端、想开源可审计地清理 Mac 的个人开发者;
- 需要可重建产物清理(node_modules/target)与安装包搜刮的前端/Rust 开发者;
- 想用
--dry-run+ 白名单把删除风险压到最低的谨慎用户; - 需要只读系统仪表盘(CPU/内存/磁盘/网络)替代部分 iStat 功能的人。
不适合:
- 想要图形界面、一键深度清理与应用市场式体验的用户(那是付费原生 App 的范围);
- Linux 用户(无支持);
- 期待”清理后显著变快”的用户——optimize 是有界维护,不治硬件老化与内存瓶颈。
七、客观分析:优势与局限
优势:
- 命令覆盖完整:清理、卸载、维护、磁盘浏览、监控、产物清理、安装包搜刮一条线,且全部可 dry-run;
- 安全默认值扎实:白名单读不到即停止、个人数据默认保留、删除进废纸篓、操作日志可追溯;
- 可脚本化:
--json/NDJSON 输出、--watch流、非交互--yes,适合纳入自动化; - 生态集成:自带 Raycast/Alfred 启动器脚本,自动探测 9 种终端;
- 协议干净:GPL-3.0,核心 CLI 永久免费。
局限:
- 能力分层在付费 App:800+ 应用残留库、删除前审阅、风扇控制、磁盘钻取不在开源 CLI;
- 平台窄:仅 macOS 12+,Windows 为分支实验,无 Linux;
- 效果依赖机器状态,宣传数字不可外推;
- 磁盘估算与扫描完整性有明确边界,自动化需自行检查
scan_status; - 深度自定义成本:白名单、purge 路径、保护规则都要手动配,开箱智能度不及商业软件。
八、它意味着什么 / 谁该关注
Mole 代表了系统工具的”CLI 开源化”路线:把商业清理软件的核心动作拆成可预览、可审计、可脚本的命令,用 GPL 核心换口碑、用原生 App 变现。值得关注:Mac 上的开发者与运维、想替代 CleanMyMac 订阅的终端用户、以及研究”dry-run + 白名单 + 操作日志”安全清理范式的工具作者。采用前请先 mo clean --dry-run 看清单,再决定是否删除。