Retro games ยท Vinyl ยท Books ยท Trading cards
Thousands of items in boxes, none of them searchable? Photograph them one by one with QR-code dividers between boxes, and Visual Cataloguer turns the camera roll into a browsable inventory โ AI identifies each item, tracks where it's stored, and checks what it recently sold for on eBay.
Local-first. One SQLite file, images included โ no cloud, no accounts.
One per box or shelf โ BOX-1, SHELF-A3. Hand-written labels work too.
Divider, then one photo per item. Cover the lens to end a box. Multiple cameras merge by timestamp.
AI reads the dividers and identifies every item โ title, platform, region, completeness, condition.
Browse the web UI, check recent eBay sold prices, and mark items as listed when they sell.
Claude in the cloud or LLaVA on your own machine via Ollama โ titles, platforms, regions and completeness from a single photo.
One click pulls recent sold listings for an item and shows the low, median and high โ with the sales that back it up.
Every item remembers which box or shelf it came from, so you can actually find it again when it sells.
JPEG, PNG, TIFF and ~20 RAW formats. Auto-crop, deskew and rotate. Duplicate photos are detected and skipped.
Filter by platform, box, completeness or review status. Edit titles, crop images and generate eBay descriptions inline.
CSV, JSON, or images organised by location โ plus a REST API. Everything lives in one portable SQLite file.
Download, unzip, run. No Python, no Docker โ your database lives in your user folder.
DownloadUnsigned builds: on macOS right-click โ Open the first time; on Windows choose "More info โ Run anyway".
For a home server or NAS โ the whole household can browse the collection.
curl -O https://raw.githubusercontent.com/retroverse-studios/visual-cataloguer/main/docker-compose.yml
docker compose up -d
Pulls ghcr.io/retroverse-studios/visual-cataloguer. Web UI on port 8000, database in ./data/.
The full CLI for batch processing, plus the same web UI via viscatalog serve.
pip install visual-cataloguer[web]
viscatalog process ./photos
viscatalog serve
Python 3.11+. Offline OCR mode needs Tesseract.