macOS · Windows
Глубокая очистка, удаление приложений, оптимизация, анализ диска и мониторинг вашего Mac. Бесплатный CLI с открытым исходным кодом, а также нативное приложение для Mac.
English · 中文 · 繁體 · 日本語 · 한국어 · Deutsch · Français · Українська · Русский
💡 В этом репозитории живёт бесплатный CLI с открытым исходным кодом (
mo). Нужно нативное приложение? Mole for Mac загружается отдельно: очистка с просмотром перед удалением, проверенные остаточные файлы для более чем 800 приложений, обслуживание системы, детальный разбор диска, состояние системы в реальном времени и управление вентиляторами на поддерживаемых Mac. Для Windows есть нативное приложение Mole for Windows.brew install moleустанавливает только CLI.
- Всё в одном CLI: объединяет сценарии в духе CleanMyMac, AppCleaner, DaisyDisk и iStat Menus в одной команде терминала
- Глубокая очистка: удаляет кеши, журналы, остаточные файлы и осиротевшие данные приложений, освобождая место на диске
- Умное удаление приложений: удаляет приложения вместе с LaunchAgents, настройками и остаточными файлами
- Анализ диска: наглядно показывает, чем занят диск, в интерактивном TUI, находит крупные файлы и позволяет переходить между каталогами
- Обслуживание системы: сбрасывает кеш DNS, обновляет QuickLook и значки, оптимизирует системные базы данных
- Мониторинг в реальном времени: показывает загрузку CPU, память, дисковый I/O, сетевой трафик и статистику процессов
Mole требует macOS 12 или новее и работает на Mac с процессорами Intel и Apple Silicon. Если Homebrew больше не поддерживает вашу версию macOS, воспользуйтесь установкой через скрипт.
Установка через Homebrew
brew install moleИли через скрипт
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bashЧерез ИИ-агента
Скажите своему агенту:
Install Mole for me by reading https://raw.githubusercontent.com/tw93/Mole/main/llms.txt
Или установите скилл сами. С ним Claude Code, Codex, Cursor и другие агенты перед любым удалением показывают список через --dry-run, а удаление приложений и шаги с правами администратора оставляют вам. Обновление: npx skills update -g -y.
npx skills add tw93/Mole -a claude-code codex cursor -g -yКак плагин хоста: в Claude Code /plugin marketplace add tw93/Mole, затем /plugin install mole@mole, в Codex codex plugin marketplace add tw93/Mole, затем codex plugin add mole@mole.
Запуск
mo # Интерактивное меню
mo clean # Глубокая очистка + остатки уже удалённых приложений
mo uninstall # Удалить установленные приложения вместе с их остатками
mo optimize # Обновить кеши и службы
mo analyze # Наглядный обозреватель диска (или 'mo analyse')
mo status # Панель состояния системы в реальном времени
mo purge # Удалить артефакты сборки проектов
mo installer # Найти и удалить файлы установщиков
mo slim # Удалить код для Intel из универсальных приложений
mo touchid # Настроить Touch ID для sudo
mo completion # Настроить автодополнение в командной оболочке
mo update # Обновить Mole
mo update --nightly # Обновить до свежей сборки из main (только для установки скриптом)
mo remove # Удалить Mole из системы
mo --help # Показать справку
mo --version # Показать установленную версиюБезопасный предпросмотр
mo clean --dry-run
mo uninstall --dry-run
mo optimize --dry-run
mo purge --dry-run
mo installer --dry-run
mo slim --dry-run
mo history
mo history --json
mo clean --dry-run --debug # Предпросмотр + подробные журналы
mo optimize --whitelist # Управление защищёнными правилами оптимизации
mo clean --whitelist # Управление защищёнными кешами
mo purge --paths # Настроить каталоги для поиска проектов
mo analyze /Volumes # Анализировать только внешние диски
mo analyze /private/tmp # Просмотреть временные каталоги пользователяДругие способы установки
Чтобы установить конкретный выпуск, передайте любой тег со страницы релизов, с ведущей V или без неё. Чтобы следить за веткой разработки, передайте main:
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 -- mainmain устанавливает невыпущенный код из ветки по умолчанию, поэтому возможны шероховатости. latest по-прежнему работает как устаревший псевдоним для main; несмотря на название, он не устанавливает новейший стабильный выпуск.
Обычно скрипт устанавливает Mole в /usr/local/bin, из-за чего может потребоваться пароль администратора. Установите его в каталог, принадлежащий вашему пользователю, если хотите, чтобы будущие запуски mo 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"Добавьте такой же экспорт PATH в ~/.zshrc или в профиль вашей оболочки, чтобы он действовал и в новых терминалах. Mole обновляет именно тот экземпляр, который вы запустили, поэтому он продолжит использовать этот каталог. Команды, изменяющие системные файлы, всё же могут запросить права администратора.
Nix
На macOS пользователи Nix могут установить flake из ветки main, где есть невыпущенные изменения:
nix profile install github:tw93/mole/main#mole
nix profile upgrade mole
nix profile remove moleДля декларативной установки добавьте github:tw93/mole/main как flake input и используйте пакет packages.${system}.mole. Обновляйте и удаляйте Mole через Nix: mo update и mo remove не меняют установки, которыми управляет Nix.
В Windows (Windows CLI)
iwr -useb https://raw.githubusercontent.com/tw93/Mole/windows/quick-install.ps1 | iexMole распространяется только через Homebrew, этот репозиторий и mole.fit. molemac.com, moleapp.net и molefit.com не относятся к Mole, а приложение для Windows на mole.bluecatbot.com является отдельным проектом сообщества.
Mole умеет удалять файлы, поэтому он проверяет пути, защищает общие и системные расположения и запрашивает подтверждение, когда действие того требует. Если Mole не может убедиться, что объект безопасно изменять, он пропускает его или отказывается от действия.
clean,uninstall,purge,installer,slimиremoveмогут удалять файлы, поэтому сначала просматривайте их с--dry-run, а при необходимости добавляйте--debug- Запускайте Mole без
sudo: он запрашивает права администратора только тогда, когда они действительно нужны mo uninstall,mo analyzeиmo slimпо умолчанию перемещают удаляемое в Корзину после подтверждения;clean,purgeиinstallerудаляют безвозвратно.mo uninstall --permanentпропускает Корзину- Действия по очистке записываются в
~/Library/Logs/mole/operations.log; просмотреть их можно командойmo history, а отключить запись можно переменнойMO_NO_OPLOG=1 - Защищайте кеши через
mo clean --whitelist, а задачи обслуживания черезmo optimize --whitelist - Если файл белого списка не читается,
clean,purgeиoptimizeостанавливаются, а не работают без него
Загляните в SECURITY.md и SECURITY_AUDIT.md, чтобы узнать, как сообщать о проблемах, какие границы безопасности действуют и какие ограничения есть сейчас.
Примеры ниже сокращены. Доступные пункты, размеры и причины пропуска зависят от вашего Mac.
mo clean просматривает заведомо безопасные кеши, журналы, временные файлы, артефакты инструментов разработки и остатки приложений, которые уже не установлены. По умолчанию команда очищает ~/.Trash; чтобы сохранить его содержимое, отметьте строку Trash в mo clean --whitelist, в том же меню, где защищаются нужные вам кеши. Корзины томов, например /Volumes/*/.Trashes, при этом не очищаются. Выбор сохраняется в ~/.config/mole/whitelist. Прежде чем добавлять собственные пути, откройте меню и нажмите Enter, чтобы сохранить выбор, а затем допишите пути по одному в строке. Существующий файл заменяет необязательные значения по умолчанию, но встроенная защита продолжает действовать.
$ 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 clean.
Личные данные, включая настройки и плагины, по умолчанию сохраняются. Нажмите D в предварительном просмотре удаления, чтобы выбрать отдельные пути данных. С mo uninstall --with-data эти данные выбраны заранее, кроме профилей браузеров и контейнеров App Group; предпросмотр показывает их отдельно, а D по-прежнему позволяет сохранить любой путь. После удаления ссылки на исчезнувшие пути в конфигурациях shell, Hook или MCP показываются только как имя файла и номер строки; Mole не изменяет эти конфигурации.
$ 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, 4.20GB
✓ /Applications/Adobe Photoshop 2024/Adobe Photoshop 2024.app
Personal data kept:
~/Library/Application Support/Adobe/Adobe Photoshop 2024
~/Library/Preferences/com.adobe.Photoshop.plist
D choose personal data
======================================================================
Uninstall complete
Removed 1 app, freed 4.20GB: Photoshop 2024
======================================================================
mo optimize выполняет ограниченный набор задач обслуживания для поддерживаемых служб Finder, сети, баз данных и macOS. Задачи, которые не нужны, небезопасны в данный момент или недоступны, пропускаются с указанием причины. С помощью mo optimize --whitelist можно исключить отдельные задачи или шаблоны путей, например, постоянно смонтированный образ диска в /Volumes/mail, который не должен попадать в кандидаты на отключение.
$ mo optimize
Optimize
⚙ System 18/32 GB RAM | 616/926 GB Disk | Uptime 6d
PERFORMANCE DIAGNOSIS
✓ No sustained high-CPU bottleneck detected
➤ Finder Cache Refresh
→ QuickLook thumbnails refreshed
→ Icon services cache rebuilt
➤ Network Cache Refresh
→ DNS cache refreshed
➤ Database Optimization
◎ Close these apps before database optimization: Safari
➤ Disk Health
→ Disk verify skipped
======================================================================
Optimization Complete
Applied 2 optimizations
13 unchanged | 3 skipped | 1 unavailable
======================================================================
mo analyze открывает обозреватель диска прямо в терминале. Он поддерживает стрелки и навигацию в стиле Vim, фильтрацию, выбор нескольких объектов, предпросмотр в Finder и перемещение в Корзину после подтверждения. Внешние диски не попадают в обзор по умолчанию; чтобы их проверить, используйте mo analyze /Volumes или укажите конкретную точку монтирования. Команда mo analyze /private/tmp позволяет просмотреть временные файлы пользователя, не превращая их в цели автоматической очистки. При пофайловом сканировании клоны APFS, у которых все блоки общие, учитываются один раз; быстрая оценка папок может повторно учитывать общие блоки.
Размер, оканчивающийся на +, содержит измеренные байты неполного сканирования; unknown означает, что размер измерить не удалось. Результаты, оборванные временными сбоями вроде тайм-аутов, не заменяют собой полные измерения из кеша, а следующее обновление может восстановить недостающие данные. Папки, которые macOS не даёт прочитать из терминала, остаются неполными, пока не изменятся права доступа. Список в терминале хранит 30 крупнейших записей, поэтому нечитаемая запись может в него не попасть; при этом итог всё равно укажет на неполное сканирование. Вывод каталога в JSON включает все просканированные записи.
mo analyze --json /path добавляет поле scan_status как к результату, так и к каждой записи: complete, partial или unavailable. Числовые размеры содержат измеренные байты; ноль вместе с unavailable не означает, что каталог пуст. Неполное сканирование всё равно завершается успешно, поэтому автоматизации следует проверять scan_status. Полнота определяется в рамках уже действующих исключений сканирования Mole и не гарантирует атомарный снимок файловой системы.
$ 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, температуру, состояние батареи и время работы системы, а диапазоны выделяются цветом. Нажмите k, чтобы показать или скрыть кота, c, чтобы изменить число отображаемых ядер CPU, и q, чтобы выйти; настройки отображения сохраняются.
JSON, NDJSON и оповещения о процессах
mo analyze --json ~/Documentsвозвращает разовый отчёт о диске в формате JSONmo status --jsonвозвращает разовый снимок состояния в формате JSONmo status | jq '.health_score'автоматически переключается на JSON, когда вывод передаётся по конвейеруmo status --watch --interval 2sтранслирует JSON, разделённый переводами строк (NDJSON), из уже прогретого сборщика данныхmo history --jsonвозвращает историю очистки в формате JSON. Сессии содержатrun_id(непрозрачная строка, пустая, если идентификатор не записывался) иattribution:runдля опознанных запусков,commandдля устаревшей группировки по командам илиambiguous, когда по старым меткам невозможно отличить прерывание от перекрывающихся запусков. Записанные действия остаются доступными, но неоднозначные счётчики нельзя надёжно отнести к отдельным запускам. Пустоеended_atозначает, что метка завершения не записанаmo uninstall --listвозвращает установленные приложения в формате JSON с полямиname,bundle_id,source,uninstall_name,pathиsize
$ 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"
}
Диагностика процессов-зомби работает только на чтение: она не влияет на оценку состояния и не завершает процессы. Пока Mole не получит первую успешную выборку процессов, поля process_collected_at, process_stale, zombie_count и zombie_parents_complete отсутствуют, а zombie_parents имеет значение null. Последующие быстрые снимки и снимки в режиме --watch повторно используют последнюю успешную выборку с её исходным process_collected_at и выставляют process_stale: true; свежая выборка процессов выставляет false. Значение 0 означает, что Mole выполнил измерение и не нашёл ни одного зомби. Сводка по родительским процессам содержит не более трёх известных владельцев; zombie_parents_complete: false означает, что определить принадлежность не удалось, удалось лишь частично или список был обрезан.
Если один из сборщиков данных даёт сбой, mo status --json всё равно выводит собранные метрики, сообщает о сбое в stderr и завершается успешно, так же, как --watch продолжает трансляцию. Код выхода 1 возвращается только тогда, когда недоступна ни одна из метрик CPU, памяти, диска и процессов или когда не удалось вывести JSON.
Status также умеет сообщать о процессах, не вмешиваясь в их работу,, которые долго держатся выше порога загрузки CPU. Настроить или отключить такие оповещения можно через --proc-cpu-threshold, --proc-cpu-window или --proc-cpu-alerts=false.
mo purge находит артефакты проектов, которые можно собрать заново: node_modules, target, .build, build и dist. Он группирует артефакты по проектам и безвозвратно удаляет только то, что вы подтвердили. Артефакты, файлы которых менялись за последние 7 дней, а также те, активность которых Mole не может проверить, по умолчанию не выбраны. Mole использует fd, если он доступен, а иначе переходит к find, и защищает каталоги с файлами ключевых пар для развёртывания, вложенными репозиториями Git и файлами под контролем Git. Неинтерактивный запуск требует mo purge --yes; чтобы сначала просмотреть кандидатов, используйте mo purge --dry-run.
Page Up/Down или h/l листают страницу, [/] перемещают между проектами, а X пропускает проект и переходит к следующему. / ищет по путям проектов и названиям артефактов, n находит следующее совпадение, не меняя выбор, а Enter открывает финальный просмотр путей. Указанный объём является оценкой; неизмеренные артефакты и неполные сканирования отмечаются явно.
Пример вывода purge
$ mo purge
Purge Project Artifacts
Select Artifacts to Purge
6.00GB, 2 selected
➤ ● ┌ ~/Projects/website 3.80GB | node_modules | 28d
○ └ ~/Projects/website 186MB | dist | <1d
● ┌ ~/Projects/rust-app 2.20GB | target | 2mo
○ └ ~/Projects/rust-app 22MB | dist | <7d
======================================================================
Purge complete
Estimated space freed: 6.00GB | Items: 2 | Free: 223.5GB
======================================================================
Собственные пути сканирования
Выполните mo purge --paths, чтобы настроить каталоги сканирования, или отредактируйте ~/.config/mole/purge_paths напрямую:
~/Documents/MyProjects
~/Work/ClientA
~/Work/ClientBЕсли заданы собственные пути, Mole сканирует только эти каталоги. Иначе он использует значения по умолчанию: ~/Projects, ~/GitHub, ~/dev и поддерживаемые контейнеры worktree агентов. Неполный результат поиска не сохраняется. Сканирование артефактов опускается на шесть уровней ниже каждого заданного корня; для более глубоко вложенных проектов добавьте более близкий корень. Purge удаляет пересобираемые артефакты внутри worktree, но никогда не удаляет сами worktree.
mo installer находит файлы DMG, PKG, MPKG, ISO, XIP и ZIP-установщики в Загрузках, на Рабочем столе, в кешах Homebrew, iCloud, Mail, Telegram и других поддерживаемых расположениях и перед удалением показывает размер и источник каждого объекта. На поиск отведён суммарный лимит времени: если сканирование или запрос метаданных завершается ошибкой или тайм-аутом, Mole отбрасывает список и выходит, ничего не выбрав. Повреждённые и нечитаемые ZIP-архивы пропускаются; корни сканирования, заданные символьными ссылками, поддерживаются, но ссылки внутри них не раскрываются, а выбранные файлы на границе удаления повторно сверяются с подтверждённой идентичностью.
Пример вывода installer
$ 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
======================================================================
mo slim удаляет код для Intel из универсальных приложений на Mac с Apple Silicon. Он показывает приложения, которые принадлежат вам и подписаны Developer ID, вместе с размером их кода для Intel, и изменяет только выбранные. Каждое приложение сначала облегчается на копии, причём затрагиваются только основные исполняемые файлы и вложенный код с собственной подписью; копия заменяет приложение, только если сохранила код для Apple Silicon и прошла проверки подписи кода и Gatekeeper, а оригинал перемещается в Корзину. Приложения из App Store, приложения Apple, приложения с настройкой «Открывать в Rosetta», приложения других пользователей и запущенные приложения не затрагиваются. Инструменты разработчика не нужны, а обновление приложения возвращает код для Intel.
Настройка Raycast и Alfred
Установите пять команд быстрого запуска для Clean, Uninstall, Optimize, Analyze и Status:
curl -fsSL https://raw.githubusercontent.com/tw93/Mole/main/scripts/setup-quick-launchers.sh | bashСкрипт добавляет команды Raycast, а если найдёт настройки Alfred, то и соответствующие рабочие процессы Alfred с ключевыми словами clean, uninstall, optimize, analyze и status.
Для Raycast нужно одно ручное действие:
- Откройте Raycast Settings > Extensions > Script Commands.
- Добавьте
~/Library/Application Support/Raycast/script-commandsкак каталог со скриптами. - Выполните в Raycast Reload Script Directories.
Команды сами определяют Terminal, iTerm2, Alacritty, kitty, WezTerm, Ghostty, Hyper, WindTerm и Warp. Чтобы выбрать конкретный терминал, задайте MO_LAUNCHER_APP=<name>; также Mole можно запускать прямо в Kaku.
Спасибо всем, кто помогал создавать Mole. Подпишитесь на них! ❤️
Настоящие отзывы пользователей, которые рассказывали о Mole в X.
Посмотрите видеоурок о Mole от PAPAYA 電腦教室.
- Самый прямой способ поддержать разработку Mole: приобрести Mole for Mac
- Если Mole вам помог, поставьте звезду, расскажите о нём или откройте issue либо PR
- У меня двое котов, TangYuan и Coke; если Mole хоть немного облегчил вам жизнь, можете угостить их консервами 🥩
Эти замечательные люди уже угостили 🐱
Mole представляет собой программное обеспечение с открытым исходным кодом под лицензией GPL-3.0; подробности в LICENSE. Любая изменённая версия, которую вы распространяете, должна оставаться под той же лицензией. Если вы делаете форк Mole, пожалуйста, дайте ему другое название и укажите Mole как первоисточник. Mole for Mac является отдельным проприетарным приложением, а Mole здесь надолго.

