open knowledge format

Markdown your
agents can read.

OKF is Google Cloud's open, vendor-neutral spec for representing knowledge as a directory of markdown files with YAML frontmatter — git-native, no SDK, consumable by any agent. Draftmark speaks it: export any doc as an OKF concept document, or any collection as an OKF bundle. Same markdown you already share, now in a format any agent framework can traverse.

# any doc → an OKF concept document
$ curl draftmark.app/share/a1b2c3d4.okf.md

---
type: "BigQuery Table"
title: "Orders"
description: "One row per order."
resource: "draftmark.app/share/a1b2c3d4"
tags: ["sales"]
timestamp: "2026-07-15T14:30:00Z"
---

# Orders
One row per completed order.
// what is OKF
[md]

The "LLM wiki" pattern

LLMs work better with a curated, linked, maintainable library of markdown than with repeated document search. OKF formalizes what Obsidian vaults, AGENTS.md, and CLAUDE.md already do — into one portable standard.

[type]

One required field

A concept document needs only a type — a free string like Runbook or API Endpoint. Everything else (title, description, tags) is optional. Consumers tolerate anything.

[git]

Git-native

A bundle is just a directory of .md files. Commit it, diff it, read it on GitHub. No database, no registry, no proprietary export format to reverse-engineer later.

[∅]

No vendor lock-in

Plain markdown plus YAML — parseable by any LLM or agent framework. No Google-specific SDK, no dependency. Works with Claude, GPT, open-source models, or anything that reads text.

// how Draftmark produces it
00

A doc becomes a concept

Add .okf.md to any share URL — or ?format=okf on the API — and Draftmark wraps the markdown in OKF frontmatter. title, resource, and timestamp are synthesized; type, description, and tags come from the doc's meta.

$ curl draftmark.app/share/a1b2c3d4.okf.md
# or the API
$ curl "draftmark.app/api/v1/docs/a1b2c3d4?format=okf"
01

A collection becomes a bundle

Ask a collection for ?format=okf and Draftmark returns a bundle manifest — a generated index.md, a log.md changelog built from edit history, and one concepts/{slug}.md per member, ordered as you arranged them. Labels become the index entries, and links between members are rewritten to bundle-relative paths so the tree navigates offline. Want the whole thing as a file? Hit /c/{slug}.okf for a gzipped tarball you can tar -xz straight into a repo.

$ curl "draftmark.app/api/v1/collections/sales?format=okf"

okf_version: "0.1"
files:
  - index.md
  - concepts/orders.md
  - concepts/customers.md
02

Private stays private

Anonymous exports include public docs only. A collection owner — with the magic token, API key, or owning account — gets private members too. Nothing leaks that the caller couldn't already read with the doc's own credential.

# public docs only
$ curl ".../collections/sales?format=okf"
# + private members
$ curl -H "Authorization: Bearer key_..." ...
03

Any agent consumes it

The output is plain markdown. Feed a concept doc into a prompt, stream a bundle into a vector store, or unpack the tarball into a repo your agents already read. Nothing about it is Draftmark-specific.

$ curl -L draftmark.app/c/sales.okf \
  | tar -xz
# → sales/index.md, sales/log.md, sales/concepts/…
// the mapping
[→]

Collection → bundle

A collection is a directory of concepts. Its title heads the generated index.md; member order and labels drive the listing.

[→]

Doc → concept document

Each doc becomes one concepts/{slug}.md with synthesized frontmatter and its markdown body, untouched.

[→]

meta → frontmatter

meta.type, meta.description, and meta.tags flow straight into the OKF fields. type defaults to Document.

[→]

share URL → resource

The canonical share link becomes the concept's resource URI; the doc's last update becomes its timestamp.

Curated markdown,
portable knowledge.

create a docread the OKF spec →