Most cleaners skim your caches and stop.
Developer toolchains quietly eat 50-500 GB: Xcode DerivedData, stale node_modules across dozens of repos, Docker layers, venvs, model caches. And macOS hides another 80-200 GB behind a “System Data” figure it won't explain. Trimtab goes deeper, and proves it's safe.
We only delete what you can rebuild.
Every commercial cleaner in this category is trust-tainted. Trimtab makes safety a verifiable artifact, not a marketing word.
Regenerable → deleted, frees space now
DerivedData, package caches, build artifacts. Each carries its rebuild command. The safety is the fact that it comes back, so reversibility would just re-pin the space you freed.
Ambiguous → Trash, or a command we never run
Uninstall leftovers, iOS backups, Docker, snapshots. Moved to the recoverable Trash, or surfaced as a command you run. Never auto-selected.
No Gatekeeper hacks. No sudo spctl. An open, versioned ruleset you can read on GitHub. Every finding links to the exact rule and why it's safe.
Built for developers, not for fear.
69-rule toolchain coverage
Xcode, npm/pnpm/yarn/bun, Docker/Colima, Python, Go, Rust, Terraform, Pulumi, Helm, Adobe media caches, and more, grouped and explained.
System Data, explained
Point at the blob macOS won't itemize and get a real breakdown: snapshots, iOS backups, Docker.raw, sleep image, logs. Each one sized, each with a safe action.
Cross-project staleness graph
Every build artifact mapped to its git repo, ranked by last activity. Reclaim your dormant side-projects, never the one you're building.
Two-bucket safety
Regenerable is deleted; everything else goes to the Trash or is surfaced as a command. Reveal-before-delete, dry-run by default.
Notarized & on-device
Developer ID signed, Apple-notarized, opens on a double-click. 100% local, no telemetry, no accounts.
App + CLI, one engine
A native app and a trimtab CLI share the same core, so they can never disagree about what's safe. Scriptable, JSON output.
Reclaim your 40 dormant side-projects. Never the one you're building.
Trimtab reads each repo's activity from disk (no git shelling) and hard-excludes anything you've touched recently. A sweep can only ever move regenerable junk to the Trash.