PoofMac โ local AI-powered Mac disk cleaner. Runs on Ollama, no subscription, no data leaves your machine.
Project description
PoofMac ๐จ
An open-source, AI-powered Mac disk cleaner โ runs locally, no subscriptions, no surprises.
I was deep in a coding session when my Mac suddenly threw a "2 GB remaining" warning. I had no idea where the space had gone. I asked an AI โ and in minutes it found gigabytes of Xcode caches, old simulator images, and stale build artifacts I never knew existed.
PoofMac turns that conversation into a proper tool. It runs a local AI model on your Mac, analyses your disk, explains exactly what is taking up space in plain English, and proposes a cleanup plan โ which you review and approve before anything is deleted.
No subscription. No account. No data leaves your machine.
Four interfaces โ same backend
| Interface | Command | Best for |
|---|---|---|
| AI Chat | poofmac --chat |
Ask anything in plain English โ best starting point |
| Desktop GUI | poofmac |
Daily use, native macOS window |
| Terminal TUI | poofmac --tui |
SSH, headless, developer preference |
| Non-interactive CLI | poofmac --cli |
Scripts, CI, piped output |
Installation
Quickest โ run without installing (like npx)
uvx poofmac --chat
Needs uv installed once:
curl -LsSf https://astral.sh/uv/install.sh | sh
Install permanently
With uv (recommended โ fast, manages Python automatically)
uv tool install poofmac
poofmac --chat
With pip (standard Python)
pip install poofmac
poofmac --chat
With the desktop GUI (PySide6)
pip install "poofmac[gui]"
poofmac
Install from source
git clone https://github.com/lesteroliver911/poofmac
cd poofmac
# With uv
uv tool install .
# Or with pip
pip install -e .
Configure your model
The first time you run any command, a setup wizard will guide you through
picking an AI provider and saving your API key. No manual .env editing needed.
To configure manually:
cp .env.example .env
# Edit .env โ add ANTHROPIC_API_KEY, OLLAMA_API_KEY, etc.
Desktop GUI
poofmac
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐จ PoofMac Model: [gemma4:31b-cloud โผ] [โ Safe Mode] [โ] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ 11.5 GB / 228 GB [โโโโโโโโโโโโโโโโโโ] 5% Free: 217 GB โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ ๐จ You could free ~4.2 GB today โ select items below and click Clean โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Activity Log โ โ ๐ฆ App Caches 1.7 GB โ Safe โ
โ ๐พ get_disk_overview() โ โ ๐ System Logs 127 MB โ Safe โ
โ โโ done โ โ ๐ฅ Downloads 777 MB โ Review โ
โ ๐ Plan ready โ review โ 3 items | 2 safe | 1 review | 0 skip โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [ Ask anythingโฆ ] [Scan] [Clean 2 items (~1.8 GB)] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Keyboard shortcuts
| Key | Action |
|---|---|
F5 |
Start scan |
Ctrl+A |
Approve all SAFE rows |
Ctrl+U |
Unapprove all rows |
Ctrl+Return |
Execute approved deletions |
โ button |
Open Settings (API keys, model, safe mode) |
Terminal TUI
poofmac --tui
Full keyboard-driven Textual interface. Identical analysis backend.
Non-interactive CLI
poofmac --cli # scan + show Rich table (no deletions)
poofmac --cli --model gemma4:31b-cloud # override model for this run
poofmac --cli --execute # delete SAFE items after review
poofmac --cli --json # output raw JSON (pipe-friendly)
poofmac --cli --safe-mode # never delete anything
Safety
PoofMac has two independent safety layers:
- Code-level guardrails (
safety.py) โ hard-coded path lists that are never touched, regardless of what the LLM says. No prompt injection can bypass Python code. - System prompt โ the LLM is instructed to never propose deleting system paths, user data, or anything it isn't certain about.
Never automatically deleted:
/System, /usr, /bin, /etc, ~/.ssh, ~/Library/Keychains,
~/Documents, ~/Desktop, ~/Pictures, ~/Music, ~/Movies, ~/Mail,
~/Messages, ~/Contacts
Requires your explicit approval:
App caches, system logs, Xcode build artifacts, node_modules, Python
venvs, Homebrew cache, Trash, and items you select in ~/Downloads.
Model guide
PoofMac is built around local models โ your data stays on your Mac. The 14โ35B parameter range hits the sweet spot of accuracy and speed.
Ollama local (recommended โ runs on your Mac, no API key, no data sent anywhere)
Install Ollama once, then pull a model:
ollama pull qwen3.6:35b-a3b # best overall (MoE โ only 3B active, needs ~24 GB RAM)
ollama pull qwen3.6:27b # dense, excellent tool-calling (~17 GB RAM)
ollama pull qwen2.5:14b # good for 16 GB Macs (~9 GB RAM)
ollama pull llama3.1:8b # minimum โ 8 GB Mac (~5 GB RAM)
| Model | RAM needed | Notes |
|---|---|---|
qwen3.6:35b-a3b |
~24 GB | MoE: only 3B active โ best value |
qwen3.6:27b |
~17 GB | Dense, excellent tool-calling |
qwen2.5:32b |
~20 GB | Proven reliable |
mistral-small:24b |
~15 GB | Good for European data |
qwen2.5:14b |
~9 GB | Minimum recommended |
llama3.1:8b |
~5 GB | Absolute minimum (8 GB Mac) |
Cloud providers (optional โ if you already have an API key)
If you have an Anthropic, OpenAI, or OpenRouter account you can point PoofMac at those too โ but it's completely optional. The tool runs fine without any cloud account.
| Provider | Model | Notes |
|---|---|---|
| Anthropic | claude-sonnet-4-6 |
Strong reasoning, fast |
| Anthropic | claude-haiku-4-5 |
Fastest, lightest cost |
| OpenAI | gpt-4.1 |
Reliable tool-calling |
| OpenRouter | any | One key for many models |
What it finds
| Category | Risk | Notes |
|---|---|---|
App Caches (~/Library/Caches) |
SAFE | Rebuilt on next launch |
System Logs (~/Library/Logs) |
SAFE | Regenerated by OS |
| Xcode DerivedData | SAFE | Rebuilt when project opens |
| Homebrew Cache | SAFE | Re-downloaded on demand |
| Trash | SAFE | Already deleted by you |
node_modules, .venv, __pycache__ |
SAFE | Recreated by build tool |
| iOS / watchOS Simulator Images | SAFE | Re-downloaded from Xcode |
| Large Downloads | CAUTION | Review each item manually |
| Docker images/volumes | CAUTION | docker system prune |
Audit log
Every operation is recorded to ~/.poofmac-audit.jsonl:
{"timestamp": "2026-05-03T14:22:11", "action": "DELETED",
"path": "/Users/you/Library/Caches/com.apple.dt.Xcode", "size_bytes": 2147483648,
"note": "User approved deletion via GUI", "_mc": "a4f7b9c2..."}
Benchmark
Find the smallest reliable Ollama model for your workload:
python benchmarks/run_benchmark.py
python benchmarks/run_benchmark.py --fast # 3 scenarios
python benchmarks/run_benchmark.py --local # test local models
Contributing
See CONTRIBUTING.md.
Disclaimer
PoofMac is provided "as is", without warranty of any kind. See DISCLAIMER.md for full terms.
Not affiliated with Apple Inc. "macOS", "Mac", "Time Machine", and "iCloud" are trademarks of Apple Inc. PoofMac is an independent open-source project.
Always maintain a current backup (Time Machine or cloud) before running any cleaning operation. Every deletion requires your explicit confirmation โ PoofMac never removes files without your approval.
License
MIT โ see LICENSE.
Author
Built by lesteroliver โ developer, maker, and the person who ran out of disk space mid-sprint.
- GitHub: github.com/lesteroliver911
- LinkedIn: linkedin.com/in/lesteroliver
Built for developers who'd rather understand their Mac than pay a monthly fee to clean it.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file poofmac-0.2.2.tar.gz.
File metadata
- Download URL: poofmac-0.2.2.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3f80d0bb5c1e73308b5f2f84a55baf8cb5dd897db18b89da685384c6bb8235e
|
|
| MD5 |
5d2507434013aef0e652bd60c0deaf00
|
|
| BLAKE2b-256 |
d9808d5585be9cc6c7749f5824936172379d72edf4d8d52c1dfe501d78f69ef1
|
File details
Details for the file poofmac-0.2.2-py3-none-any.whl.
File metadata
- Download URL: poofmac-0.2.2-py3-none-any.whl
- Upload date:
- Size: 59.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d6f2a8966e96c7ce439734712c5bfa9af93cfbdb9f89273d514568cccd23a1e
|
|
| MD5 |
e314770df708da887f643a2fdf28c7d7
|
|
| BLAKE2b-256 |
9879b99fb454e7890cc7e6d3ffc4576b9f59d20de47db5f9af5c8daa5c18d702
|