Personal Media Library
Keep your photos clean
This tool scans your photo library for explicit content and moves anything flagged into a private, password-protected vault. Anything safe stays in your main library. If the filter gets it wrong, you can put a photo back with one click.
- Filter strength
- —
- System
- —
- Recent activity
- —
Console
Set how strict the filter should be, scan your library, and review what's been flagged.
What this does
Use the Photos tab to scan your library. The system looks at each image and moves anything explicit to a private vault. Use the Filter tab to set how aggressive it should be. Check Health if something seems off.
Recent activity
Nothing has happened yet.
How strict should the filter be?
These settings affect future scans. Already-flagged photos aren't re-checked.
Storage & access settings
Where the photos live, where the flagged ones go, and the password to view the vault.
Edit these here and they're written to .env at the
repo root. Restart the server to fully pick them up — the Restart button below uses
launchctl kickstart on the merged-app job.
Saved as-is; not echoed back to the UI. Existing password stays in place if this field is blank.
Photos scoring at or above this go to the vault. Lower = stricter.
Where am I, and where else can I go?
Two copies of this app exist: Production on Cloud Run (cleaner only, public-cloud storage) and Local dev on your Mac (cleaner + PKL Utilities, local SSD + Neon DB). The card below pings each, tells you which is currently reachable, and gives you a one-click way to switch.
https://pkmcleaner.lfiq.app/
http://localhost:8000/
Local dev isn't running. Browsers can't directly start apps on your Mac (locked down for security), but the easy path is one double-click:
Or paste a one-liner in Terminal yourself
cp /Volumes/satopkm/justinsato/Projects/ACTIVE/02-pkm.cleaner.engine/utils/launchd/com.justinsato.pkl.console.plist ~/Library/LaunchAgents/ && launchctl load ~/Library/LaunchAgents/com.justinsato.pkl.console.plist
launchctl load ~/Library/LaunchAgents/com.justinsato.pkl.console.plist
Once loaded, the server auto-starts on every Mac login. After it boots (~3s), click Re-check.
Scan your library
Quick scan only checks photos that haven't been classified yet (or were classified at a different threshold). Full re-scan ignores cached results and re-runs every image. Both record a score per photo so you can sort and filter them later.
Score distribution
How explicit each photo looks to the model. The dashed line is your current threshold — everything to the right gets quarantined. Use this to pick a threshold that catches what you want without sweeping in too many false positives.
Loading…
Live activity
Start a scan to see photos being processed in real time.
Your library
Safe photos that stayed in the main library. Each shows the model's score.
Loading…
Is everything working?
Each component below is checked live. Green means it's working. Red means it isn't — and the row will tell you what's wrong and what to do about it.
Checking…