Skip to content
knomit

Export · a format nobody owns

Publish your knowledge base as Open Knowledge Format.

knomit-okf turns a knomit knowledge base into a publishable OKF repository, and keeps it in sync — using nothing but a git URL. Plain markdown, readable by any OKF consumer and by any human with a browser.

knomit-okf
 Fetching    4 branches  2.8s
 Reading     333 facts · 620 events · 50 retired  2.1s
 Rendering   1029 documents  12ms
 Validating  conformant with OKF 0.2  10ms
 Writing     1030 changed · 0 removed  93ms
 Staging     1030 files  942ms
 Committing  eab7a97d on main  4ms

 Cloned main into my-kb in 6.0s

The format

What the Open Knowledge Format is.

An open specification published by Google Cloud in June 2026, currently at version 0.2.

OKF represents knowledge as a directory of plain markdown documents with YAML frontmatter. There is no schema registry, no central authority, and no required tooling — if you can read a file, you can read OKF; if you can clone a repo, you can ship it. It is deliberately minimal: type is the only always-required key, and a document carrying just type is fully conformant.

It is not tied to any agent, framework, model provider, or serving system. That is the point — knowledge in OKF survives moving between systems, lives in version control alongside code, and is readable by humans and agents without a translation layer.

The loop

Three commands, then it's a habit.

Clone once. Push it somewhere. Sync whenever the knowledge moves.

  1. 01

    Clone the knowledge base into an export

    Point it at your knomit server’s git endpoint. The directory it creates is the OKF repository — there is no second checkout and no cache.

    knomit-okf clone -b main <kb-url> my-kb
  2. 02

    Publish it wherever you host code

    knomit-okf never pushes. It commits; you push — your remote, your credentials, your cadence.

    git remote add origin … && git push -u origin main
  3. 03

    Refresh it whenever the knowledge moves

    An unchanged source does no work at all: a sync with nothing to do costs a fetch and about 70ms, so running it on a timer is free.

    knomit-okf sync && git push

The mapping

A fact goes in. A concept document comes out.

Meaning lands in standard OKF keys; knomit's own axes are preserved alongside them under knomit_*, so nothing is lost and nothing is invented.

in knomit
kb/invariants/embeddings/mandatory/f34da09a.md
---
type: policyorigin: authored
confidence: 0.95
domain: [embeddings, store, app]
entities: [app.New, embeddings.NewEmbedder]
refs:
  - src://knomit/internal/app/app.go
---

Embeddings are mandatory, not an optional degraded mode — the service refuses to start without an embedder.

1c62518 · signed · agent/mindev-8ef0cd32 conf 0.80 → 0.95
published as OKF
kb/invariants/embeddings/mandatory/embeddings-are-mandatory-….md
---
type: invariant
title: 'Embeddings are mandatory: …'
resource: knomit://3ec012f5b4d2/kb/…
tags: [embeddings, store, app, pragmatic]
timestamp: "2026-06-08T15:02:45Z"
generated:
  by: knomit/authored
knomit_type: policy
knomit_confidence: 0.95
knomit_origin: authored
knomit_refs: [src://knomit/internal/app/app.go]
---
standard OKF keys knomit_* extensions

type maps from the fact's topic — the first segment under kb/ — because it is OKF's only required key and answers "what this document is". The leaf type is kept as knomit_type rather than discarded. Links inside the bundle are relative, so it browses correctly on GitHub, on a static host, or straight off the filesystem.

What you publish

Five entries, and everything else is yours.

knomit-okf writes these completely and prunes inside them. Your README, your LICENSE, your .github/ — never read, never written, never staged.

It deletes inside the owned paths too, which is not optional: overlaying files can never remove them, so a retired fact's document would stay published forever, contradicting the views/retired.md in the same bundle.

  • index.md root index, links kb/ and views/
  • log.md changelog, newest first, grouped by date
  • kb/ one concept document per fact, plus per-directory index.md and log.md
  • views/ derived cross-cutting views — domains, entities, retired, synthesis
  • .knomit-okf.yaml sync state: branch, synced commit, tool version

Why publish

Portable knowledge is knowledge you keep.

An exit, not a silo

Every other memory tool is somewhere your knowledge goes in and does not come out. An OKF bundle is plain markdown in a git repo, readable by any conformant consumer and by anyone with a text editor. Nothing about it depends on knomit still being in the picture.

Deterministic, and validated before it commits

Rendering is a pure function of the source commit, and the export commit is timestamped from that commit rather than the clock — so two people exporting the same knowledge get byte-identical repositories. Every bundle is checked against OKF conformance rules before it is committed; a non-conformant bundle is an error, not a commit.

Your source address stays yours

The KB URL lives in a git remote that is never pushed, and the KB’s own history is fetched to refs outside refs/heads/*, so the default push refspec cannot publish it. Recording the address in the bundle is opt-in, and credentials are stripped from it first.

Two doors from here.

The reference covers every command, flag, and gotcha — including the two very different ways the two remotes authenticate. Or read the source, which is the whole argument for a format like this.