Skip to main content

🧹 WhatsApp Sweeper

A local, fast tool for finding and deleting the media WhatsApp Desktop has quietly piled up on your Mac.

The problem

WhatsApp Desktop downloads every photo, video, and voice note you ever receive and keeps it forever in a local cache. It's not unusual for that folder to quietly grow to 20-30GB — years of stickers, forwarded videos, and group-chat noise you'll never look at again.

WhatsApp's engineers clearly track exactly which file belongs to which chat and sender — it's all sitting right there in their own local database. They just never shipped a way for you to see or clean it up. So here we are.

What it does

WhatsApp Sweeper scans WhatsApp Desktop's media cache, cross-references it against WhatsApp's own local chat database to figure out who sent each file and from which chat, and gives you a simple visual grid — sorted by size, biggest offenders first — so you can select what to delete and reclaim the space in a couple of minutes.

  • Sorted by size — see what's actually eating your disk first
  • Real thumbnails — generated from the source files, not WhatsApp's blurry tiny cache
  • Sender & group filters — include/exclude by person or by group, combinable
  • Finder-style selection — click, shift-click for ranges, drag to multi-select
  • Runs entirely on your machine — no network calls, no accounts, nothing uploaded

Requirements

  • macOS (this reads WhatsApp Desktop's macOS-specific cache and database — it won't work anywhere else)
  • WhatsApp Desktop, installed and opened at least once
  • Python 3.9+
  • ffmpeg (optional, for sharper video thumbnails — falls back to WhatsApp's own cached preview frame if it's missing)

Quick start

No install step needed — just run it:

uvx whatsapp-sweeper

or, with pipx:

pipx run whatsapp-sweeper

Either one launches a local server and opens your browser to it automatically. Leave the terminal running while you use it; Ctrl+C to stop.

Using it

  • Click a thumbnail to open the file in its default app; double-click also works.
  • Click, Shift-click, Cmd-click, or drag across thumbnails to select multiple — like Finder's icon view.
  • Use the sidebar to filter by sender or by group/chat. Clicking a name cycles it through include-only → exclude → off, and both filters combine.
  • Select all selects everything matching the current filter, not just what's scrolled into view.

How sender resolution works

Media files on disk are just UUIDs sitting in per-chat folders. To label each one with a sender and date, WhatsApp Sweeper reads ChatStorage.sqlite — the same database WhatsApp Desktop itself uses — joining the media entry to its message, then to the group member and chat, to resolve a display name. Older files that have aged out of WhatsApp's own message history simply show up as "Unknown" — that's WhatsApp's retention limit, not a bug here.

Metadata

Release files for whatsapp-sweeper 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for whatsapp-sweeper 1.0.2
File Size Uploaded
whatsapp_sweeper-1.0.2.tar.gz 14.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for whatsapp-sweeper 1.0.2
File Interpreter ABI Platform
whatsapp_sweeper-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 30.5 kB

Release files / whatsapp_sweeper-1.0.2.tar.gz

Download URL whatsapp_sweeper-1.0.2.tar.gz
Size 14.6 kB
Tags Source
SHA-256 checksum
How to use checksums
497834b69d41f9b35e6f796f77de8823bfaf01cf2aa965e60982a61f52157d30
BLAKE2b-256 checksum
How to use checksums
d3ead14d667579577dc3884ef436c5ec578edc1a392d95214da63593c088c6a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / whatsapp_sweeper-1.0.2-py3-none-any.whl

Download URL whatsapp_sweeper-1.0.2-py3-none-any.whl
Size 15.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e003677027a24e3c77196209faed6d29cfa99ea0600dbbbe2fa2d8e8c37eaeff
BLAKE2b-256 checksum
How to use checksums
db29ae4e82ad8c9f443cf43221d35113bea8ba67783abd34e90be433f1924f16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page