Консольная утилита для macOS, которая показывает, куда делось место на диске, и помогает его очистить. Параллельно сканирует файловую систему, проверяет известные «пожирателей» места и опционально даёт рекомендации через LLM (OpenAI API или любой совместимый провайдер).
go install github.com/skrashevich/godiskanal@latestили локально:
git clone ...
cd godiskanal
go build -o ~/go/bin/godiskanal .# Анализ домашней директории
godiskanal
# Не пересекать границы ФС (быстрее, пропускает внешние тома)
godiskanal -x
# TUI-браузер диска (ncdu-подобный)
godiskanal -b
# TUI-браузер с LLM-описаниями (нажмите i на любом элементе)
godiskanal -b --llm
# Интерактивная TUI-очистка известных мест
godiskanal -i
# С рекомендациями от ИИ
godiskanal --llm
# Всё вместе
godiskanal --llm -i -x| Флаг | По умолчанию | Описание |
|---|---|---|
-p, --path |
~ |
Путь для сканирования |
-n, --top |
20 |
Количество топ-директорий |
-x, --one-filesystem |
false |
Не пересекать границы файловых систем |
--exclude PATH |
— | Исключить путь (можно повторять) |
--min-size |
100MB |
Минимальный размер для отображения |
| Флаг | По умолчанию | Описание |
|---|---|---|
--llm |
false |
Включить анализ с рекомендациями |
--api-key |
— | API ключ (или OPENAI_API_KEY) |
--api-url |
— | Базовый URL API (или OPENAI_BASE_URL) |
--model |
gpt-4o-mini |
Модель LLM |
| Флаг | По умолчанию | Описание |
|---|---|---|
-b, --browse |
false |
TUI-браузер диска с навигацией и удалением |
-i, --interactive |
false |
TUI-очистка известных мест (кэши, артефакты) |
Сканирование многопоточное — по умолчанию используются все CPU ядра. В процессе отображается текущий каталог; строка прогресса адаптируется под ширину терминала:
⠸ 1,234,500 файлов | 128.3 GB ~/Library/Developer/Xcode/DerivedData/App/Build
Ctrl+C прерывает сканирование и выводит частичные результаты — данные уже собранных директорий не теряются.
Директории, не ответившие за 3 секунды (незагруженные файлы iCloud, зависшие NFS/SMB-тома), автоматически пропускаются. После сканирования выводится предупреждение:
⚠ Пропущено 5 директорий (таймаут — возможно iCloud или сетевой диск)
Полезен при сканировании корня (/) или при наличии примонтированных томов:
godiskanal -x # только основная ФС
godiskanal --path / -x # весь диск, без /Volumes и /System/Volumes# исключить конкретный каталог
godiskanal --exclude ~/VirtualBoxVMs
# несколько исключений
godiskanal --exclude ~/VMs --exclude /opt/homebrewКлюч и базовый URL передаются через флаги или переменные окружения (флаги имеют приоритет):
# через переменные окружения (рекомендуется)
export OPENAI_API_KEY=sk-...
godiskanal --llm
# через флаги
godiskanal --llm --api-key sk-... --model gpt-4oФлаг --api-url (или переменная OPENAI_BASE_URL) позволяет использовать любой OpenAI-совместимый API:
# Ollama (локальные модели)
godiskanal --llm --api-url http://localhost:11434/v1 --model llama3.2
# LM Studio
godiskanal --llm --api-url http://localhost:1234/v1 --model local-model
# Azure OpenAI
godiskanal --llm \
--api-url https://my-resource.openai.azure.com/openai/deployments/gpt-4o \
--api-key $AZURE_OPENAI_KEY \
--model gpt-4o
# через переменные окружения
export OPENAI_BASE_URL=http://localhost:11434/v1
export OPENAI_API_KEY=ollama
godiskanal --llm --model llama3.2После завершения стриминга выводится статистика токенов и стоимость запроса:
— Токены: 512 вход + 1024 выход = 1536 итого | стоимость: $0.0007
Стоимость рассчитывается автоматически для популярных моделей OpenAI. При использовании сторонних провайдеров строка стоимости не выводится, если провайдер не возвращает usage-данные.
godiskanalУтилита:
- Показывает статистику диска (всего / занято / свободно)
- Параллельно сканирует
~/с прогресс-индикатором - Выводит топ-20 директорий по размеру
- Находит крупные
node_modules - Проверяет известные «пожирателей» места: Xcode DerivedData, iOS Simulators, Docker, npm/yarn/pnpm/Go/Homebrew кэши, Корзина и др.
- Сообщает о локальных снимках Time Machine
- Выводит краткие рекомендации по очистке
godiskanal --llmФормирует промпт с данными сканирования и стримит ответ от LLM в терминал. После завершения выводит потраченные токены и стоимость запроса.
godiskanal -bОткрывает ncdu-подобный интерфейс для навигации по дереву директорий. Управление:
| Клавиша | Действие |
|---|---|
↑↓ / jk |
Навигация |
Enter / → |
Войти в директорию |
← / Esc |
Вернуться назад |
Space |
Отметить для удаления |
d |
Удалить отмеченные |
D |
Удалить текущий элемент |
i |
Описание от LLM (нужен API ключ) |
? |
Помощь |
q |
Выйти |
# С LLM-описаниями (нажмите i на любом элементе)
godiskanal -b --llmgodiskanal -iTUI-интерфейс со списком известных мест (кэши, артефакты сборки, старые backups). Пробел выбирает элементы, Enter запускает очистку с подтверждением. Docker и iOS Simulators помечаются отдельно с инструкцией по ручной очистке.
godiskanal --llm -i -xПараллельное сканирование без пересечения границ ФС → рекомендации от ИИ → TUI-очистка.
godiskanal --path ~/Projects --llm
godiskanal --path /Users/shared --top 30| Локация | Описание |
|---|---|
~/Library/Caches |
Кэши всех приложений |
~/Library/Developer/Xcode/DerivedData |
Артефакты сборки Xcode |
~/Library/Developer/CoreSimulator/Devices |
Образы iOS-симуляторов¹ |
~/Library/Developer/Xcode/iOS DeviceSupport |
Символы отладки устройств |
~/Library/Application Support/MobileSync/Backup |
Резервные копии iPhone/iPad |
~/.Trash |
Корзина |
~/Downloads |
Загрузки |
| Homebrew cache | Определяется через brew --cache |
| Time Machine snapshots | Локальные снимки (tmutil) |
| Локация | Описание |
|---|---|
~/.npm |
Кэш npm |
~/.yarn/cache |
Кэш Yarn |
~/.pnpm-store |
Хранилище pnpm |
~/.bun/install |
Кэш Bun |
~/go/pkg/mod |
Кэш Go-модулей |
~/Library/Caches/go-build |
Кэш сборки Go |
~/.gradle/caches |
Кэш Gradle |
~/.m2/repository |
Репозиторий Maven |
~/.cargo |
Кэш Rust/Cargo |
~/.rustup/toolchains |
Установленные тулчейны Rust |
~/.cocoapods |
Кэш CocoaPods |
~/.node-gyp |
Кэш нативных Node.js модулей |
~/.pub-cache |
Кэш Dart/Flutter |
~/.nuget/packages |
Кэш NuGet (.NET) |
~/.platformio |
Тулчейны PlatformIO |
~/Library/Caches/pip |
Кэш Python pip |
~/.venv |
Python виртуальное окружение |
~/.cache/uv |
Кэш пакетного менеджера uv |
~/Library/Containers/com.docker.docker |
Docker образы и данные¹ |
| Локация | Описание |
|---|---|
~/.cache/huggingface |
Локальные модели HuggingFace |
~/.cache/whisper |
Модели OpenAI Whisper |
~/.continue/index |
Поисковый индекс Continue AI |
| Локация | Описание |
|---|---|
~/.cache/puppeteer |
Chromium для Puppeteer |
~/.cache/electron |
Кэш Electron SDK |
node_modules |
Любые крупные node_modules в дереве сканирования (>200 MB) |
¹ Требует ручной команды (xcrun simctl delete unavailable / docker system prune), отображается отдельно в TUI.