Documentation · v0.6
Developer docs.
Install, configure, and ship with Kernora. Everything here is open — fork it, file issues, send PRs. The Factlet protocol spec lives at github.com/factlet-ai/spec.
Install
One command. Auto-detects your IDE, builds a starter factbook from your repo, wires the MCP server. Runs entirely on your machine — no signup, no cloud account, no telemetry.
# macOS · Linux · WSL
curl -fsSL https://kernora.ai/install | sh
Note
Free/Lite tier is local-stdio only — zero bytes leave your machine, verifiable with tcpdump. Pro+ opts in to S3 sync and the hosted MCP relay at mcp.kernora.ai.
First run
Run nora init inside any repo. Nora scans your code, ADRs, tickets, and docs, builds a starter factbook in .nora/, and wires the MCP server to your installed editors.
cd ~/code/payments-api
nora init
→ Scanning repo for ADRs, tickets, conventions...
→ Found 18 candidate facts. Promoting 12 to canonical.
→ Detected editors: Cursor, VS Code, Claude Code.
→ MCP server registered. Restart your editor to activate.
✓ Factbook ready at .nora/factbook.jsonld
Editor integrations
Kernora ships with native integrations for the most common AI-assisted dev environments. Each integration is a thin MCP client — the factbook itself is identical.
| Editor | Integration | Status |
|---|---|---|
| Claude Code (CLI) | --mcp-config .nora/mcp.json | Live |
| Cursor | Settings → MCP Servers → add Kernora | Live |
| VS Code (Copilot) | Extension marketplace ↗ | Live · v2.7.0 |
| Kiro | Built-in (v0.4+) | Live |
| JetBrains | Plugin marketplace | Beta |
| Zed | Native MCP | In development |
Entry shape
Every fact in the factbook is a JSON-LD record. Plain markdown plus a structured index — sitting in .nora/ next to your code.
{
"@id": "f234",
"@type": "f:fact",
"statement": "Stripe webhook handler must be idempotent via the event id.",
"decided_on": "2026-03-12",
"source": "docs/adr/018-webhook-idempotency.md",
"supersedes": ["f009"],
"applied": 42,
"accept_rate": 0.94,
"confidence": "canonical",
"privacy": "team"
}
Trust ladder
Facts enter the factbook as proposed. The session analyzer promotes them after N applications without contradiction. You approve canonical from the dashboard.
| State | Promotion rule | Visible to AI? |
|---|---|---|
proposed | Just extracted — awaiting evidence | No |
candidate | Applied ≥3× without contradiction | Yes, with candidate badge |
canonical | Human approval from dashboard | Yes |
superseded | Replaced by newer fact, history preserved | No (chain visible) |
Emit formats
Same factbook. Five surfaces. Pick the formats you need — Kernora regenerates them on every change.
nora emit --format claude-code
nora emit --format cursor-rules
nora emit --format kiro-steering
nora emit --format copilot-instructions
nora emit --format claude-auto-memory # NEW · v0.6
Factlet protocol
The factbook is built on the open Factlet protocol. Five elements — f:fact, f:lineage, f:consent, f:confidence, f:emit — wired together with W3C PROV-O for lineage.
Your factbook is portable: an open spec, JSON-LD on disk, vendor-neutral. Switch tools, switch employers, switch models — the factbook moves with you.
MCP tools
Kernora exposes 45 MCP tools. The core read surface works on every tier; mutation tools require Pro for team audit logs.
| Tool | Purpose | Tier |
|---|---|---|
nora_lookup | Query facts by topic, tag, or path | Free |
nora_cite | Resolve a citation ID to its source + lineage | Free |
nora_propose | Add a candidate fact from session output | Free |
nora_supersede | Replace a canonical fact (audit-logged) | Pro |
nora_consent | Set egress tier on a fact | Pro |
nora_provenance
Return full PROV-O lineage for any citation. New in v0.6 — the tool that powers the inline citation chip in Nora Pro.
"name": "nora_provenance",
"input": { "fact_id": "f234" },
"output": {
"statement": "...",
"lineage": [
{ "role": "derivedFrom", "source": "docs/adr/018.md" },
{ "role": "supersedes", "target": "f009" },
{ "role": "approvedBy", "agent": "hello@kernora.ai", "at": "2026-03-22" }
],
"confidence": 0.92
}
Team sync (Pro)
Pro adds encrypted S3 sync via the hosted relay at mcp.kernora.ai. Bring your own bucket; Kernora never holds the key. Per-fact egress consent is the default — you approve which facts cross the wire.
Heads up
Free/Lite remains local-stdio only. Sync is a Pro-tier opt-in, audit-logged at the policy level. If you need stronger isolation (BYO KMS, customer-managed VPC), ask us.
Security
BYOK end to end. On-device factbook. Per-fact egress consent. Audit log of every escalation. Built on the open Factlet protocol so you can verify the wire format yourself.
The install script is one line of sh — read it before you pipe it. The MCP server source is on GitHub. Run tcpdump on kernora.ai after install; on Free/Lite you'll see zero packets.
Telemetry
None on Free/Lite. On Nora Pro and Nora Team, telemetry is opt-in per category — crash reports, usage counts, model-routing stats — and listed in the dashboard with a one-click revoke. Nothing is sent without your consent; nothing identifies you by default.
Uninstall
One command:
kernora uninstall
This stops the daemon, removes ~/.kernora/, and unregisters the LaunchAgent.
Your .nora/ folder stays in your git repo — that's your data, you keep it. Re-running kernora install later picks up where you left off, with a fresh ~/.kernora/ cache.