LocalLens

Install

Clone the repo, install dependencies, and look at qvac.config.json.

Clone and install

git clone https://github.com/souzavinny/locallens.git
cd locallens
bun install

bun install pulls the QVAC SDK and the dev tools (@biomejs/biome, TypeScript, @types/bun). It doesn't download model weights — those arrive on first use.

qvac.config.json

QVAC reads its runtime config from qvac.config.json at the repo root. The shipped file is small, and worth a quick look:

{
  "loggerLevel": "info",
  "loggerConsoleOutput": true,
  "httpDownloadConcurrency": 3,
  "serve": {
    "models": {
      "locallens-chat": {
        "model": "QWEN3_1_7B_INST_Q4",
        "default": true,
        "preload": false,
        "config": {
          "ctx_size": 4096,
          "temp": 0.2,
          "top_p": 0.9
        }
      },
      "locallens-embed": {
        "model": "GTE_LARGE_FP16",
        "default": true,
        "preload": false
      }
    }
  }
}

Three knobs worth knowing about:

  • preload: false — models load on first use, not at boot. Keeps bun run dev snappy.
  • ctx_size: 4096 — the chat model's context window. If you raise top-K in retrieval, keep this number in view.
  • temp: 0.2 — low temperature for citation-grounded answers. The model should rephrase the source, not invent.

Project layout you'll see

locallens/
├── examples/sample-brain/    a small demo folder you can index
├── src/                      the eight files that make up the app
├── tests/                    Bun tests for chunker.ts and prompt.ts
├── biome.json                lint + format config
├── qvac.config.json
├── package.json
└── tsconfig.json

Once bun install finishes, you have everything you need to either run the CLI or run the browser app.

On this page