Storage
Your library lives in the browser. Nothing to install.
Every analysis is persisted in the browser, using IndexedDB. There's no database to run, no port to configure, no daemon to keep alive — it works the moment the extension is loaded, which is also what makes it Chrome-Web-Store-ready.
What's stored
- Repos — each analysis payload, keyed by a stable hash of the repo id.
- Decisions & collections — your Adopt / Trial / Hold / Reject calls (with notes and dates) and the collections you've grouped repos into.
- Evaluations & notes — your rubric and per-repo scores, plus any personal notes.
- Graph — the nodes and edges behind the Connections tab.
- Scan history — a local cache of recent scans, so reopening a repo is instant and costs no AI call.
Search across your library is a fast client-side BM25 ranker (the algorithm behind real search engines): rarer query words count for more, and a hit in a high-signal field like the category or capabilities outranks a passing mention buried in the summary. No embeddings, no vector database, no network.
Manage your library
The Library tab is mission control for everything you've scanned:
- Sort & filter — by best fit, health, stars, recency, or name; filter by capability; search as you type.
- Bulk delete — hit Select, tick any number of cards (or Select all), and remove them in one confirmed action. Esc or Done leaves selection mode.
- Stats bar — a one-glance read on the shape of your library (how many strong/solid/care/risky, average health).
Back it up — and take it with you
Because it's your data, you can move it between machines:
- Library → Export writes your whole library — analyzed repos, your decisions and collections, the Connections graph, and the scan cache — to one portable JSON file. Import restores it (merge or replace). Backups are validated and size-bounded on import, so a bad file fails safe instead of corrupting your library.
- Options → Back up your settings exports your preferences — theme, voice, model picks, per-part routing. It is allowlist-driven by design: your API keys and tokens are never written to the file (and are stripped out even if someone hand-edits one in).
Importing an old VelesDB library
Earlier builds of RepoLens saved to a local VelesDB server. If you have one, you can pull that library into the new in-browser store in one pass:
- Start your VelesDB server.
- Open Options → Import from VelesDB.
- Confirm the URL (defaults to
http://localhost:9090) and click Import library.
It reads every saved repo and copies it across. The import is idempotent — re-running overwrites by id, never duplicates. The Connections graph isn't migrated; it rebuilds naturally as you use the app.
Repos saved by older builds may show as Unrated — their fit data was never persisted. Re-scanning a repo fills in its fit chip.
A seam for later
Persistence sits behind a single storage interface. Today the only backend is IndexedDB; a future sync or shared-store backend can slot in behind the same interface without touching the rest of the app.