The project
Lookback is a Linux desktop app. You type "the error dialog about the hotspot" or "invoice from the hosting company", and it shows the matching screenshots, PDFs, and notes. It has no account, no cloud, and no telemetry. I built it alone, in about 33,000 lines of Go, and released version 0.1.0 as a tarball, an install script, and a .deb package.
One vector space for text and images
The app embeds text and images with EmbeddingGemma 2, so one query searches both. The model runs in a llama-server child process from llama.cpp. The server listens only on 127.0.0.1 and gets a new API key on each run. If it stops, Lookback restarts it, and after repeated failures it falls back to the CPU.
Fitting the hardware
On first launch, Lookback detects the CPU, RAM, and GPUs. It downloads a matching runtime (CPU, Vulkan, or CUDA) and recommends a model precision. Downloads can resume after a failure, and the app checks their SHA-256 values. A test lab lets you try each combination on your own computer before you choose.
Indexing and search
- Search while indexing. Search works on the files indexed so far, and the UI shows indexing speed and an estimated time to finish.
- Always current. A file watcher updates the index a few seconds after a file changes. On startup, the app finds files that changed while it was closed.
- Vectors in Turso. A spike test searched 100,000 items in 223 to 229 ms per query, against a budget of 1 second. The top results matched a brute-force cosine search.
- Polite. Indexing pauses on battery power. The app stays in the system tray, and a global hotkey opens the window.
That 100,000-item figure is from the vector-store spike, not from the release build.
What is next
Windows support is next, and macOS comes later. Lookback does not do OCR yet.



