Download a release
Grab the desktop app or the server binary for macOS or Linux.
The macOS app is notarized and keeps itself up to date; both platforms ship
a knomit serve tarball. Start here unless you need to modify knomit.
knomit is a distributed, decentralized knowledge base built from facts — knowledge + commit. This page gets you from zero to a running server with a peer connected.
The quickest way in is a signed release build — no toolchain, no compile step.
Download a release
Grab the desktop app or the server binary for macOS or Linux.
The macOS app is notarized and keeps itself up to date; both platforms ship
a knomit serve tarball. Start here unless you need to modify knomit.
Build from source
Everything below. Needed if you’re changing knomit itself, or running on a platform the releases don’t cover.
git.xcode-select --install),
or gcc / build-essential on Linux. The build is CGO-based (SQLite and the
ONNX bindings are compiled in).Clone the repository and enter it.
git clone https://github.com/knomit/knomit.gitcd knomitDownload the native libraries (one-time).
make setupBuild the web frontend and the Go binaries.
make buildStart the server.
make runOpen http://localhost:19278/ for the web UI. A fresh install starts with no repositories — the UI’s “no repos” screen is the ordinary first-run state, not an error. Create your first one from Manage repos.
Creating a repo runs a short wizard: local or a remote, then — if you gave it a remote — credentials and a branch. It probes as it goes and derives the rest, so you are never asked to classify the remote yourself.
Where it asks is the ontology — the topics your repo
accepts, and the rules every fact is validated against. The code preset is the
right answer for a codebase and the default preset for everything else. There
is no setting to change it afterwards — doing so is a migration through git — so
it is worth a minute of thought now. If you point knomit at a branch that is
already a knowledge base, the question doesn’t come up at all: that repo’s own
ontology governs.
The simplest setup uses knomit-bridge over stdio — it auto-discovers your
agent branch from the running server, so you never look it up by hand.
{ "mcpServers": { "knomit": { "command": "dist/knomit-bridge", "args": ["--repo", "core"] } }}To read across several repos at once, use a lens instead:
"args": ["--lens", "<lens-name>"]. --lens and --repo are mutually
exclusive — passing both is a fatal error.
Connect directly, substituting the branch logged on startup (/ → : in the
URL path):
{ "mcpServers": { "knomit": { "type": "streamable-http", "url": "http://localhost:19278/api/v1/repos/core/branches/agent:hostname-abc123/mcp" } }}A lens has no branch segment — its URL is
http://localhost:19278/api/v1/lenses/<lens-name>/mcp.
With an agent connected, ask it to remember something. Under the hood it calls
knomit_learn, which writes a markdown fact and commits it:
---type: observationconfidence: 0.8domain: [music]entities: [alice]refs: - src://myrepo/src/preferences.ts@abc1234---Alice prefers rock music over jazz.That write is one atomic, signed git commit on your agent’s branch. Browse it in
the web UI, or query it back with knomit_query.
Give your agent a knowledge base
Wire knomit into Claude Code or Claude Cowork — slash commands, hooks, and the bridge.
Understand the model
Read Concepts for facts, branches, provenance, and the temporal graph — then Ontologies to shape what your KB will accept.
See how it fits together
The Overview & architecture — the four artifacts and how a request flows.
Wire it into tools
The MCP tools reference and the REST API.
Publish what you learn
OKF export — turn the knowledge base into a portable Open Knowledge Format repository anyone can read.