Skip to content

Ground a model in your own documents

Retrieval is the hard half of a RAG pipeline, and it is the half nidus is. Index a directory once, ask a question in plain language, and get back the few passages that answer it, each carrying the file it came from. What comes back is JSON from a command or an HTTP call, so it works with any model and any framework: nothing here is tied to one.

  • Ingest a directory: walk, chunk, embed and store a tree in one command, re-runnable for free.
  • Remember & recall: the same store, for text that is not files on disk.
  • Hybrid search (RRF): fuse keyword and vector legs into one ranking, so an exact term and a paraphrase both land.
  • Reranking: a cross-encoder pass over the retrieved set, for when precision on the last mile matters more than latency.
  • HTTP server: the same pipeline over JSON, for a client that never links the crate.
Terminal window
nidus ingest ./docs \
--collection docs \
--glob '**/*.md' \
--dir ./store \
--embed-provider voyage
Terminal window
nidus recall docs "how does compaction work" --dir ./store --embed-provider voyage

Over HTTP, the same query is a POST:

Terminal window
curl -s localhost:7700/collections/docs/recall \
-H 'content-type: application/json' \
-d '{"query": "how does compaction work", "rollup": {"neighbours": 1}}'

nidus retrieves; it does not generate. You bring the model, and you decide what to do with what comes back.