A store for Open Knowledge Format bundles
Your Markdown stays the source of truth.
Your agent reads the compiled manifest.
OKF is a good authoring format and an expensive reading format. The agent pays for full frontmatter on every read, and the reference consumption pattern walks the graph one file at a time, spending an inference turn per hop. langonrock compiles a folder of bundles into one dense manifest it keeps in its cached prompt prefix, then fetches concepts in batches, by section.
| id | bundle | kind | status | grain | summary | links |
|---|---|---|---|---|---|---|
| deploy | ops | runbook | - | - | How to ship the orders service. | - |
| customers | sales | bigquery_table | deprecated | customer_id | Registered customers, including churned. | - |
| orders | sales | bigquery_table | - | order_id | One row per completed customer order. | customers |
One row per concept. The links column carries the graph, so the agent knows every id it needs before it fetches anything. A status cell other than - is the concept telling you it is not current.
Twenty questions, one session
| Measured | OKF navigator | langonrock |
|---|---|---|
| Tokens billed | 116,357 | 64,355 |
| Tool calls | 30 | 17 |
| Tokens for one concept read | 594 | 213 |
The manifest is not smaller than the Markdown it replaces. The saving is batching and section addressing. Full numbers, including where the store loses.
What it does
Compiles OKF, does not replace it
Your directory of Markdown stays the source of truth and stays conformant, so okflint, the visualizer and Obsidian keep working on the same folder.
Byte-deterministic output
Identical input compiles to identical bytes, so the manifest survives in the prompt cache across rebuilds instead of invalidating it.
Section addressing
get(id, "schema") returns one slice instead of the whole document, using the concept’s own Markdown headings. No model in the build path.
Batched reads
Pass every id you need in one call. N concepts cost one round trip, and the cost is flat from 500 concepts to 20,000.
Deterministic retrieval
BM25 plus a capped one-hop expansion over the link graph, with no model call anywhere in the path.
Content-addressed snapshots
A backup is a file copy, a restore is a file copy back, and a rollback is a side effect of naming files by their own hash.
Three modes, one interface
- okf:///var/data?tenant=acme
- Embedded, direct file access.
- okf+unix:///tmp/okf.sock?tenant=acme
- Local daemon, warm indexes, no cold start.
- okf+https://host:7777?token=…
- Remote, tenant resolved from the token.
The scheme picks the mode and open(dsn) returns the same interface for all of them. Develop embedded, deploy remote, change nothing at the call site.
Two runtime dependencies. No database.