README_RU.md
Rama main · réplica de lectura del repositorio original.
<p align="right"><b>macOS</b> · <a href="https://github.com/tw93/Mole/tree/windows#readme">Windows</a> · <a href="https://github.com/tw93/Mole/tree/linux#readme">Linux</a></p>
<div align="center">
<h1>Mole</h1>
<p><b>Глубокая очистка, удаление приложений, оптимизация, анализ диска и мониторинг вашего Mac. Бесплатный CLI с открытым исходным кодом, а также нативное приложение для Mac.</b></p>
<p><a href="README.md">English</a> · <a href="README_CN.md">中文</a> · <a href="README_TW.md">繁體</a> · <a href="README_JA.md">日本語</a> · <a href="README_KR.md">한국어</a> · <a href="README_DE.md">Deutsch</a> · <a href="README_FR.md">Français</a> · <a href="README_PL.md">Polski</a> · <a href="README_UA.md">Українська</a> · Русский</p>
<a href="https://github.com/tw93/mole/stargazers"><img src="https://img.shields.io/github/stars/tw93/mole?style=flat-square" alt="Stars"></a>
<a href="https://github.com/tw93/mole/releases"><img src="https://img.shields.io/github/v/release/tw93/mole?label=version&style=flat-square" alt="Version"></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/license-GPL_v3-blue.svg?style=flat-square" alt="License"></a>
<a href="https://github.com/tw93/mole/commits"><img src="https://img.shields.io/github/commit-activity/m/tw93/mole?style=flat-square" alt="Commits"></a>
<a href="https://x.com/HiTw93"><img src="https://img.shields.io/badge/follow-Tw93-red?style=flat-square&logo=x" alt="Twitter"></a>
<a href="https://t.me/+9f9gf4ZrFSQ2OWVl"><img src="https://img.shields.io/badge/chat-Telegram-blueviolet?style=flat-square&logo=Telegram" alt="Telegram"></a>
</div>
<p align="center">
<img src="./docs/img/big-mole.png" alt="Результаты очистки Mole" width="1000" />
</p>
> 💡 В этом репозитории живёт бесплатный CLI с открытым исходным кодом (`mo`). Нужно нативное приложение? [Mole for Mac](https://mole.fit/) загружается отдельно: очистка с просмотром перед удалением, проверенные остаточные файлы для более чем 800 приложений, обслуживание системы, детальный разбор диска, состояние системы в реальном времени и управление вентиляторами на поддерживаемых Mac. Для Windows есть нативное приложение [Mole for Windows](https://mole.fit/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**
```bash
brew install mole
```
**Или через скрипт**
```bash
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`.
```bash
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`, в DeepSeek Harness `dsh plugin --profile <name> add dsh-mole`.
**Запуск**
```bash
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 # Показать установленную версию
```
**Безопасный предпросмотр**
```bash
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 # Просмотреть временные каталоги пользователя
```
<details>
<summary><strong>Другие способы установки</strong></summary>
Чтобы установить конкретный выпуск, передайте любой тег со [страницы релизов](https://github.com/tw93/mole/releases), с ведущей `V` или без неё. Чтобы следить за веткой разработки, передайте `main`:
```bash
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` устанавливает невыпущенный код из ветки по умолчанию, поэтому возможны шероховатости. `latest` по-прежнему работает как устаревший псевдоним для `main`; несмотря на название, он не устанавливает новейший стабильный выпуск.
Обычно скрипт устанавливает Mole в `/usr/local/bin`, из-за чего может потребоваться пароль администратора. Установите его в каталог, принадлежащий вашему пользователю, если хотите, чтобы будущие запуски `mo update` обходились без пароля:
```bash
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`, где есть невыпущенные изменения:
```bash
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.
</details>
**В Windows** ([Windows CLI](https://github.com/tw93/Mole/tree/windows#readme))
```powershell
iwr -useb https://raw.githubusercontent.com/tw93/Mole/windows/quick-install.ps1 | iex
```
**В Linux** ([Linux CLI](https://github.com/tw93/Mole/tree/linux#readme))
```bash
curl -fsSL https://raw.githubusercontent.com/tw93/Mole/linux/install.sh | bash
```
Mole распространяется только через Homebrew, этот репозиторий и [mole.fit](https://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.md) и [SECURITY_AUDIT.md](SECURITY_AUDIT.md), чтобы узнать, как сообщать о проблемах, какие границы безопасности действуют и какие ограничения есть сейчас.
## Настройка
Mole работает без настройки. Эти переменные окружения подстраивают его под медленные диски, зависшие сетевые или облачные тома; увеличивайте тайм-аут только когда Mole сообщает, что шаг завершился по тайм-ауту (`timed out`).
- `MOLE_TIMEOUT_QUICK_DETECT_SEC` (2): проверки доступности команд
- `MOLE_TIMEOUT_SHORT_QUERY_SEC` (3): лёгкие запросы, такие как `df` и `tmutil status`
- `MOLE_TIMEOUT_MEDIUM_PROBE_SEC` (5): проверки, обходящие дерево каталогов или обращающиеся к сети
- `MOLE_TIMEOUT_PKG_LIST_SEC` (10): списки пакетных менеджеров, такие как `brew list`
- `MOLE_TIMEOUT_PKG_CLEANUP_SEC` (20): очистка кэшей, обходящая диск
- `MOLE_TIMEOUT_DISK_VERIFY_SEC` (30): проверка и восстановление файловой системы
- `MOLE_TIMEOUT_HINT_SCAN_SEC` (15): неограниченные сканирования пользовательского каталога
- `MOLE_CLOUD_OFFICE_SECTION_BUDGET_SEC` (300): общий бюджет раздела очистки облака и Office
Число в скобках означает значение по умолчанию в секундах. Например, чтобы дать сканированию больше времени на медленном диске:
```bash
MOLE_TIMEOUT_HINT_SCAN_SEC=60 MOLE_TIMEOUT_MEDIUM_PROBE_SEC=15 mo clean
```
## Подробнее о возможностях
Примеры ниже сокращены. Доступные пункты, размеры и причины пропуска зависят от вашего Mac.
### Очистка (Clean)
`mo clean` просматривает заведомо безопасные кеши, журналы, временные файлы, артефакты инструментов разработки и остатки приложений, которые уже не установлены. По умолчанию команда очищает `~/.Trash`; чтобы сохранить его содержимое, отметьте строку Trash в `mo clean --whitelist`, в том же меню, где защищаются нужные вам кеши. Корзины томов, например `/Volumes/*/.Trashes`, при этом не очищаются. Выбор сохраняется в `~/.config/mole/whitelist`. Прежде чем добавлять собственные пути, откройте меню и нажмите Enter, чтобы сохранить выбор, а затем допишите пути по одному в строке. Существующий файл заменяет необязательные значения по умолчанию, но встроенная защита продолжает действовать.
```text
$ 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
Removed: 4.5GB · 97 items
Free space: 223.5GB (+4.5GB)
======================================================================
```
### Удаление приложений (Uninstall)
`mo uninstall` удаляет установленное приложение вместе со связанными файлами, которые Mole может уверенно отнести к этому приложению. Общие данные сохраняются, если их всё ещё использует другая установленная копия. Если приложение уже удалено, поищите его остатки командой `mo clean`.
Личные данные, включая настройки и плагины, по умолчанию сохраняются. Нажмите `D` в предварительном просмотре удаления, чтобы выбрать отдельные пути данных. С `mo uninstall --with-data` эти данные выбраны заранее, кроме профилей браузеров и контейнеров App Group; предпросмотр показывает их отдельно, а `D` по-прежнему позволяет сохранить любой путь. После удаления ссылки на исчезнувшие пути в конфигурациях shell, Hook или MCP показываются только как имя файла и номер строки; Mole не изменяет эти конфигурации.
```text
$ 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
======================================================================
```
### Оптимизация (Optimize)
`mo optimize` выполняет ограниченный набор задач обслуживания для поддерживаемых служб Finder, сети, баз данных и macOS. Задачи, которые не нужны, небезопасны в данный момент или недоступны, пропускаются с указанием причины. С помощью `mo optimize --whitelist` можно исключить отдельные задачи или шаблоны путей, например, постоянно смонтированный образ диска в `/Volumes/mail`, который не должен попадать в кандидаты на отключение.
```text
$ 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
======================================================================
```
### Анализ диска (Analyze)
`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 и не гарантирует атомарный снимок файловой системы.
```text
$ 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
```
### Состояние системы (Status)
`mo status` представляет собой панель, работающая только на чтение: она показывает оборудование, нагрузку на систему, активность диска, сетевой трафик, питание и процессы.
Если маршрут IPv4 по умолчанию проходит через туннель, графики сети строятся по скорости этого интерфейса, чтобы не учитывать тот же трафик повторно на физическом носителе. В JSON сохраняются скорости по каждому интерфейсу, включая маршрутизируемый туннель; неактивные туннели, не используемые по умолчанию, остаются скрытыми.
```text
$ 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`, чтобы выйти; настройки отображения сохраняются.
<details>
<summary><strong>JSON, NDJSON и оповещения о процессах</strong></summary>
- `mo analyze --json ~/Documents` возвращает разовый отчёт о диске в формате JSON
- `mo status --json` возвращает разовый снимок состояния в формате JSON
- `mo 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`
```text
$ 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`.
</details>
### Очистка проектов (Purge)
`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 открывает финальный просмотр путей. Указанный объём является оценкой; неизмеренные артефакты и неполные сканирования отмечаются явно.
<details>
<summary><strong>Пример вывода purge</strong></summary>
```text
$ 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
======================================================================
```
</details>
<details>
<summary><strong>Собственные пути сканирования</strong></summary>
Выполните `mo purge --paths`, чтобы настроить каталоги сканирования, или отредактируйте `~/.config/mole/purge_paths` напрямую:
```shell
~/Documents/MyProjects
~/Work/ClientA
~/Work/ClientB
```
Если заданы собственные пути, Mole сканирует только эти каталоги. Иначе он использует значения по умолчанию: `~/Projects`, `~/GitHub`, `~/dev` и поддерживаемые контейнеры worktree агентов. Неполный результат поиска не сохраняется. Сканирование артефактов опускается на шесть уровней ниже каждого заданного корня; для более глубоко вложенных проектов добавьте более близкий корень. Purge удаляет пересобираемые артефакты внутри worktree, но никогда не удаляет сами worktree.
</details>
### Файлы установщиков (Installer)
`mo installer` находит файлы DMG, PKG, MPKG, ISO, XIP и ZIP-установщики в Загрузках, на Рабочем столе, в кешах Homebrew, iCloud, Mail, Telegram и других поддерживаемых расположениях и перед удалением показывает размер и источник каждого объекта. На поиск отведён суммарный лимит времени: если сканирование или запрос метаданных завершается ошибкой или тайм-аутом, Mole отбрасывает список и выходит, ничего не выбрав. Повреждённые и нечитаемые ZIP-архивы пропускаются; корни сканирования, заданные символьными ссылками, поддерживаются, но ссылки внутри них не раскрываются, а выбранные файлы на границе удаления повторно сверяются с подтверждённой идентичностью.
<details>
<summary><strong>Пример вывода installer</strong></summary>
```text
$ 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
======================================================================
```
</details>
### Облегчение приложений (Slim)
`mo slim` удаляет код для Intel из универсальных приложений на Mac с Apple Silicon. Он показывает приложения, которые принадлежат вам и подписаны Developer ID, вместе с размером их кода для Intel, и изменяет только выбранные. Каждое приложение сначала облегчается на копии, причём затрагиваются только основные исполняемые файлы и вложенный код с собственной подписью; копия заменяет приложение, только если сохранила код для Apple Silicon и прошла проверки подписи кода и Gatekeeper, а оригинал перемещается в Корзину. Приложения из App Store, приложения Apple, приложения с настройкой «Открывать в Rosetta», приложения других пользователей и запущенные приложения не затрагиваются. Инструменты разработчика не нужны, а обновление приложения возвращает код для Intel.
## Быстрый запуск
<details>
<summary><strong>Настройка Raycast и Alfred</strong></summary>
Установите пять команд быстрого запуска для Clean, Uninstall, Optimize, Analyze и Status:
```bash
curl -fsSL https://raw.githubusercontent.com/tw93/Mole/main/scripts/setup-quick-launchers.sh | bash
```
Скрипт добавляет команды Raycast, а если найдёт настройки Alfred, то и соответствующие рабочие процессы Alfred с ключевыми словами `clean`, `uninstall`, `optimize`, `analyze` и `status`.
Для Raycast нужно одно ручное действие:
1. Откройте **Raycast Settings > Extensions > Script Commands**.
2. Добавьте `~/Library/Application Support/Raycast/script-commands` как каталог со скриптами.
3. Выполните в Raycast **Reload Script Directories**.
Команды сами определяют Terminal, iTerm2, Alacritty, kitty, WezTerm, Ghostty, Hyper, WindTerm и Warp. Чтобы выбрать конкретный терминал, задайте `MO_LAUNCHER_APP=<name>`; также Mole можно запускать прямо в [Kaku](https://github.com/tw93/Kaku).
</details>
## Сообщество
Спасибо всем, кто помогал создавать Mole. Подпишитесь на них! ❤️
<a href="https://github.com/tw93/Mole/graphs/contributors">
<img src="./CONTRIBUTORS.svg?v=2" alt="Контрибьюторы Mole" width="1000" />
</a>
<br/><br/>
Настоящие отзывы пользователей, которые рассказывали о Mole в 𝕏.
<img src="./docs/img/mole-love.png" alt="Отзывы сообщества о Mole" width="1000" />
Посмотрите [видеоурок о Mole](https://www.youtube.com/watch?v=UEe9-w4CcQ0) от PAPAYA 電腦教室.
## Поддержать проект
- Самый прямой способ поддержать разработку Mole: приобрести [Mole for Mac](https://mole.fit)
- Если Mole вам помог, поставьте звезду, [расскажите о нём](https://x.com/intent/tweet?url=https://github.com/tw93/Mole&text=Mole%20-%20Deep%20clean%20and%20optimize%20your%20Mac.) или откройте issue либо PR
- У меня двое котов, TangYuan и Coke; если Mole хоть немного облегчил вам жизнь, можете угостить их <a href="https://cats.tw93.fun?name=Mole" target="_blank">консервами 🥩</a>
Эти замечательные люди уже угостили 🐱
<a href="https://cats.tw93.fun?name=Mole"><img src="https://raw.githubusercontent.com/tw93/sponsors/main/assets/sponsors.svg" alt="Спонсоры Mole" width="1000" loading="lazy" /></a>
## Лицензия
Mole представляет собой программное обеспечение с открытым исходным кодом под лицензией GPL-3.0; подробности в [LICENSE](LICENSE). Любая изменённая версия, которую вы распространяете, должна оставаться под той же лицензией. Если вы делаете форк Mole, пожалуйста, дайте ему другое название и укажите Mole как первоисточник. [Mole for Mac](https://mole.fit) является отдельным проприетарным приложением, а Mole здесь надолго.