Files
Tafa/README.md
Philipp Ludewig de3ab5d2a6 Initial commit
App works locally. No intention to bring this live.
2026-04-23 16:35:12 -04:00

66 lines
2.4 KiB
Markdown

# 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
1. Configure one or more rclone source paths, a date range, and a destination folder
2. tafa lists matching photos from the cloud and downloads a small initial batch
3. Review photos with keyboard shortcuts — the rest download in the background
4. Accepted photos are moved to your destination folder; ignored photos are deleted
## Requirements
- [uv](https://docs.astral.sh/uv/) — Python package manager
- [rclone](https://rclone.org/) — configured with your cloud remote
## Setup
```bash
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](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