该仓库是免费开源的CLI()。更喜欢原生应用?Mole for Mac 是一个独立的下载:清理、应用管理、维护、磁盘地图和实时状态,都集中在一个轻量级、支持 VoiceOver 的应用中。一个许可证涵盖两台Mac,免费更新并有14天退款。 只安装CLI。
mobrew install mole
- 一体化CLI工具包:将CleanMyMac、AppCleaner、DaisyDisk和iStat菜单风格的工作流程整合到单一终端二进制文件中
- 深度清理:移除缓存、日志、剩余数据和被遗弃的应用数据,以回收数GB的空间
- 智能卸载程序:移除应用以及启动代理、偏好设置和隐藏残余
- 磁盘洞察:可视化使用情况,查找大文件,重建缓存,刷新系统服务
- 实时监控:实时显示CPU、GPU、内存、磁盘和网络统计数据
Mole需要macOS 12或更新版本,支持Intel和Apple Silicon Mac。
通过 Homebrew 安装
brew install mole
如果Homebrew不再支持你的macOS版本,请使用下面的脚本。
或者通过脚本
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash
Mole 是为 macOS 设计的。Windows分支中有一个实验性的Windows版本。
跑
mo # Interactive menu
mo clean # Deep cleanup + already-uninstalled app leftovers
mo uninstall # Remove installed apps + their leftovers
mo optimize # Refresh caches & services
mo analyze # Visual disk explorer (or 'mo analyse')
mo status # Live system health dashboard
mo purge # Clean project build artifacts
mo installer # Find and remove installer files
mo touchid # Configure Touch ID for sudo
mo completion # Set up shell tab completion
mo update # Update Mole
mo update --nightly # Update to latest unreleased main build, script install only
mo remove # Remove Mole from system
mo --help # Show help
mo --version # Show installed version
安全预览
mo clean --dry-run
mo uninstall --dry-run
mo optimize --dry-run
mo purge --dry-run
mo installer --dry-run
mo history
mo history --json
mo clean --dry-run --debug # Preview + detailed logs
mo optimize --whitelist # Manage protected optimization rules
mo clean --whitelist # Manage protected caches
mo purge --paths # Configure project scan directories
mo analyze /Volumes # Analyze external drives only
mo analyze /private/tmp # Review user-owned temporary directories
在 中所做的选择在 中保持。mo clean --whitelist~/.config/mole/whitelist
其他安装选项
要安装特定版本,只需从发布页面传递任意标签,无论是否带其前导标签。要跟踪开发分支,请通过:Vmain
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash -s -- 1.51.0
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash -s -- main
main它会从默认分支安装未发布的代码,所以会有一些粗糙的部分。 至今仍作为遗产别名使用;尽管名字如此,它并未安装最新的稳定版本。latestmain
脚本通常安装到,可能会要求管理员密码。如果你想让未来的运行保持无密码,可以安装到用户拥有的目录中:/usr/local/binmo update
mkdir -p "$HOME/.local/bin"
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash -s -- --prefix "$HOME/.local/bin"
export PATH="$HOME/.local/bin:$PATH"
在新终端上添加相同的导出文件,或者你的shell配置文件。Mole 会更新你调用的安装,所以它会继续使用这个目录。更改系统自有文件的命令仍可请求管理员权限。PATH~/.zshrc
在macOS上,Nix用户可以安装来自的flake,其中包含未发布的更改:main
nix profile install github:tw93/mole/main#mole
nix profile upgrade mole
nix profile remove mole
对于声明式安装,添加为 flake input 并使用其包。通过Nix更新或移除Mole; 并保持Nix管理的安装不变。github:tw93/mole/mainpackages.${system}.molemo updatemo remove
喜欢攻略?观看PAPAYA 电脑教室的Mole教程视频。
Mole可以删除文件,因此它验证路径,保护共享和系统拥有的位置,并在需要确认时请求确认。当鼹鼠无法证明某项物品安全可更改时,它会跳过或拒绝更改。
clean, , , , , 可以删除文件。先用它们复习,必要时再添加。uninstallpurgeinstallerremove--dry-run--debug- 在没有;它只在需要时请求管理员访问权限。
sudo mo analyze确认后将选定物品移入垃圾桶。- 清理活动记录在;用 来审查或用 关闭它。
~/Library/Logs/mole/operations.logmo historyMO_NO_OPLOG=1 - 用 保护缓存,或用 保护维护物品。
mo clean --whitelistmo optimize --whitelist
请查阅 SECURITY.md 和SECURITY_AUDIT.md,获取报告指导、安全界限及当前限制。
以下示例为简要说明。可用的物品、尺寸和跳过的原因取决于你的Mac。
mo clean审查已知安全的缓存、日志、临时文件、开发者遗迹以及已不再安装的应用遗留物。用来预览符合条件的路径,并保护你想保留的缓存。mo clean --dry-runmo clean --whitelist
$ mo clean
Clean Your Mac
⚙ Apple Silicon | Free space: 219.0GB
➤ User essentials
✓ User app cache · 18 items, 2.4GB
✓ User app logs · 7 items, 12.8MB
✓ Trash · emptied, 9 items
➤ App caches
✓ App Store cache · 8 items, 248.5MB
➤ Browsers
✓ Safari cache · 24 items, 642.1MB
✓ Chrome cache · 31 items, 1.2GB
➤ Developer tools
✓ npm cache · cleaned
◎ pnpm cache · skipped (pnpm busy)
======================================================================
Cleanup complete
Tracked cleanup: 4.5GB | Items cleaned: 97 | Categories: 4
Free space: 223.5GB (+4.5GB)
======================================================================
mo uninstall移除已安装的应用和相关文件,Mole可以将其关联回该应用。当另一个安装的副本仍在使用时,它会保留共享数据。用来复习计划。如果应用已经消失,可以用来找找剩菜。mo uninstall --dry-runmo clean
$ mo uninstall
Select Apps to Remove 1/3 selected
➤ ● Photoshop 2024 4.20GB | 2mo ago
○ IntelliJ IDEA 2.80GB | 3d ago
○ Premiere Pro 3.40GB | 2w ago
Files to be removed:
✓ Photoshop 2024, 12.80GB
✓ /Applications/Adobe Photoshop 2024/Adobe Photoshop 2024.app
✓ ~/Library/Application Support/Adobe/Adobe Photoshop 2024
✓ ~/Library/Preferences/com.adobe.Photoshop.plist
======================================================================
Uninstall complete
Removed 1 app, freed 12.80GB: Photoshop 2024
======================================================================
mo optimize为支持的Finder、网络、数据库和macOS服务运行有界维护。那些不必要、不安全或暂时无法完成的任务会被跳过,但有理由。用来预览通行证并排除任务或路径模式。mo optimize --dry-runmo optimize --whitelist
$ mo optimize
Optimize
⚙ System 18/32 GB RAM | 616/926 GB Disk | Uptime 6d
PERFORMANCE DIAGNOSIS
✓ No sustained high-CPU bottleneck detected
➤ DNS & Spotlight Check
→ DNS cache flushed
→ Spotlight index verified
➤ Finder Cache Refresh
→ QuickLook thumbnails refreshed
→ Icon services cache rebuilt
➤ Database Optimization
◎ Close these apps before database optimization: Safari
➤ Disk Health
→ Disk verify skipped (set MOLE_ENABLE_DISK_VERIFY=1 to enable)
======================================================================
Optimization Complete
Applied 3 optimizations
14 unchanged | 3 skipped | 1 unavailable
======================================================================
路径模式也有效,比如你可以保留一个长寿命的挂载磁盘镜像,而不会显示为分离候选镜像。/Volumes/mail
mo analyze打开终端磁盘浏览器。它支持方向键和Vim导航、筛选、多选、Finder预览以及确认的“垃圾桶”移动。默认概览中跳过外置硬盘;用特定的坐骑路径检查它们。用于审核用户拥有的临时文件,而不会将其变成自动清理目标。mo analyze /Volumesmo analyze /private/tmp
以 结尾的大小包含部分扫描的测量字节; 意味着无法测量其大小。因临时失败(如超时)而中断的结果并不能替代完整的缓存测量,后续刷新可以恢复缺失的数据。macOS不会让终端读取保持部分,除非访问发生变化。终端列表保留了最大的30个条目,因此不可读取的条目可能落入该列表之外;总数仍显示为部分扫描。目录JSON输出包含所有扫描的条目。+unknown
mo analyze --json /path包含在结果和每个条目上的 ,或。数字大小包含测量字节;零 和 并不意味着目录是空的。部分扫描仍然能成功退出,因此自动化应该会检查。完整性适用于 Mole 现有的扫描排除,且不保证提供原子文件系统快照。scan_statuscompletepartialunavailableunavailablescan_status
$ mo analyze
Analyze Disk (302.1GB free)
Select a location to explore:
▶ 1. ████████████████████████ 47.9% | Home 75.4GB
2. ███████████ 22.0% | User Library 34.6GB
3. ███████ 14.2% | Applications 22.4GB
4. █████ 10.7% | System Library 16.9GB
5. ███ 5.2% | Old Downloads (90d+) 8.2GB >3mo
mo status是一个只读的仪表盘,用于硬件、系统压力、磁盘活动、网络流量、电源和进程。
当IPv4默认路由使用隧道时,网络图会利用该接口的速率,以避免在物理运营商上再次计数相同的流量。JSON 保留了每个接口的速率,包括路由隧道;空闲的非默认隧道保持隐藏。
$ mo status
Mole Status Health ● 92 MacBook Pro · M4 Pro · 32GB · macOS 26
⚙ CPU ▦ Memory
Total ████████████░░░░░░░ 45.2% Used ███████████░░░░░░░ 58.4%
Load 0.82 / 1.05 / 1.23 (8 cores) Total 18.7 / 32.0 GB
Core 1 ███████████████░░░░ 78.3% Free ████████░░░░░░░░░░ 41.6%
Core 2 ████████████░░░░░░░ 62.1% Avail 13.3 GB
▤ Disk ⚡ Power
Used █████████████░░░░░░ 67.2% Level ██████████████████ 100%
Free 156.3 GB Status Charged
Read ▮▯▯▯▯ 2.1 MB/s Health Normal · 423 cycles
Write ▮▮▮▯▯ 18.3 MB/s Temp 58°C · 1200 RPM
⇅ Network ▶ Processes
Down ▁▁█▂▁▁▁▁▁▁▁▁▇▆▅▂ 0.54 MB/s Zombies 3 · Chrome (4242) ×3
Up ▄▄▄▃▃▃▄▆▆▇█▁▁▁▁▁ 0.02 MB/s Code ▮▮▮▮▯ 42.1%
Proxy HTTP · 192.168.1.100 Chrome ▮▮▮▯▯ 28.3%
健康评分结合了CPU、内存、磁盘容量、SMART状态、I/O、散热、电池状态和正常运行时间,并以颜色编码范围进行。按键切换猫咪,切换显示的CPU核心数,或者退出。显示偏好设置会被保存。kcq
JSON、NDJSON 和进程提醒
mo analyze --json ~/Documents返回一次性磁盘报告,表示为 JSON。mo status --json返回一次性状态快照,格式为 JSON。mo status | jq '.health_score'输出管道时会自动切换到 JSON。mo status --watch --interval 2s从温收集器流式换行分隔的 JSON 数据。mo history --json以 JSON 格式返回清理活动。会话包括(不透明度字符串,未记录身份时为空)和:用于识别的运行、遗留命令分组,或遗留标记无法区分中断与重叠运行时。录制的动作仍然可用;模糊的计数无法可靠地分配给单个跑次。空的表示没有记录到终点标记。run_idattributionruncommandambiguousended_at
$ mo analyze --json ~/Documents
{
"path": "/Users/you/Documents",
"overview": false,
"entries": [
{ "name": "Library", "path": "...", "size": 80939438080, "is_dir": true }
],
"large_files": [
{ "name": "backup.zip", "path": "...", "size": 8796093022 }
],
"total_size": 168393441280,
"total_files": 42187
}
$ mo status --json
{
"host": "MacBook-Pro",
"health_score": 92,
"cpu": { "usage": 45.2, "logical_cpu": 8 },
"memory": { "total": 34359738368, "used": 20078972109, "used_percent": 58.4 },
"disks": [],
"process_collected_at": "2026-08-29T12:30:00Z",
"process_stale": false,
"zombie_count": 3,
"zombie_parents": [
{ "pid": 4242, "name": "Google Chrome for Testing", "count": 3 }
],
"zombie_parents_complete": true,
"uptime": "3d 12h 45m"
}
僵尸诊断是只读的,不会影响健康评分或终止进程。之前 鼹鼠有一个成功的过程样本,, , 被省略,且是 。后续快速/手表快照 重新利用最新成功的样本及其原始和集合;一个实时过程样本将其设置为 。测量的摩尔平均数计数 没有僵尸。父级摘要最多包含三名已知所有者; 意味着归属不可得、不完整或被截断。process_collected_atprocess_stalezombie_countzombie_parents_completezombie_parentsnullprocess_collected_atprocess_stale: truefalse0zombie_parents_complete: false
如果有一个收集器失败,仍然打印收集到的指标,报告 在Stderr失败,成功退出,继续流媒体。它从1号出口 当 CPU、内存、磁盘或进程的指标都不可用,或 JSON 输出失败时。mo status --json--watch
Status 还支持对超过CPU阈值的进程发送只读警报。使用、或来调谐或禁用它们。--proc-cpu-threshold--proc-cpu-window--proc-cpu-alerts=false
mo purge查找可重建的项目工件,如 、 、 、 和 。它会按项目分组工件,并且只永久删除你确认的项目。过去7天内文件活动的伪影,或Mole无法验证的活动,默认取消选择。鼹鼠在可用时使用,退回。包含部署密钥对文件、嵌套的Git仓库或Git追踪文件的目录受到保护。非互动运行需要;先用来审核候选人。node_modulestarget.buildbuilddistfdfindmo purge --yesmo purge --dry-run
使用页面上下移动,/ 在项目间跳转,跳过项目并推进。 搜索项目路径和工件名称; 找到下一个匹配,且不更改选择。Enter 开启最终路径复习。报告的空间是估计值;未测量的伪影和不完整的扫描会被明确识别。hl[]X/n
清除示例输出
自定义扫描路径
运行以配置扫描目录,或直接编辑:mo purge --paths~/.config/mole/purge_paths
~/Documents/MyProjects
~/Work/ClientA
~/Work/ClientB
自定义路径配置时,Mole 只扫描这些目录。否则,它使用默认值如 、 、 和支持的代理工作树容器。证据发现并不能保存不完整的结果。伪影扫描可追溯到每个配置根节点下方六级;为更深层次的项目加根。清除是移除工作树内可重建的神器,但从不移除工作树本身。~/Projects~/GitHub~/dev
mo installer在下载、桌面、自制缓存、iCloud、邮件、Telegram及其他支持位置找到DMG、PKG、MPKG、ISO、XIP和安装ZIP文件。每件物品在移除前都会显示其大小和来源。用来预览计划。证据披露有累计时间限制。如果扫描或元数据探测失败或超时,Mole会丢弃列表并退出,不选择文件;损坏且无法读取的ZIP压缩包会被跳过。支持同名扫描根,但不遵循其下方的符号链接。选定文件在删除边界处再次与其确认身份进行核对。mo installer --dry-run
安装器示例输出
$ mo installer
Select Installers to Remove, 3.83GB, 5 selected
➤ ● Photoshop_2024.dmg 1.20GB | Downloads
● IntelliJ_IDEA.dmg 850.6MB | Downloads
● Illustrator_Setup.pkg 920.4MB | Downloads
● PyCharm_Pro.dmg 640.5MB | Homebrew
● Acrobat_Reader.dmg 220.4MB | Downloads
○ AppCode_Legacy.zip 410.6MB | Downloads
======================================================================
Installers cleaned
Removed 5 installers, freed 3.83GB
======================================================================
原创文章,作者:云东方,如若转载,请注明出处:https://www.yundongfang.com/Yun994.html
