phota
Every photo folder I touch turns into a mess. Camera dumps next to screenshots next to exports, five near-identical shots of the same thing. phota is the cleanup tool I wanted: type phota in a terminal and a small control window opens on the folder I already have open in Finder. No importing, no library. The folder stays a folder.

The idea
Photo apps want to own my photos. Import them, organize a copy inside a database, and the original folder is still a mess. I wanted the opposite: a tool that walks into the folder, tidies it in place, and leaves. Re-ordering is written back as numbered filenames, so the order survives anywhere. Repeats are found with a perceptual hash and only flagged, nothing moves until I say so. Anything that touches disk writes an undo manifest first.














phota works on the folder you already have open. Drive a row, watch your folder reorganize in place. Undo anytime; nothing leaves the folder.
How it works
A Python engine scans the folder once into a local SQLite index: EXIF, sharpness, exposure, perceptual hashes, burst groups. A FastAPI server wraps the engine and serves a small React app on localhost, so the window is just a browser doing its best impression of a utility.
Add an AI key, unlock more
Bring your own key (Claude, GPT, or a local model) and an optional AI layer appears: semantic search, and picking the best shot of a burst. It stays hidden until you add one, and everything else works without it.
Built with
Python, FastAPI, and SQLite for the engine. React, Vite, and Tailwind for the window. Built with Claude Code, spec first: the rule that nothing touches originals without an explicit apply came before any feature, and 190 tests hold it in place.
View the code on GitHub ↗