junkicide
TUI для macOS: быстро найти и осознанно прибить то, что зря жрёт ресурсы, — забытые эмуляторы, Docker-контейнеры, dev-серверы, тяжёлые вкладки браузера — и то, что зря занимает диск: старые дистрибутивы, программы, которыми не пользуются, фильмы, записи видеорегистратора, кэши и артефакты сборки заброшенных проектов.
uv tool install --editable ~/projects/own/junkicide # один раз; дальше просто:
junkicide
Без установки: uvx --from ~/projects/own/junkicide junkicide; после публикации на PyPI — просто uvx junkicide.
Как работает
- Сразу — сводка (CPU, давление памяти, swap, свободное место, нагрев) и очевидные проблемы: процессы, которые устойчиво грузят CPU или держат много памяти, известные «пожиратели» (эмулятор Android, Docker VM, демоны Gradle, dev-серверы…), крупные файлы из индекса Spotlight.
- Параллельно в фоне — известные места на диске (кэши, Xcode, Android SDK/AVD, Homebrew, модели нейросетей…), давно не используемые программы и полный обход домашней папки: артефакты сборки по проектам (с датой, когда проект последний раз менялся), папки с видео (распознаются записи регистраторов), дубликаты, недокачанные файлы, архивы, уже распакованные рядом.
- Для каждой находки — что это, откуда взялось, чем грозит устранение, факты (пути, даты, PID, порты, рабочая папка, откуда скачан файл) и оценка, насколько вероятно это не нужно.
- Устранение — клавишей, с подтверждением. Файлы — только в Корзину; процессы — SIGTERM, SIGKILL по выбору;
для кэшей — штатные команды (
brew cleanup,docker builder prune,npm cache clean…). Корзину можно очистить отсюда же (E).
Результаты сканирования диска кэшируются: при следующем запуске прошлая картина видна сразу (⏳), пока идёт перепроверка.
Клавиши
1–5 вкладки (Главное, CPU, Память, Диск, Журнал) · Enter/a действия · k/K завершить/убить ·
d в Корзину · пробел отметить несколько · o Finder · i скрыть находку · / фильтр (#dev, #cache,
#забытое…) · s сортировка по выгоде/размеру · r пересканировать · E очистить Корзину · ? помощь
Без интерфейса
junkicide --report # просканировать (до 2 мин) и вывести отчёт
junkicide --report 40 --no-walk -v
Файлы
~/.config/junkicide/config.toml |
пороги и список скрытых находок (переносим между компьютерами) |
~/Library/Logs/junkicide/journal.jsonl |
журнал: все действия и события сканирования |
~/Library/Caches/junkicide/findings.json |
кэш прошлого сканирования диска (можно удалить) |
Для полной картины (Корзина, Почта, данные некоторых программ) дайте терминалу «Полный доступ к диску»: Системные настройки → Конфиденциальность и безопасность.
Разработка
make help — все команды: make run, make test, make lint, make report, make uvx.
Устройство: scanners/ — независимые сканеры в фоновых потоках, пишут находки в общее хранилище
(model.FindingStore); knowledge/ — база знаний (процессы, известные места, классификация файлов) с
объяснениями; actions.py — исполнение действий с журналированием; tui/ — интерфейс на Textual.
Metadata
Release files for junkicide 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| junkicide-0.1.0.tar.gz | 89.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| junkicide-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 185.3 kB
Release files / junkicide-0.1.0.tar.gz
| Download URL | junkicide-0.1.0.tar.gz |
|---|---|
| Size | 89.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2d18c261ee9f6cb2a53d7e7b5dc5d0b305bde18359711b8cb2cb88b51ea26a79
|
|
BLAKE2b-256 checksum How to use checksums |
a840d73f1deb3672a71a05128db1131556396fdb87b62d23364b239aac6ec6a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.16
|
Release files / junkicide-0.1.0-py3-none-any.whl
| Download URL | junkicide-0.1.0-py3-none-any.whl |
|---|---|
| Size | 95.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
46a1ff645e763ae08f5ddf5847f5f59456f054bd88ab9c7b9d8adbb5031da27c
|
|
BLAKE2b-256 checksum How to use checksums |
61f68b707f7b7126355c9c96be9c70ae6727cb53f7dbd9f7b3da98c0cda7a978
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.16
|