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 installbun 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. Keepsbun run devsnappy.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.jsonOnce bun install finishes, you have everything you need to either
run the CLI or
run the browser app.