Your help center goes stale the day you ship. KIRA reads your code instead.
KIRA turns a codebase into a maintained knowledge base about your product, then answers your users' questions from it — in their language, grounded in what the code does, and never invented.
// the router, the guards, the copy, // the disabled states, the errors — // whatever the product actually is
type: boundary route: /project/:id/domains confidence: high
Domain registration stays with your current registrar — there is no way to transfer it here.
One fact per file, committed to your repository. Reviewed in a pull request before a customer ever reads it.
The wedge
Docs drift. Code can't.
Every in-product help assistant on the market is grounded in documentation — articles, tickets, marketing pages. All of it describes the product as it was the last time somebody wrote it down. Source code cannot describe a product it does not build.
It knows where things are
Routes come out of your router, so a fact carries the path it lives at. The assistant hands the reader a working link instead of describing where to click — and it knows the same question means different things on different screens.
It knows who can see them
When the code gates something behind a plan or a role, the fact carries that gate. Telling a Free user how to use a Business feature is worse than silence, and no help-centre article has a field for this.
It knows what you can't do
Code is full of guards, plan checks and unsupported branches. The costliest wrong answer here is not an invented feature — it is a confident yes to something the product refuses. So refusals are a first-class fact type.
It leaves a paper trail
Every fact records the files it came from, the commit, and the model that wrote it. Knowledge lives in your repo, so what you now tell users is a git diff — and nothing reaches a customer without review.
Recorded, not simulated
Ask it something
Real output from a real run: a two-fact knowledge base about custom domains, and the answers KIRA gave. The questions are in Russian against an English knowledge base, because that is where the interesting part is — retrieval matches words, so crossing languages is the thing that has to work.
domains · 2 factsrecorded sessionОткройте Project settings → Domains и выберите Add existing domain.
- Введите имя домена.
- Скопируйте две показанные DNS-записи и добавьте их у своего регистратора.
- Проверка обычно занимает до часа — после неё домен получит статус Active.
Обратите внимание: перенести саму регистрацию домена сюда нельзя — она остаётся у вашего текущего регистратора, домен только указывается на проект.
- asked in
- Russian
- searched for
- connect existing custom domain
- rewritten
- yes
The answer is written from the reader's own words, so it comes back in their language — while interface labels stay verbatim in English, because that is what they have to find on screen.
Pipeline
How it works
Four stages. Each is independently useful, and each has its own command.
Propose the map
Scans the repo and proposes an area per user-facing page and per behaviour module, deriving routes from the router. You edit it: an area is a topic, not a directory.
Read the code
Reads each area and writes what it means for the people who use the product. Incremental — an area whose sources have not changed is skipped entirely.
Answer from facts
Retrieves, filters by who is asking and where they are, and answers from those facts only — with an honest “I don't have that” when they don't cover it.
Prove it
Generates questions per area, answers them through the real pipeline, judges the answers, and turns the weak ones into a documentation backlog.
Measured on a private production codebase
Two areas, four source files, extraction at high effort. Numbers only — the knowledge itself belongs to the codebase's owner.
Documentation
Read the details
Quick start
Install KIRA, let it propose the areas of your product, extract facts from the code, and ask your first question — in about five minutes, with no database.
Areas
An area is a topic someone asks about, not a directory. How kira init proposes them from your router, and what to fix by hand before extracting anything.
Knowledge format
One fact per file: frontmatter, body, and the fields that make it an in-product assistant — route, requires, sources, provenance, confidence, and eight fact types.
Configuration
Every key in .kira/config.yaml: the assistant's persona and language, source globs, per-stage models and effort, batching limits, and the area map itself.
CLI
kira init, extract, status and ask — every flag, what each command writes, and how to wire extraction into CI so knowledge is reviewed in a pull request.
Retrieval
BM25 with no vector store, a rewrite hop that lets a question cross languages, boosting by the reader's current screen, plan gating, and diversity selection.
Answering
What KIRA promises when it replies: retrieved facts as the only source, an honest refusal over a plausible walkthrough, verbatim interface labels, and boundaries first.
Roadmap
What v0.1 does today, what the eval loop in v0.2 changes about trusting it, the widget in v0.3 — and the three problems you should weigh before adopting it.