Skip to main content

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:

  1. 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.
  2. 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.


Built for developers who'd rather understand their Mac than pay a monthly fee to clean it.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

poofmac-0.2.2.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

poofmac-0.2.2-py3-none-any.whl (59.2 kB view details)

Uploaded Python 3

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

Hashes for poofmac-0.2.2.tar.gz
Algorithm Hash digest
SHA256 e3f80d0bb5c1e73308b5f2f84a55baf8cb5dd897db18b89da685384c6bb8235e
MD5 5d2507434013aef0e652bd60c0deaf00
BLAKE2b-256 d9808d5585be9cc6c7749f5824936172379d72edf4d8d52c1dfe501d78f69ef1

See more details on using hashes here.

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

Hashes for poofmac-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1d6f2a8966e96c7ce439734712c5bfa9af93cfbdb9f89273d514568cccd23a1e
MD5 e314770df708da887f643a2fdf28c7d7
BLAKE2b-256 9879b99fb454e7890cc7e6d3ffc4576b9f59d20de47db5f9af5c8daa5c18d702

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page