RobinSinghAI Engineer · Interface
← Labs
L-01 · ProductLIVE2025

Omni Docs

A conversational assistant that reads API documentation the way a developer does — exact identifiers first, prose second.

HERO SHOT — PRODUCT UI 16:11
Role
Design, engineering, ops — solo
Timeline
Mar 2025 — ongoing
Users
~2.4k developers / month
Status
Live, actively maintained
01

Why it exists

I kept losing twenty minutes to finding one parameter name in an API reference. Search inside documentation sites is either exact-match and brittle, or semantic and confidently wrong. Neither is what a developer wants at 11pm with a failing integration.

02

What I built

A chat surface over a two-stage retriever. Lexical BM25 and dense KNN run in parallel, fuse with reciprocal rank fusion, then a cross-encoder reranks the top 24 down to 6. Generation only ever sees six passages, which caps token cost independent of corpus size.

03

The interface problem

The retrieval was solved before the product was. Early testers did not trust answers they could not verify, so every response now renders its source passages inline, collapsed, with the matched identifier highlighted. Trust went up more from that change than from any accuracy improvement.

04

What broke

Reindexing was a nightly full rebuild, which meant answers were up to 24 hours stale after an upstream release — the exact moment people most need the docs. Rebuilt as a diff against release tags. Also learned that a semantic cache keyed on raw query strings has a hit rate near zero; keying on normalized embeddings took it to 61%.

05

Where it stands

Live, self-serve, running on a fixed monthly inference budget. Next up is a per-repository mode so teams can point it at their own internal docs without an ingestion pipeline of their own.

Fig. 1 — Retrieval path
querybm25 + knnrrf fusecross-encodergenerate
Interface work
CHAT + SOURCES
Answers render their source passages inline, collapsed by default.
EMPTY STATE
The empty state suggests three real queries against the loaded corpus.
LATENCY AFFORDANCE
Retrieval and generation stream as separate stages, so waiting feels legible.
CORPUS PICKER
Switching docs sets is one keystroke; the index name stays visible throughout.
Build log
Aug 2026Per-repository mode in private beta with two teams.
May 2026Diff-based reindexing against upstream release tags; staleness window down from 24h to ~12min.
Jan 2026Semantic cache rekeyed on normalized embeddings. Hit rate 4% → 61%.
Sep 2025Inline source passages shipped after five user interviews. Trust scores up sharply.
Mar 2025First version: dense retrieval only. Fast to build, wrong too often.