项目快照:tw93/Mole,约 74,296 个 Star,2,669 个 Fork;最新推送时间 2026-11-09T03:34:11Z。本文基于仓库公开资料撰写。
项目地址:https://github.com/tw93/Mole · https://mole.fit

项目速览(TL;DR)
Mole 是面向 macOS 的开源命令行清理与系统维护工具,命令入口为 mo。根据 README,它覆盖磁盘清理、应用卸载、磁盘分析、维护操作和实时状态监控;另有独立的 Mac 与 Windows 原生应用,原生应用与通过 Homebrew 安装的 CLI 并非同一产品。
仓库资料显示,项目主要语言为 Shell,许可证为 GPL-3.0,默认分支为 main。提供的 GitHub 元信息记录为 74,296 Stars、2,669 Forks;这些是资料中的仓库数据,不代表具体版本的兼容性或运行效果。
- macOS CLI 要求 macOS 12 或更新版本,支持 Intel 与 Apple Silicon。
- 安全预览可使用
--dry-run;README 明确提示多个命令具有删除文件的能力。 - 仓库同时包含 Windows CLI 与 Linux CLI 的安装入口,但其说明位于各自分支文档中。
定位与目标用户
本项目定位为终端中的本机维护工具,将若干清理和诊断操作集中到 mo 命令中。README 将其描述为结合清理、卸载、磁盘查看与系统状态工作流的工具,而不是单一的缓存删除脚本。
目标使用者包括需要检查磁盘占用、清理应用残留,或希望从终端执行基础系统维护的 Mac 用户。由于命令会处理本地文件,使用者应能识别待处理内容,并在执行删除类操作前审阅预览结果。
项目还提供 Windows 与 Linux CLI 文档入口,但本文重点依据 README 中明确给出的 macOS CLI 信息。各平台原生应用的功能、限制和许可信息,官方仓库未提供该信息,建议以最新 README 为准。
核心功能
各子命令针对不同的本地维护对象;触发方式是执行对应的 mo 子命令,具体扫描规则和输出细节应以运行时界面及 README 为准。以下说明仅陈述资料明确列出的用途,不推断未披露的内部算法。
| 能力 | 触发方式 | 处理对象与结果 | 执行前检查 |
|---|---|---|---|
| 深度清理 | mo clean |
清理缓存、日志、应用残留及孤立应用数据;README 还说明会处理已卸载应用留下的残留。 | 使用 mo clean --dry-run 预览。 |
| 应用卸载 | mo uninstall |
卸载已安装应用,并处理相关 LaunchAgents、偏好设置和残留。 | 使用 mo uninstall --dry-run 检查候选项。 |
| 磁盘分析 | mo analyze 或 mo analyse |
以交互式终端界面查看磁盘使用情况、定位大文件并浏览目录。 | 可向命令提供目标路径,例如 mo analyze /Volumes。 |
| 系统维护 | mo optimize |
刷新缓存与服务;README 列举 DNS、QuickLook、图标和系统数据库相关维护。 | 使用 mo optimize --dry-run 预览;白名单可通过 mo optimize --whitelist 管理。 |
| 实时监控 | mo status |
展示 CPU、内存、磁盘 I/O、网络流量与进程状态。 | README 未提供采样周期、历史保存或导出格式。 |
| 项目构建产物清理 | mo purge |
扫描并清理项目构建产物;扫描目录可用 mo purge --paths 配置。 |
使用 mo purge --dry-run 预览。 |
| 安装器与通用二进制瘦身 | mo installer、mo slim |
前者查找安装器文件;后者从通用应用中移除 Intel 代码。 | 分别使用对应命令的 --dry-run 预览。 |
对于会删除内容的命令,预览不是实际执行结果的替代品,而是供操作者核对候选对象的步骤。README 还提供 mo history 与 mo history --json 用于查看历史,但没有在所给资料中说明历史记录保存位置或保留策略。
系统架构与关键模块
从仓库资料可确认的外部结构,是一个 Shell 主语言项目,提供统一命令入口和多个子命令;Go 模块清单则表明项目同时包含 Go 模块及 TUI(终端用户界面)相关依赖。仅凭这些资料不能完整还原进程边界、模块目录或各命令的实现语言。
命令入口与操作边界
用户通过 mo 进入交互菜单或直接调用子命令,例如 mo clean、mo analyze 和 mo status。清理、卸载和维护操作各自有对应的命令入口,部分操作支持 --dry-run;这提供了按任务检查和执行的边界,但 README 未说明所有子命令是否共享同一套扫描器或执行引擎。
交互式磁盘分析
README 将磁盘分析描述为交互式 TUI,可查看磁盘使用情况、发现大文件并浏览目录。Go 模块清单列出 Bubble Tea 与 Lip Gloss,这些依赖名称与终端界面功能相符;依赖清单本身不能证明它们分别用于哪些页面或具体组件,因此这里不将其描述为已确认的模块映射。
系统状态采集
mo status 面向 CPU、内存、磁盘 I/O、网络和进程状态提供实时展示。Go 模块清单包含 github.com/shirou/gopsutil/v4,但提供的材料没有说明它与哪些指标采集路径直接对应,也未披露权限差异、平台适配细节或采样频率。
仓库目录树、内部 API、模块依赖图和执行流程文档均未包含在资料中。官方仓库未提供该信息,建议以最新 README 为准。
依赖与运行环境
macOS CLI 的最低系统版本和处理器支持范围在 README 中有明确说明。Go 模块清单还记录了 Go 版本及若干依赖,但这并不等同于已确认每位 CLI 用户都必须自行安装 Go;Homebrew 和脚本安装路径均由 README 提供。
| 项目 | 资料记载 | 对使用者的含义 |
|---|---|---|
| macOS 系统要求 | macOS 12 或更新版本 | 低于此版本的兼容性未由所给资料确认。 |
| 处理器架构 | Intel、Apple Silicon | README 声明两类 Mac 均受支持。 |
| 主要语言 | GitHub 元信息:Shell | 该元信息不代表仓库中只有 Shell 源文件。 |
| Go 版本 | go.mod:go 1.26.0;工具链 go1.26.10 |
这是提供的模块文件声明;从源码构建的完整步骤未包含在资料中。 |
| 终端界面依赖 | github.com/charmbracelet/bubbletea、github.com/charmbracelet/lipgloss |
依赖来自 go.mod,具体调用位置未提供。 |
| 系统指标依赖 | github.com/shirou/gopsutil/v4 |
列于直接依赖中;资料未给出指标采集实现细节。 |
| 安装方式 | Homebrew 或安装脚本 | brew install mole 安装的是 CLI,不是原生 Mac 应用。 |
Windows 与 Linux CLI 的 README 分别位于 windows 和 linux 分支入口。其具体系统版本、依赖条件及功能差异,官方仓库未提供该信息,建议以最新 README 为准。
快速开始
最小使用闭环是安装 CLI、执行一个无删除副作用的版本查询,并进入交互菜单确认命令可用。以下命令来自 README;Homebrew 安装需要本机已有可用的 Homebrew 环境,该前置条件的安装方法不在所给资料范围内。
# 1. 安装 Mole CLI
brew install mole
# 2. 查看已安装版本
mo --version
# 3. 打开交互式菜单
mo其中,mo --version 输出已安装版本,mo 启动交互菜单。若要尝试清理功能,先执行预览命令并检查结果,不要把首次验证直接设为实际删除操作。
# 预览深度清理候选项,不执行删除
mo clean --dry-run
# 查看可用命令帮助
mo --help预览命令本身不会完成实际清理;只有确认输出中的项目符合预期后,操作者才应决定是否执行实际命令。README 说明 Mole 会在需要管理员权限时请求权限,并建议不要以 sudo 运行 Mole。
配置说明
README 资料中可确认的配置入口主要是白名单、项目扫描路径和安装前缀,没有提供配置文件字段或环境变量清单。下表将这些入口与缺失项分开列出,避免把命令行选项误写成环境变量。
| 字段名 | 类型 | 默认值 | 作用 |
|---|---|---|---|
--whitelist(mo optimize) |
命令行选项 | 未提供 | 管理优化操作的受保护规则。 |
--whitelist(mo clean) |
命令行选项 | 未提供 | 管理清理操作的受保护缓存规则。 |
--paths(mo purge) |
命令行选项 | 未提供 | 配置项目扫描目录;具体存储格式及默认扫描目录未在资料中列出。 |
--prefix(安装脚本) |
脚本参数,后接路径 | /usr/local/bin |
设置安装位置;示例使用 $HOME/.local/bin。 |
PATH |
Shell 环境变量 | 未提供 | 用户目录安装示例要求将 $HOME/.local/bin 加入 PATH。 |
| 配置文件与其他环境变量 | 未提供 | 未提供 | 官方仓库未提供该信息,建议以最新 README 为准。 |
白名单和路径设置的交互方式、持久化格式及重置方法没有在所给资料中说明。实际配置时,应以对应子命令显示的界面和当前 README 为准,不要从表格中的默认值栏推断未记录的行为。
进阶用法
进阶使用的重点是将预览、路径范围和安装来源纳入操作流程。下面列出的命令均来自 README,适用于本机维护;清理范围仍应由操作者逐项核对。
按任务预览
多个会更改或删除内容的命令支持 --dry-run。预览后可以再加 --debug 获取清理过程的详细日志,或使用历史查询检查已有操作记录。
# 分别预览应用卸载、系统优化和项目产物清理
mo uninstall --dry-run
mo optimize --dry-run
mo purge --dry-run
# 预览清理并显示详细日志
mo clean --dry-run --debug
# 查看操作历史及 JSON 格式结果
mo history
mo history --json限定磁盘分析路径
磁盘分析命令可接收目标路径,README 示例分别面向外部卷和用户拥有的临时目录。限定路径有助于把检查目标表达清楚,但资料未说明所有路径类型是否均可访问,也未声明输出会包含哪些元数据。
# 分析外部卷
mo analyze /Volumes
# 检查用户拥有的临时目录
mo analyze /private/tmp安装来源与更新策略
脚本支持指定发布标签或使用 main 安装开发分支代码。README 明确指出 main 包含尚未发布的代码,可能有粗糙之处;latest 是旧别名,实际指向 main,并不表示最新稳定版本。
若希望避免日常更新时因安装位置要求管理员密码,README 给出将脚本安装到用户目录并调整 PATH 的做法。需要修改系统所有者文件的命令仍可能请求管理员权限。
可观测性与运维
CLI 的运行观察入口包括实时状态页面、操作历史、帮助信息和版本查询。它们分别用于查看当前机器指标、回顾操作记录、查阅命令选项及确认安装版本;资料未声明远程监控、指标导出、告警或集中管理能力。
mo status:查看 CPU、内存、磁盘 I/O、网络流量与进程状态。mo history:查看操作历史;mo history --json请求 JSON 格式输出。mo --help与mo --version:查看帮助和已安装版本。mo update:更新 Mole;脚本安装可用mo update --nightly跟踪最新未发布的main构建。mo completion:设置 Shell Tab 补全。
运维时应记录安装来源、是否跟踪开发分支以及清理操作使用的预览结果。上述记录建议属于根据本文作者的经验判断;README 未提供组织级运维规范、日志保留期限或自动化调度指南。
安全与合规边界
Mole 会访问并可能删除本机文件,安全边界主要落在路径校验、系统位置保护、操作者确认和权限提升上。README 表示,当工具无法确认某项内容可安全更改时,会跳过或拒绝处理。
- 对
clean、uninstall、purge、installer、slim和remove,README 建议先使用--dry-run;需要进一步检查时可加入--debug。 - 不要使用
sudo启动 Mole;README 说明需要管理员权限的操作会自行请求。 - 操作前应核对目标路径、应用名称和候选文件,尤其是在系统维护与应用卸载场景中。
- 清理个人或组织设备前,应确认自己有权管理相关数据,并遵守设备所属组织的数据保留政策。
后两项属于根据本文作者的经验判断。README 未提供企业数据分类、隐私数据处理规范、审计合规认证或集中审批机制;此类要求应由设备所有者按本地政策评估。
许可证与商用条款
仓库元信息与 LICENSE 文件表明,项目使用 GNU General Public License(GNU 通用公共许可证)版本 3,即 GPL-3.0。GPL-3.0 不因软件免费提供而禁止收费分发;不过,复制、修改和分发时须遵守许可证正文规定的条件。
LICENSE 前言说明,许可证允许用户运行未修改程序,并规定分发或修改相关作品时的义务;具体义务取决于你如何传播程序、提供源代码及处理修改版本。商用本身不能仅凭许可证名称判断全部法律义务,使用者应依据实际分发方式阅读完整 LICENSE。
若分发程序副本或基于项目制作并分发修改版本,须按 GPL-3.0 的适用条款处理许可证文本、版权信息、源代码提供及修改版本标识等事项。许可证的具体适用范围与履行方式,以仓库 LICENSE 为准;该说明不构成法律意见。
局限性与已知限制
已确认的限制集中在平台版本门槛、开发分支稳定性和部分功能信息缺失。下列未披露项目不应被当作产品保证或缺陷结论。
- macOS CLI 要求 macOS 12 或更新版本;低于该版本的支持情况没有由资料确认。
- 通过 Homebrew 安装的是 CLI,不包含独立的 Mac 原生应用。
- 安装
main会获取未发布代码;README 提醒该分支可能存在粗糙之处。 - 性能基准、清理速度、空间回收量、资源开销、支持文件数量及错误率均未在资料中提供。
- 历史记录的保存位置、保留时长、状态指标采样周期和输出接口未在资料中提供。
- 各平台的完整功能对照、应用兼容清单及故障恢复机制未在资料中提供。
对于上述空缺,官方仓库未提供该信息,建议以最新 README 为准。不能据此推定功能不存在,也不能推定未说明的能力已经获得支持。
适合谁 / 不适合谁
是否采用该工具,应由操作对象、平台版本、权限流程和维护方式决定。以下信号仅依据仓库明确公开的命令与行为整理,适用于使用前的筛选。
适合的使用者
- 使用 macOS 12 或更新版本,且需要在 Intel 或 Apple Silicon Mac 上运行 CLI 的个人用户。
- 希望从终端检查磁盘目录、大文件、应用卸载残留或项目构建产物,并愿意在执行前审阅预览结果的人。
- 需要通过
mo status查看本机 CPU、内存、磁盘 I/O、网络和进程状态的人。 - 能自行判断要处理的本地文件,并接受需要时由工具请求管理员权限的设备维护者。
- 需要阅读或修改 GPL-3.0 项目源码,并愿意按许可证条件分发修改版本的开发者。
不适合的使用者
- 运行低于 macOS 12 的 Mac,且将兼容性视为硬性要求的使用者。
- 需要无人值守、批量审批、企业集中策略或服务等级承诺,但要求这些能力已由项目明确保证的团队;资料未提供相关保证。
- 不能接受本机清理命令触及文件,或无法审阅预览结果的设备使用者。
- 只需要独立 Mac 原生应用,却误将
brew install mole当作原生应用安装来源的用户;README 说明该命令只安装 CLI。 - 不能接受 GPL-3.0 分发条件,且计划对项目修改版本进行分发的组织;应先评估许可证义务。
常见问题与排查(FAQ / Troubleshooting)
排查时先区分安装来源、平台版本和实际调用的命令,再对照帮助与预览输出。资料没有给出完整错误码表或故障诊断手册,因此以下回答只覆盖 README 明确提及的情形。
为什么安装 Homebrew 包后没有 Mac 图形应用?
brew install mole 安装的是免费开源 CLI。README 将 Mole for Mac 描述为单独下载的原生应用,因此不能把 CLI 安装结果当作原生应用已安装的证据。
命令需要管理员权限时应如何处理?
不要以 sudo 运行 Mole。README 说明需要管理员权限的操作会请求管理员权限;若某项操作被拒绝或跳过,先确认目标路径与当前用户权限,不要通过扩大执行范围来替代检查。
如何确认删除类操作将处理哪些内容?
先运行对应的 --dry-run,检查候选项;必要时加 --debug 查看清理的详细日志。README 还建议使用 mo history 查看历史记录,但未说明历史记录的完整保留策略。
如何判断安装的是稳定发布版本还是开发分支?
可以查看安装时采用的来源,并运行 mo --version 查询已安装版本。README 指出,脚本参数 main 安装默认分支的未发布代码,latest 是指向 main 的旧别名,并非最新稳定版。
脚本安装时如何减少后续更新对管理员密码的依赖?
README 示例将安装位置设为用户拥有的 $HOME/.local/bin,并把该目录加入 PATH。系统所有者文件相关操作仍可能请求管理员权限,调整安装目录并不能取消该权限边界。
遇到未记录的错误或功能差异怎么办?
先运行 mo --help 查看当前版本提供的命令,再核对对应平台 README 与安装分支。错误码、日志文件路径、支持矩阵及自动修复步骤,官方仓库未提供该信息,建议以最新 README 为准。
项目地址与资源
以下链接均来自仓库资料,用于查阅源码、CLI 文档及项目官方入口。Windows 与 Linux CLI 文档分别位于对应分支的 README 页面。



