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, встановіть Mole скриптом.
Встановлення через Homebrew
brew install moleАбо скриптом
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bashУ Windows (CLI для Windows)
iwr -useb https://raw.githubusercontent.com/tw93/Mole/windows/quick-install.ps1 | iexMole поширюється лише через Homebrew, цей репозиторій GitHub і mole.fit для застосунків Mac і Windows. Сайти, що пропонують застосунок «на основі Mole» або просять вставити закодовану команду в Термінал, не мають стосунку до Mole.
Запуск
mo # Інтерактивне меню
mo clean # Глибоке очищення + залишки вже видалених застосунків
mo uninstall # Видалити встановлені застосунки разом із залишками
mo optimize # Оновити кеші та служби
mo analyze # Наочний огляд диска (або 'mo analyse')
mo status # Панель стану системи в реальному часі
mo purge # Прибрати артефакти збирання проєктів
mo installer # Знайти й видалити інсталятори
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 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 обходилися без пароля, встановіть Mole в теку, що належить вашому користувачу:
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 і використовуйте його пакет packages.${system}.mole. Оновлюйте й видаляйте Mole через Nix: mo update і mo remove не чіпають інсталяції, якими керує Nix.
Mole вміє видаляти файли, тому перевіряє шляхи, захищає спільні й системні розташування та просить підтвердження, коли дія цього потребує. Якщо Mole не може довести, що елемент безпечно змінювати, він його пропускає або відмовляється з ним працювати.
clean,uninstall,purge,installerіremoveможуть видаляти файли, тож спершу перегляньте, що саме зміниться, з--dry-run, а за потреби додайте--debug- Запускайте Mole без
sudo: права адміністратора він запитує лише тоді, коли вони справді потрібні mo analyzeпереміщує вибрані елементи до Смітника лише після підтвердження- Дії з очищення записуються до
~/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 у mo clean --whitelist, у тому самому меню, де захищаються потрібні вам кеші. Вибір зберігається у ~/.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 у попередньому перегляді видалення, щоб вибрати окремі шляхи даних. Після видалення посилання на видалені шляхи в конфігураціях 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 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 видаляє артефакти, які можна зібрати заново, всередині робочих дерев, але ніколи не самі робочі дерева.
mo installer знаходить файли DMG, PKG, MPKG, ISO, XIP і ZIP-архіви з інсталяторами в Завантаженнях, на Робочому столі, у кешах Homebrew, iCloud, Mail, Telegram та інших підтримуваних місцях і перед видаленням показує розмір і джерело кожного елемента. Пошук має сумарне обмеження в часі: якщо сканування чи перевірка метаданих завершується збоєм або тайм-аутом, Mole відкидає список і виходить, нічого не вибравши. Пошкоджені й нечитабельні ZIP-архіви пропускаються. Символьні посилання як корені сканування підтримуються, але посилань усередині них Mole не відстежує, а вибрані файли ще раз звіряються з підтвердженою ідентичністю безпосередньо перед видаленням.
Приклад виводу 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
======================================================================
Налаштування 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 for Mac: це найпряміший спосіб підтримати розробку Mole
- Якщо Mole вам допоміг, поставте зірку, розкажіть про нього або відкрийте issue чи PR
- У мене двоє котів, TangYuan і Coke; якщо Mole хоч трохи полегшив вам життя, можете пригостити їх консервами 🥩
Mole є відкритим програмним забезпеченням під ліцензією GPL-3.0; подробиці в LICENSE. Будь-яка змінена версія, яку ви поширюєте, має залишатися під тією самою ліцензією. Якщо ви робите форк Mole, будь ласка, дайте йому іншу назву й зазначте Mole як першоджерело. Mole for Mac є окремим пропрієтарним застосунком, а Mole тут надовго.

