How GNO is built — Bun, SQLite, local models, and the shared retrieval core.
GNO is a Bun-compiled TypeScript application with a SQLite-backed index, local model inference via node-llama-cpp, and a shared retrieval core that every surface (CLI, Web UI, SDK, REST API, MCP) plugs into.
Runtime
Bun — instant cold starts, single binary distribution, TypeScript-first runtime
SQLite + sqlite-vec — BM25 FTS plus vector similarity via a SQLite extension. One database file per GNO installation.
node-llama-cpp — local LLM inference for embedding, reranking, and answer generation. GGUF model format.