---
title: zap
status: active
repo: https://github.com/waltspence/zap
canonical: https://waltspence.com/projects/zap
---

# zap

A terminal-native, agent-friendly app uninstaller. Dry-run by default, Trash not rm, undo always.

Dragging an app to the Trash leaves its data behind. GUI cleaners fix that but can't be scripted. `zap` finds an application and every leftover it scattered — preferences, caches, containers, launch agents, receipts — and removes them recoverably.

Three ideas hold it together: removal is a dry run unless you say otherwise; everything goes to the Trash and is journaled so `zap undo` can bring it back; and bundle ids come from the system, not from guesses. Pure Python stdlib, zero runtime dependencies, macOS and Linux.

The Reclaim Space feature (large files, old downloads, app leftovers) came from [Featherweight](/projects/featherweight), which was folded in rather than shipped alone.

On its first run on my own machine, it freed over 20 GB.

## Changelog

- **2026-08-31** — Featherweight folded in as Reclaim Space
- **2026-08-29** — A plan is a selection over a fresh scan
