Skip to content

Quick start

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.

  • Go 1.25+ — the entire backend.
  • Node.js + npm — builds the embedded React frontend.
  • Git CLI — knomit shells out to git.
  • A C compiler — Xcode Command Line Tools on macOS (xcode-select --install), or gcc / build-essential on Linux. The build is CGO-based (SQLite and the ONNX bindings are compiled in).
  1. Clone the repository and enter it.

    Terminal window
    git clone https://github.com/knomit/knomit.git
    cd knomit
  2. Download the native libraries (one-time).

    Terminal window
    make setup
  3. Build the web frontend and the Go binaries.

    Terminal window
    make build
  4. Start the server.

    Terminal window
    make run

Open 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.

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: observation
confidence: 0.8
domain: [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.

Publish what you learn

OKF export — turn the knowledge base into a portable Open Knowledge Format repository anyone can read.