de3ab5d2a6008f9649438c590a95474e4f52d80d
tafa
A local web app for quickly triaging photos from cloud storage. The idea is simple: when faced with a large set of photos, making a binary decision per image — keep or discard — is much faster than manually sorting through folders. Each photo fills the screen, you press a key, and move on. No clicking, no drag and drop, no context switching. The speed comes from keeping the decision minimal and the interface out of the way.
How it works
- Configure one or more rclone source paths, a date range, and a destination folder
- tafa lists matching photos from the cloud and downloads a small initial batch
- Review photos with keyboard shortcuts — the rest download in the background
- Accepted photos are moved to your destination folder; ignored photos are deleted
Requirements
Setup
uv sync
Usage
make dev # start in foreground with live reload (development)
make start # start in background
make stop # stop background server
make restart # restart background server
make logs # tail background server log
make kill # force-kill anything on port 8000
make clean # remove venv, logs, PID file and local staging
Open http://localhost:8000 after starting.
Keyboard shortcuts
| Key | Action |
|---|---|
→ |
Accept — move photo to destination folder |
← |
Ignore — delete photo from staging |
↑ |
Remind me — show again ~10 photos later |
Configuration
Settings are saved to ~/.tafa/config.json between sessions.
| Field | Description |
|---|---|
| Source paths | rclone remote paths, one per line (e.g. remote:Photos/2026) |
| From / To | Date range — matched against the date in the filename (YYYY-MM-DD) |
| Destination | Local folder where accepted photos are moved |
About
This is a throwaway project built with AI assistance (Claude). It does the job but wasn't written with long-term maintenance in mind. Expect rough edges.
The name tafa has no meaning.
Notes
- Photos already present in the destination folder are highlighted with a green border and won't be copied again if accepted
- Staging files are stored in
~/.tafa/staging/and cleaned up automatically on server shutdown - HEIC/HEIF files are skipped as browsers on Linux cannot display them natively
Description
Languages
Python
51.6%
JavaScript
26.7%
CSS
17.7%
Makefile
3.2%
HTML
0.8%