A Python desktop application for browsing image folders, editing metadata, and running AI-assisted image classification. The UI is built on Tkinter/CustomTkinter, metadata is stored in a local SQLite database, and classification uses Ollama LLaVA with a local heuristic fallback.
- Ship readiness: Not ready
- Confidence: Low
- Biggest risks: Missing
src/config/settings.json, no test suite/CI, no lint/security tooling configured - Doc update: 2026-02-08
- Python 3.8+ desktop app
- Tkinter/CustomTkinter UI
- SQLite metadata storage
- Pillow + OpenCV + EXIF extraction for image handling
- Ollama LLaVA for local image description
Goal: one command to run locally.
python src/main.py- Required config file: copy
config_template.jsontosrc/config/settings.json - Required key:
providers.ollamasettings (Ollama config; seedocs/TECH.md) - Secrets: do not commit
src/config/settings.json - Ollama setup guide: see
docs/TECH.md→ “Ollama LLaVA setup”
- Run:
python src/main.py - Test:
pytest - Lint/format:
black ./flake8/mypy(UNVERIFIED: no config files found) - Security: UNVERIFIED (no dependency audit, secrets scan, or SAST tooling found)
- Build/package: UNVERIFIED (a
setup.pyexists, but no build command is documented) - CI: GitHub Actions runs pytest on push and pull requests (
.github/workflows/python-tests.yml)
src/main.py: main app entrypointsrc/core/: classification, database, and image handlingsrc/ui/: image browser, metadata panel, batch processor UIsrc/config/: runtime settings (expectedsettings.json)docs/: project docs and auditstests/: pytest unit testsrun_simple.py: launcher scriptinstall.bat: Windows convenience script
See docs/TODO.md (top-to-bottom priority order).