Cribrum

A local photo sieve for Android

Cribrum scans storage for images you can safely delete, surfaces candidates for your review, and keeps deletions in a 30-day trash.

Requires Android 11 or newer. Free software under GPL-3.0.

Storage scan overview 100% on-device
Exact duplicates
1.4 GB
WhatsApp sent and stickers
3.2 GB
Blurry shots
480 MB
Screenshots and notes
620 MB

Design principles

Private by design
All scanning and analysis run on your device. No photos, hashes, or metadata ever leave your phone. Cribrum declares zero network permissions.
Suggestions only
The app surfaces candidates for review. You confirm every deletion batch. Nothing is removed without your explicit confirmation.
30-day trash
Approved deletions move to an app-managed folder on storage instead of disappearing immediately. You have 30 days to restore any photo deleted by mistake.
Recall over precision
Showing an image you choose to keep is acceptable. Missing clutter that could free storage is not.

What it finds

Exact duplicates
Matches identical files byte-for-byte using xxHash. Fast and free of false positives.
Similar copies
Identifies recompressed copies from messaging apps with perceptual hashes and MobileCLIP embeddings, keeping the original.
Blurry photos
Measures sharpness with Laplacian variance on subject areas, preserving intentional portrait blur.
Chat clutter
Cleans up hidden sent folders, reaction stickers, and forwarded media that messaging apps store across storage.
Screenshots and notes
Detects temporary whiteboard captures, receipts, slides, and old screenshots.

Permissions and sideloading

Standard gallery applications use Android MediaStore, which only indexes public media folders. MediaStore ignores folders with .nomedia markers, such as WhatsApp Images/Sent, where silent storage waste accumulates.

Cribrum asks for MANAGE_EXTERNAL_STORAGE (all files access) to scan hidden directories directly. Because Google Play restricts this permission to file managers, Cribrum is distributed as a direct APK download on GitHub.

Cribrum does not declare android.permission.INTERNET in its manifest. The app cannot open network connections or send data anywhere.

Install

  1. 1

    Download the APK

    Get the latest release from the GitHub releases page.

  2. 2

    Allow unknown apps

    Open the downloaded package. When Android asks to allow installation from your browser or file manager, confirm to proceed.

  3. 3

    Verify the checksum (optional)

    Verify package integrity before installing with the SHA-256 digest:

    sha256sum -c cribrum-*.apk.sha256

Source code and license

Cribrum is free software licensed under the GNU General Public License v3.0. Source code, detector benchmarks, and design notes are on GitHub: https://github.com/Bert0ns/cribrum