work / vectorless
Vectorless
Document retrieval where a language model reads a document's section tree instead of searching a vector index.
- Years
- 2026
- Status
- active
- Live
- vectorless.store
What it is
Vectorless parses a document into a tree of its real sections, with titles and page ranges. At query time a model reads that map and picks whole sections, up to six, and the answer comes back with page ranges and verbatim quotes. No embeddings, no similarity search, no vector database. The only splitting is structural: a PDF leaf longer than 2,400 characters becomes roughly 900-character child sections at word boundaries, each keeping its parent's page range.
Read more
The engine is open-source Go, about 38,000 lines plus 560 tests, and ships as one Docker container with a bundled Postgres and a web UI. Ingest is asynchronous behind River, Asynq or QStash. Any answer can be replayed byte for byte from its trace token, and the provider key can travel per request (Anthropic, OpenAI, Gemini or GLM).
Around it: TypeScript, Python and Go SDKs, an MCP server, a multi-tenant control plane with billing and quotas, a FinanceBench harness, and two Go libraries pulled out of the engine, llmgate and pdfgrab.
Stack
- Go
- Postgres
- River
- Asynq
- QStash
- S3 / R2
- Docker
- Anthropic
- OpenAI
- Gemini
- Z.ai GLM
- TypeScript
- Python
- Next.js
- MCP
Counted
- 235engine commits
git rev-list origin/main, 2026-10-12 - 37,767Go lines in the engine
non-test, excluding generated code - 560engine test cases
func Test across 86 files - 22REST routes
cmd/server router, plus 13 Connect-RPC methods - 4LLM providers
Anthropic, OpenAI, Gemini, GLM
How it works
The system as a machine on a bench. Hover or use the arrow keys to drive it.
The path through it
- POST /v1/documentsMultipart upload, answered 202; the job goes on a queue.
- Parse into a treePDF, DOCX, Markdown or a URL becomes a hierarchy of sections with titles and page ranges (ToC extracted, generated, or both).
- PersistThe tree in Postgres, the source bytes in object storage.
- POST /v1/answer/treewalkThe model reads titles and summaries and selects 1 to N whole sections.
- Answer with citationsThe engine fetches the full sections; the answer carries page ranges, verbatim quotes and a trace token.
- POST /v1/replayAny answer replays byte for byte from its trace token.