ICleaner is a fast, interactive CLI tool for cleaning up unnecessary files on macOS. No GUI, no Electron, no bloat — just a beautiful terminal interface built with Bubbletea.
| Feature | Description | |
|---|---|---|
| 🗂 | Cache Cleaner | System & browser caches (~/Library/Caches, Safari, Chrome, Firefox…) |
| 📦 | Large File Finder | Find files above a configurable size threshold |
| 👯 | Duplicate Finder | SHA-256 deduplication with group-aware selection |
| 👻 | Leftover App Files | Scan ~/Library for remnants of uninstalled apps |
| 📊 | Disk Visualizer | ASCII bar chart of disk usage by directory |
| ⬡ | node_modules | Find & delete forgotten node_modules directories |
| 🔨 | Xcode Caches | DerivedData, Archives, DeviceSupport, Simulator data |
| 🐍 | pip Cache | Clear ~/.cache/pip |
| 🐳 | Docker | docker system prune with optional volume cleanup |
Run icleaner without any arguments to open the interactive menu:
ICleaner macOS Disk Cleaner
▶ Cache Cleaner System & browser caches
Large Files Find files above a size threshold
Duplicate Files SHA-256 deduplication
Leftover App Files Remnants from uninstalled apps
Disk Visualizer ASCII bar chart of disk usage
── Developer Tools ─────────────────────────
node_modules Find & delete node_modules dirs
Xcode Caches DerivedData, Archives, DeviceSupport
pip Cache Clear ~/.cache/pip
Docker docker system prune
↑/↓ navigate enter select q quit
Select a feature → fill in parameters step by step → review results interactively → confirm deletion. The entire flow stays in the terminal, no confirmation dialogs, no surprises.
Homebrew (recommended)
brew install grkndev/tap/icleanerGo install
go install github.com/grkndev/icleaner@latestBuild from source
git clone https://github.com/grkndev/ICleaner
cd ICleaner
make installOr grab a pre-built binary from Releases (macOS arm64/amd64, Linux arm64/amd64).
icleaner# Always preview first
icleaner cache --dry-run
icleaner dev node --dry-run --path ~/projects
# Cache
icleaner cache # interactive selection
icleaner cache --min-age 7d # only caches older than 7 days
# Large files
icleaner large # scan home dir, threshold 100MB
icleaner large --min-size 500MB --path ~/Downloads
# Duplicates
icleaner duplicate --path ~/Documents
# Leftover app files
icleaner leftover # scan all
icleaner leftover --app Spotify # filter by app name
# Disk usage
icleaner disk # home dir
icleaner disk --path / --top 20
# Developer caches
icleaner dev node --path ~/projects --older-than 30d
icleaner dev xcode
icleaner dev pip
icleaner dev docker --volumes
icleaner dev all # run everything| Flag | Description |
|---|---|
--dry-run |
Show what would be deleted — no actual deletions |
-y, --yes |
Skip confirmation prompts (for scripts/CI) |
--trash |
Move to macOS Trash instead of permanently deleting |
--no-color |
Disable colored output |
-v, --verbose |
Verbose output |
| Key | Action |
|---|---|
↑ / ↓ or k / j |
Navigate |
space |
Toggle selection |
a |
Select / deselect all |
enter |
Confirm |
esc |
Go back |
q |
Quit |
Contributions are welcome. Please open an issue first to discuss what you'd like to change.
git clone https://github.com/grkndev/ICleaner
cd ICleaner
make build # build binary
make test # run tests
make lint # run linter (requires golangci-lint)MIT — see LICENSE