Um chat local-first sobre seus arquivos, sem a nuvem
O LocalLens transforma qualquer pasta em um brain privado. Você pergunta, recebe respostas com citações — tudo na sua máquina. Construído com Bun, TypeScript e o QVAC SDK.
bun run cli examples/sample-brain "your question"Brain de exemplo
12 arquivos · indexados localmente
O loop inteiro, em oito arquivos TypeScript
Descoberta de arquivos, chunking, retrieval, prompts, completion, persistência e dois pontos de entrada. Pequeno o bastante para ensinar, completo o bastante para estender.
Descoberta de arquivos
Percorre qualquer pasta, filtra por extensões seguras, ignora caches e lockdirs, e normaliza paths para o file picker do navegador.
RAG local
QVAC ragChunk + ragIngest + ragSearch entregam retrieval com grounding — sem vector database na nuvem, sem API keys.
Inferência no dispositivo
QWEN3 1.7B (Q4) para chat, GTE-Large FP16 para embeddings. Tem fallback para 600M em máquinas mais enxutas.
Respostas com citações
Toda resposta vem com citações entre colchetes que apontam para o chunk exato no arquivo original.
Armazenamento em JSON
Brains e chunks ficam em .locallens/store.json. Você inspeciona com cat, faz backup com cp e compara com git diff.
CLI + navegador
Dois pontos de entrada sobre o mesmo core. Testa a pipeline no terminal e depois sobe com Bun.serve para ter uma UI de verdade.
IA local por design
Os arquivos não saem da sua máquina
O QVAC roda os modelos localmente. Ingestão e busca acontecem em processo — nenhum documento é enviado para lugar nenhum.
Respostas com grounding
O prompt builder força o modelo a citar os chunks recuperados ou a dizer claramente que não sabe. Sem caminhos inventados.
Nuvem opcional
Tira a rede do ar e o LocalLens continua funcionando. Depois você abre um túnel se quiser compartilhar um brain com alguém.
Pequeno o bastante para ler
Oito arquivos TypeScript em src/, divididos por responsabilidade. Você lê o código todo numa tarde.