Code intelligence that never leaves your machine Local-first · private by design
Kenning indexes every repository you give it into a fast, always-current knowledge graph — searchable by you, your team, and your AI. No cloud round-trip, no API key, nothing uploaded, ever.
The app isn't notarized yet, so macOS blocks first launch. Clear it with
xattr -dr com.apple.quarantine /Applications/Kenning.app, or allow it
via System Settings → Privacy & Security → "Open Anyway".
Nothing ever leaves.
Your source code, your questions, your answers — all of it stays on the machine it ran on.
No waiting around.
The index is already warm in memory, so a question about any part of your codebase comes back in milliseconds.
Grounded in your code.
Every answer traces back to a real line in a real file, re-checked as you keep editing — not a guess.
However you work.
Terminal, browser, native app, or wired straight into your AI assistant — same index, your pick.
See how everything connects.
One search box covers every repository you've added. Jump straight to the symbol, file, or answer you need, and watch the graph of your whole project redraw itself as you build.
- Find anything across every repo, instantly
- See how your code connects, visually
- Stays up to date automatically as you work
Optimised to feel instant.
A tool you have to wait for is a tool you stop reaching for. Kenning is built to disappear — light enough to run constantly, fast enough that you never notice it's there.
To understand a large workspace
Point Kenning at your repositories and it's ready in seconds, not minutes.
To pick up your changes
Edits are reflected almost immediately, so answers always match what's on disk.
Lightweight, no clutter
A single fast application — nothing to provision, nothing running in the cloud.
Without Kenning
An agent re-reads whole files to find what it needs — cost scales with every file it opens, every single time, even for the same question asked twice.
With Kenning
Retrieval returns just the answer-sized slice off the precomputed graph.
kenning status tracks real tokens saved against that same baseline, live
per session — sessions have measured up to 76% fewer tokens per query.
Everything you need, in one place.
Search, memory, docs, and health monitoring are usually four different tools with four different logins. Here they're four panels of the same local index.
Graph
See your whole codebase as a living, explorable map — and find how anything connects.
Memory
Capture the decisions and context behind your code, so your team can search them later.
Wiki
Always-current documentation for every repository, generated straight from your code.
Dashboard
Track index health and coverage across every repository at a glance, always up to date.
Also available as a web UI.
Prefer a browser tab to a dock? The same running index answers at
127.0.0.1:8082 — plain server-rendered HTML, bound to localhost only,
no sign-in, no framework to load.
| Route | What it's for |
|---|---|
| /system | Daemon health — per-repo node/edge counts, live index progress, reset buttons. |
| /search | The same symbol/literal search as `kenning search`, as a form. |
| /memory | Browse stored memories, filterable by text and tag. |
| /wiki | The auto-generated, evidence-gated wiki for each repository. |
| /graph | Interactive WebGL graph — hover a symbol's neighborhood, click for details. |
A full editor, built in.
The graph isn't bolted onto a browser tab — it lives inside a real native editor, with a terminal, a command palette, and a file tree that all already know what the index knows.
- Code editor with syntax highlighting
- Integrated terminal & command palette
- Jump to any file, symbol, or answer instantly
Your AI assistant, without the re-reading.
A fresh agent session starts from zero every time, re-opening files it already figured out last week. Point it at Kenning's standing index instead — its tokens go toward your problem, not toward rediscovering your codebase from scratch.
Ask
One question, one ranked answer — drawn from code, docs, and memory together.
Explore
Callers, callees, and blast radius for any symbol — without opening a single file.
Search code
Structured code search across every repository, returned as precise matches.
Recall
Past decisions and context, remembered across sessions — explained exactly once.
Generic filesystem MCP
A raw read-file/grep-over-MCP tool still opens whole files fresh on every call — same token cost as an agent doing it manually, just wrapped in a protocol.
Kenning's MCP
The daemon holds the graph in memory across calls, so ask/explore/recall answer from a live index — no cold start, no re-reading, the
same warm graph the CLI and desktop app use.
-
Agent governance —
instructions_*/tools_*/skills_*sync one shared catalog to every agent, instead of per-developer config. -
No black-box answers —
trace_submitrejects any claim that doesn't independently grep-verify against the real file.
Simple plans. Everything runs local.
Every plan runs built-in local AI on your own machine — no cloud, no API keys, nothing ever uploaded. Free works out of the box for individuals. Cloud adds team features — shared knowledge, SSO, unlimited scale — deployed in your own infrastructure.
For individuals getting started.
- Index & search all your repositories
- Explore your codebase visually
- Always-accurate answers & knowledge
- Built-in local AI — runs on your machine
- Up to 50 repos, 1 hub
For teams and organisations at scale.
- Everything in Free
- Shared knowledge across your team
- Single sign-on & access controls
- Unlimited repos & hubs
- Deploy in your own infra
All plans run entirely on your own machine — local AI included, nothing ever uploaded.
Every command, one binary.
Every command accepts --hub <path> to target a hub other than the one
auto-resolved from your current directory; most also accept --json for
machine-readable output.
| Command | What it's for |
|---|---|
| kenning login [provider] | Optional sign-in (GitHub or Google) — unlocks Cloud tier and keeps your tokens-saved history across reinstalls. Free tier works without it. |
| kenning logout | Clears the signed-in identity everywhere — CLI and desktop app together. |
| kenning init [--force] | Scaffolds a multi-repo hub: config, local state, and clones any repos declared in it. |
| kenning repo add <path-or-git-url> [--name] | Register another repo into a hub, cloning it first if you passed a URL. |
| kenning repo delete <name> | Remove a repo's checkout from disk and untrack it from the hub. |
| kenning up [--fresh-wiki] | Indexes every repo in the hub and starts the background daemon. |
| Command | What it's for |
|---|---|
| kenning search <query> [--repo] [--limit] | Find a symbol or string literal by name across the whole hub. |
| kenning explore <symbol> [--repo] [--max-files] | See a symbol's neighborhood: callers, callees, blast radius. |
| kenning ask <query> [--repo] [--limit] | One call that runs both recall (docs/memory) and search_code (code). |
| kenning recall <query> [--repo] [--limit] | Full-text search over your docs, memories, and verified traces. |
| kenning status | Per-repo index health, plus a running tokens-saved count. |
| Command | What it's for |
|---|---|
| kenning sync [--repo] | Force an incremental re-index — the daemon already does this automatically on save. |
| kenning sync --repo <name> --reset | Wipe and rebuild one repo's graph from scratch. |
| Command | What it's for |
|---|---|
| kenning memory-store "<content>" --type --tags | Save a typed, tagged memory — a decision, a bug's root cause, a convention. |
| kenning memory ingest [--repo] | Bulk-load memory.md files into the searchable store (rows + FTS + embeddings). |
| kenning memory check [--repo] | Report-only: memories with no backing file, or file sections not yet ingested. |
| kenning trace-submit <trace.json> | Submit a structured trace of how something was verified — fail-closed. |
| kenning wiki bootstrap <repo> | Generate the initial wiki page skeleton for a repo, from its index. |
| kenning wiki get <repo> [--slug] | Fetch a wiki page, generating a skeleton first if it doesn't exist yet. |
| Command | What it's for |
|---|---|
| kenning index [--repo] [--jobs] | The raw indexing step alone, without registering the hub or a daemon. |
| kenning serve --port 8082 | The same daemon `up` starts, run in the foreground for debugging. |
| kenning audit [--strict] [--quiet] | Hub hygiene lint — naming, dangling links, staleness. Built as a CI gate. |
| kenning migrate [--knowledge] [--yes] | One-time import from mcp-memory-service or existing knowledge/ docs. |
| Transport | What it's for |
|---|---|
| kenning mcp (stdio) | One process per agent connection — 20 tools, including memory_store, trace_submit, and wiki_get. |
| Daemon /mcp (HTTP) | One always-on endpoint shared across multiple agent connections — 17 tools, warm index already in memory. |
Full reference: kenning --help / kenning <command> --help.
Contact us.
Free works out of the box — see install instructions above. Cloud is sales-led for now: leave your details and we'll reach out.
Prefer email? Send us a note. We never share your details.