LocalLens

What this app is not

A short note on scope so you can tell whether LocalLens is the right starting point.

LocalLens is a teaching example wrapped around a working app. To keep it useful, it's also small on purpose. Here's where it isn't the right fit.

It is not a production document-management system

No permissions, no multi-user access, no audit log, no encryption at rest. Brains live in a plain JSON file under .locallens/. Chunks live in QVAC's workspace directory. Back the folder up and you've backed up the brain.

If you need any of that, you'll need to add it. The Extend section gives you reasonable hooks to start from.

It is not a generic chatbot

The chat model is wrapped by a grounded-prompt builder that refuses to answer from anything outside the retrieved excerpts. That's intentional — it's what makes the answers trustworthy on private content. It also makes LocalLens the wrong tool when you want a general assistant that draws on world knowledge.

It is not a cloud RAG backend

No hosted vector database. No queue. No distributed embedding service. The retrieval pipeline runs in-process through QVAC. Great for privacy, bad for horizontal scale — there's no shared state for a second worker to talk to.

If you want a hosted service for a team to share, LocalLens is the wrong shape. If you want to build one, the modules in src/ are still a useful map for what each layer needs to do.

Decision rule

Does this need to scale across machines, or does it need to stay on one machine? LocalLens is the second answer.

On this page