bloatr
Kill your Mac's bloat. Select. Delete. Done.
A dead-simple macOS CLI that finds your biggest developer cache directories, lets you browse them, and deletes what you don't need — with a clean terminal UI.
SIZE LOCATION
24.3 GB ▶ ~/Library/Developer/Xcode/DerivedData
11.2 GB ~/Library/Caches
4.1 GB ~/Library/Android/sdk
3.1 GB ~/.expo
1.9 GB ~/.gradle/caches
515 MB ~/.npm
space:select enter:explore esc:back d:delete q:quit
Install
pipx install bloatr
Or with pip:
pip install bloatr
Usage
# Launch interactive TUI (scans known developer bloat locations)
bloatr
# Scan any directory — like `du` but interactive
bloatr ~/
bloatr ~/Documents
bloatr ~/Library/Caches
# Preview what would be deleted (safe mode)
bloatr --dry-run
# Only show items > 1 GB
bloatr --min-size 1G
# JSON output (pipe-friendly)
bloatr --json
bloatr --json ~/Library | jq '.[].size_human'
What it scans
| Location | What it is |
|---|---|
~/Library/Developer/Xcode/DerivedData |
Xcode build artifacts |
~/Library/Developer/Xcode/Archives |
Xcode app archives |
~/Library/Developer/CoreSimulator/Runtimes |
iOS/watchOS simulator runtimes |
~/Library/Developer/Xcode/iOS DeviceSupport |
Per-device debug symbols |
~/Library/Caches |
App caches |
~/.gradle/caches |
Gradle build cache |
~/.npm |
npm package cache |
~/.yarn/cache |
Yarn package cache |
~/.pnpm-store |
pnpm content-addressable store |
~/.cocoapods/repos |
CocoaPods spec repos |
~/.cargo/registry |
Rust crate registry |
~/.cargo/git |
Rust git dependencies |
~/.pub-cache |
Flutter/Dart package cache |
~/go/pkg/mod |
Go module cache |
~/.expo |
Expo/React Native cache |
~/Library/Android/sdk |
Android SDK |
~/Library/Application Support/JetBrains |
JetBrains IDE caches |
| Homebrew cache | brew --cache output |
Keyboard shortcuts
| Key | Action |
|---|---|
j / ↓ |
Move down |
k / ↑ |
Move up |
space |
Toggle select |
enter |
Drill into folder |
esc / backspace |
Go back |
d |
Delete selected items |
r |
Rescan from scratch |
q |
Quit |
Safety
bloatr will never delete:
- Anything outside your home directory (
~) - Top-level protected directories (
~/Library,~/Documents,~/Desktop, etc.) - The home directory itself
Every deletion requires an explicit confirmation prompt. Use --dry-run to preview without touching anything.
Credits
Idea and direction by a human who lost 100 GB to Mac bloat one too many times. Code written entirely by Claude Code.
License
MIT
Metadata
Release files for bloatr 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 | |
|---|---|---|---|
| bloatr-0.1.0.tar.gz | 16.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bloatr-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.8 kB
Release files / bloatr-0.1.0.tar.gz
| Download URL | bloatr-0.1.0.tar.gz |
|---|---|
| Size | 16.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bf5109af2378dadd77db5e6abd9515acf9358aee0e5b9bd23dac82d79e6d5ec0
|
|
BLAKE2b-256 checksum How to use checksums |
a807455401be181dc2e425b7fc33187fffc2de9e23c4ba6811828ebe6fd90d95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Release files / bloatr-0.1.0-py3-none-any.whl
| Download URL | bloatr-0.1.0-py3-none-any.whl |
|---|---|
| Size | 15.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d20992465f3affc4146a6f3ff6f597bf2712f405b7738d10cffc84d49f3eeef
|
|
BLAKE2b-256 checksum How to use checksums |
8cfab3d159e04ed75b21874f6e48d474c6329a41d5a9b187a9f4203f044a5542
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|