Store and retrieve AI agent memory as Git-native markdown files
OKF Agent Memory is a git-native, MIT-licensed persistent memory layer for AI agents, stored as plain Markdown with BM25 search and zero API cost.
0.5.0Add to Favorites
Why it matters
Persist AI agent conversations, architectural decisions, and domain knowledge as version-controlled markdown files in your repository, eliminating context loss between sessions and enabling fast local search without vector databases or API costs.
Outcomes
What it gets done
Search agent memory with sub-millisecond BM25 retrieval across concept graphs
Validate knowledge bundles for schema compliance and relationship integrity
Bootstrap persistent memory structure into any project repository
Serve memory operations via Model Context Protocol for Claude and Cursor
Source
Get it from source
Spark does not host a copy of it.
Open sourceReports
Agent outcome reports
No reports yet
Capabilities
Tools your agent gets
Validate OKF bundle conformance, graph connectivity, and description drift.
Search concepts via in-memory BM25 scoring across the knowledge bundle.
Inspect a concept and its relationships with optional JSON output.
Create a new concept with automated log.md and index.md bookkeeping.
Update an existing concept in the knowledge bundle.
Bootstrap full OKF Agent Memory stack into any target project.
Initialize a bare OKF bundle in any directory.
Run as a Model Context Protocol server over stdio for agent integration.
Overview
Okf Agent Memory
OKF Agent Memory stores AI agent project memory as version-controlled Markdown files with YAML frontmatter, searchable via in-memory BM25 in under 300 microseconds with zero embedding-API cost. It carries provenance, trust tiers, and lifecycle metadata, and ships an MCP server for direct use from Claude Code, Cursor, or Codex. Use it when a project's AI agents need memory that survives a closed context window without adopting a vector database or letting ad-hoc notes sprawl unstructured.
What it does
OKF Agent Memory is a domain-neutral, git-native persistent memory layer for AI agents, built on Google's Open Knowledge Format (OKF) v0.2. Instead of a vector database or ad-hoc CLAUDE.md/AGENTS.md notes, project memory lives directly in the repository as plain Markdown files with YAML frontmatter under knowledge/, so it can be inspected, audited, and reviewed with ordinary git diff and git log. Concept search runs on in-memory BM25 lexical retrieval - under 300 microseconds per query and a claimed ~4ms to parse and validate a full knowledge corpus of 50+ concepts with its bidirectional link graph - with zero recurring embedding-API cost since nothing goes over the network. Progressive Disclosure (hierarchical index.md files and link graphs) means an agent only loads the specific concepts it needs rather than the whole corpus, and the format carries provenance (sources), trust tiers (generated vs verified), and lifecycle metadata (status, stale_after) so stale or unverified memory can be distinguished from confirmed fact. A search-before-write convention is meant to stop agents from duplicating or hallucinating concepts that already exist in memory. The whole toolchain is a single zero-dependency Go binary (okf) with sub-5ms CLI startup and a built-in Model Context Protocol server (okf mcp) that connects directly to Claude Code, Cursor, Codex, and other MCP-compatible agent platforms.
CLI commands cover the full lifecycle: validate bundle conformance and graph connectivity (okf validate knowledge --strict --drift), search concepts (okf search "..." knowledge), inspect one concept and its relationships (okf show ... --json), create or update a concept with automated log.md/index.md bookkeeping (okf create/okf update), and scaffold the entire memory stack - the knowledge/ bundle, an embedded .agents/skills/okf-memory/ skill definition, a project-tailored AGENTS.md, and a convenience Makefile - into any new or existing project with one command:
./bin/okf bootstrap /path/to/my-project --name "My Service"
When to use - and when NOT to
Use it when a project's AI agents need memory that survives a closed context window - architectural decisions, domain discoveries, operational facts - without adopting a black-box vector database or letting ad-hoc CLAUDE.md/AGENTS.md notes sprawl unstructured. It is deliberately domain-neutral, with reference bundles for software architecture/ADRs, executive coaching sessions, and literature/cognitive-science reviews, so it is not tied to one workflow. It is a lexical (BM25) retrieval system, not a semantic vector-embedding one - the tradeoff for zero API cost and microsecond latency is that search is keyword-based rather than embedding-based.
Capabilities
Validates OKF bundle conformance, graph connectivity, and description drift; searches concepts via in-memory BM25 scoring; inspects a concept and its relationships (with JSON output); creates and updates concepts with automatic log and index bookkeeping; bootstraps the full memory stack (knowledge bundle, agent skill, AGENTS.md, Makefile) into any project; and runs as an MCP server over stdio for direct use from Claude Code, Cursor, Codex, or any other MCP-compatible client.
How to install
Clone the repository and build the standalone binary:
make build
This produces bin/okf. Run it as an MCP server with ./bin/okf mcp knowledge, and register it in a client config such as:
{
"mcpServers": {
"okf-memory": {
"command": "/path/to/okf-agent-memory/bin/okf",
"args": ["mcp", "/path/to/project/knowledge"]
}
}
}
A Homebrew formula is also packaged in the repository for distribution.
Who it's for
Teams running AI coding agents (or agents in coaching, research, or operations contexts) who want persistent, version-controlled, auditable project memory with no vector database, no embedding-API cost, and no vendor lock-in. MIT licensed.
Source README
OKF Agent Memory
A Domain-Neutral, Git-Native Persistent Project Memory for AI Agents based on the Open Knowledge Format (OKF) v0.2.
๐ Overview
Conversations with AI agents reset when context windows close. Valuable architectural decisions, domain discoveries, and operational facts are lost unless stored persistently.
Traditional approaches suffer from two fatal failure modes:
- The Prompt Monolith: Stuffing all domain knowledge and rules into
AGENTS.mdorCLAUDE.mdcreates massive context bloat and causes attention drift (agents ignore critical instructions). - The RAG Blindspot: Dumping behavioral rules into vector databases fails because agents never semantically search for operational constraints (e.g. formatting or security rules) during general tasks.
OKF Agent Memory resolves this dilemma with the Dual-Memory Agent Architecture (DMAA):
flowchart TD
subgraph PUSH["1. Normative Working Memory (Push Layer)"]
direction TB
C1["Canonical AGENTS.md (~100-150 tokens)"]
C2["Domain Codex (Invariants, Ethics, Tone)"]
C3["OKF Memory Bridge (Deterministic Triggers)"]
C4["Agent Action Grammar (AAG) Micro-Syntax"]
end
subgraph PULL["2. Semantic Domain Memory (Pull Layer)"]
direction TB
O1["OKF v0.2 Knowledge Bundle (knowledge/)"]
O2["0 Tokens baseline in system prompt"]
O3["Selective Retrieval via okf_search / okf_show"]
O4["Persistent Graph of Decisions, Facts & Runbooks"]
end
INPUT["User Request"] --> PUSH
PUSH -->|Enforces Domain Codex & Triggers| AGENT["AI Agent (LLM)"]
AGENT -->|Selective Retrieval| PULL
PULL -->|Context & Facts| AGENT
AGENT --> OUTPUT["Deterministic Response"]
The Universal Composition Model
In DMAA, every agent configuration is structured by a universal composition:
$$\text{AGENTS.md} = \underbrace{\text{Domain Codex (AAG)}}{\text{Project Invariants, Tone, Guardrails}} + \underbrace{\text{OKF Memory Bridge}}{\text{Standardized Triggers: Search-Before-Write}}$$
- Layer 1: Normative Working Memory (Push Layer): A permanent, ultra-compact behavioral codex (~100-150 tokens) expressed in Agent Action Grammar (AAG). Loaded at session start, enforcing zero-tolerance invariants.
- Layer 2: Semantic Domain Memory (Pull Layer): An OKF v0.2 knowledge bundle (
knowledge/) that consumes 0 tokens at baseline and is queried on-demand in microseconds.
flowchart TD
L1["1. OKF v0.2 Specification<br/>(Normative Markdown & YAML Format)"]
L2["2. Agent Memory Convention & DMAA<br/>(Dual-Memory Model, Search-Before-Write, Trust)"]
L3["3. Agent Skill & AAG Codex<br/>(Agent Action Grammar, Workflows, Triggers)"]
L4["4. Tooling Layer: Go Library & CLI<br/>(Deterministic Parsing, Validation, BM25, MCP)"]
L5["5. Project Knowledge Corpus<br/>(knowledge/ OKF Bundle)"]
L1 --> L2
L2 --> L3
L3 --> L4
L4 --> L5
โก Key Highlights
- Dual-Memory Cognitive Architecture (DMAA): Separates normative push working memory (
AGENTS.mdcodex) from semantic pull domain memory (knowledge/bundle), completely eliminating prompt bloat. - Agent Action Grammar (AAG): Ultra-compact, deterministic ASCII micro-syntax saving ~78-85% tokens compared to natural language prompt instructions.
- Blazing Fast Performance (<300ยตs Search, ~4ms Graph Validation): In-memory BM25 retrieval and bundle validation execute in microseconds without VM spin-up or network roundtrips.
- 100% Git-Native & Zero Vendor Lock-in: Everything is version-controlled plain text. Inspect, audit, and review your agent's memory using standard
git diffandgit log. No external database required. - Zero API Costs for Memory Retrieval: Local lexical BM25 indexing eliminates recurring vector embedding API costs and network roundtrips.
- Built on Google OKF v0.2: Uses the open standard format for agent knowledge with full support for provenance (
sources), trust tiers (generatedvs.verified), and lifecycle metadata (status,stale_after). - Solves Context Bloat & Memory Rot: Employs Progressive Disclosure (hierarchical
index.mdfiles and link graphs) so agents only load the exact concepts they need. - Search-Before-Write Principle: Mandates querying existing memory before authoring, preventing concept duplication and hallucinated divergence.
- Governance & Code-to-Knowledge Binding: Bind architecture decisions directly to source files via
code_refsand query active constraints/holds via--for-pathbefore modifying code. - Truly Domain-Neutral: Designed for Software Engineering, Coaching, Scientific Research, Literature Reviews, and Operations.
๐ Performance Benchmarks
Built in Go with zero external dependencies, okf is engineered for high-frequency agent tool calling loops:
| Benchmark Metric | Python / Vector DB Runtimes (Mem0, Letta) | Deno / Node.js Tooling | OKF Agent Memory (Go) |
|---|---|---|---|
| Concept Search Latency | 150ms - 800ms (Embedding API + Vector DB) | 40ms - 120ms | < 300 ยตs (Microseconds, In-Memory BM25) |
| Full Corpus Parse & Graph Validation | 200ms - 1.5s | 80ms - 250ms | ~4.0 ms (50+ concepts, bidirectional graph) |
| Process Cold-Start Overhead | 250ms - 600ms (Python VM boot) | 80ms - 180ms (V8 / Deno boot) | < 4 ms (Compiled Single Binary) |
| Retrieval Cost per 1,000 Queries | ~$0.10 - $0.50 (Embedding tokens) | $0.00 | $0.00 (Zero API cost, fully local) |
| Memory Footprint (RSS) | ~120 MB - 350 MB | ~60 MB - 140 MB | < 15 MB |
๐ Quickstart
1. Build the Tooling
Clone the repository and compile the standalone okf executable:
make build
This generates the standalone binary at bin/okf.
2. Basic CLI Commands
# Validate bundle conformance, graph connectivity, and description drift
./bin/okf validate knowledge --strict --drift
# Search concepts via in-memory BM25 scoring
./bin/okf search "architecture layers" knowledge
# Discover constraints and active holds governing a specific source file before editing
./bin/okf search --for-path pkg/okf/types.go knowledge
# Inspect a concept and its relationships (with --json support)
./bin/okf show architecture/layers knowledge --json
# Create a new concept with automated log.md and index.md bookkeeping
./bin/okf create decisions/auth-flow knowledge \
--type Decision \
--title "OAuth2 Authorization Flow" \
--desc "Standardized on PKCE for client authentication."
# Update an existing concept
./bin/okf update decisions/auth-flow knowledge \
--desc "Updated OAuth2 PKCE token refresh interval."
# Bootstrap full agent memory stack into any target project
./bin/okf bootstrap /path/to/project --name "My Project"
# Initialize only a bare OKF bundle in any directory
./bin/okf init my-project/knowledge
# Zero-Knowledge Sync: initialize vault and print Emergency Kit
./bin/okf hub init-vault knowledge
# Zero-Knowledge Sync: push or sync changes with the Hub (optional: --token or OKF_HUB_TOKEN)
./bin/okf hub push knowledge --password "pass" --secret-key "XXXX-..." --auth-token "my-token"
./bin/okf hub sync knowledge --password "pass" --secret-key "XXXX-..."
# Pull external knowledge bundles from OKF Registry (registry.okf-memory.dev) or Git
./bin/okf pull nextjs-15
./bin/okf pull peter/django-5-rules
./bin/okf pull github.com/acme/agent-rules@v1.0.0
# Restore all locked vendor bundles in fresh environments
./bin/okf restore
# Inspect and manage installed vendor bundles
./bin/okf vendor list
./bin/okf vendor remove nextjs-15
3. Multi-Scope Memory Layering & Scoped Resolution
OKF Agent Memory organises knowledge across four deterministic memory scopes. Higher layers strictly shadow identical concept IDs in lower layers during search, ensuring local project decisions always take precedence over external upstream packages or machine baselines:
flowchart TD
subgraph Scopes ["OKF 4-Tier Memory Hierarchy"]
P["<b>Project</b> (Priority 100)<br/>Prefix: <i>none</i> (e.g. decisions/auth)<br/>Location: ./knowledge/"]
V["<b>Vendor</b> (Priority 70)<br/>Prefix: @bundle/... (e.g. @nextjs-15/routing)<br/>Location: .okf/vendor/"]
U["<b>User</b> (Priority 50)<br/>Prefix: user:... (e.g. user:guidelines/style)<br/>Location: ~/.okf/"]
S["<b>System</b> (Priority 10)<br/>Prefix: system:... (e.g. system:corp/policy)<br/>Location: /etc/okf/"]
end
P -->|shadows| V
V -->|shadows| U
U -->|shadows| S
Scope Specification Matrix
| Scope | Link / Reference Syntax | Canonical URN | Storage Location | Priority | Precedence & Rules |
|---|---|---|---|---|---|
project |
decisions/auth.md |
(bundle relative) | ./knowledge/ |
100 | Local Project Memory. Authoritative SSoT for current repository; strictly shadows identical IDs from vendor, user, and system layers. |
vendor |
@nextjs-15/routing.md@peter/django-rules/auth.md |
okf://@nextjs-15/routingokf://@peter/django-rules/auth |
.okf/vendor/<bundle>/ |
70 | External Packages. Pinned dependencies pulled from OKF Registry (registry.okf-memory.dev) or Git. Shadows user and system. |
user |
user:guidelines/style.md |
okf://user/guidelines/style |
~/.okf/ |
50 | Personal Agent Memory. Developer preferences and cross-project notes. Shadows system. |
system |
system:corp/policies.md |
okf://system/corp/policies |
/etc/okf/ |
10 | Enterprise / Machine Memory. Infrastructure baselines and compliance policies. |
Filtering by Scope in Search & Show
# Default (--scope all): Search across all layers with automatic shadowing & priority ranking
./bin/okf search "authentication"
# Search strictly within vendor packages
./bin/okf search "routing" --scope vendor
# Search strictly within local project memory (or use alias --scope bundle)
./bin/okf search "architecture" --scope project
# Search user or system layers
./bin/okf search "style" --scope user
./bin/okf search "compliance" --scope system
# Inspect concepts across scopes
./bin/okf show decisions/auth # Local project concept
./bin/okf show @nextjs-15/decisions/routing # Vendor package concept
./bin/okf show user:guidelines/style # Personal user concept
./bin/okf show system:corp/policies # System compliance concept
4. Bootstrapping Agent Memory in Any Project
Scaffold the complete OKF Agent Memory architecture into any new or existing repository with a single command:
# Bootstrap full memory stack into target project
./bin/okf bootstrap /path/to/my-project --name "My Service"
This automatically sets up:
knowledge/- OKF v0.2 compliant persistent memory bundle (index.md,log.md).agents/skills/okf-memory/- Embedded agent skill definition and capability guidesAGENTS.md- Project-tailored operating instructions for AI coding agentsMakefile- Convenience tasks for validation (make validate) and search (make search q="...")
4. Running as an MCP Server
okf ships with a native Model Context Protocol (MCP) server over stdio to seamlessly connect with Claude Code, Cursor, Codex, and other agent platforms:
./bin/okf mcp knowledge
Example MCP Configuration (claude_desktop_config.json or Cursor):
{
"mcpServers": {
"okf-memory": {
"command": "/path/to/okf-agent-memory/bin/okf",
"args": ["mcp", "/path/to/project/knowledge"]
}
}
}
๐ Repository Structure
okf-agent-memory/
โโโ .agents/ # Active agent skills and agent configuration
โ โโโ skills/okf-memory/ # Authoritative OKF memory skill for AI agents (Single Source of Truth)
โโโ benchmarks/ # Progressive disclosure benchmark suite & hardware test data
โ โโโ data/ # Monolith docs vs OKF bundle test fixtures
โ โโโ results/ # Reproducible benchmark logs across 8+ local & cloud LLMs
โโโ cmd/
โ โโโ okf/ # Standalone CLI and embedded MCP server (`stdio`)
โ โโโ okf-benchmark/ # Automated benchmark runner for LLM TTFT & token measurements
โโโ docs/ # Guides, specifications, architecture & release playbook
โ โโโ README.md # Central documentation index & navigation
โ โโโ guides/ # User guides, CLI/MCP reference & AI instruction best practices
โ โโโ spec/ # OKF convention v0.1, compatibility analysis & architecture RFCs
โ โโโ security/ # Data governance, secret prevention & adversarial security audits
โ โโโ project/ # Project roadmap, release playbook & multi-agent testing
โ โโโ releases/ # Versioned release notes & changelog archive (v0.1.0 - v0.5.0)
โโโ examples/ # Domain-neutral reference DMAA projects (AGENTS.md + OKF v0.2 knowledge/)
โ โโโ books/ # Literature & editorial analysis repository
โ โโโ coaching/ # Executive coaching & client session repository
โ โโโ software/ # Microservices architecture & ADR engineering repository
โโโ knowledge/ # Project's own OKF v0.2 persistent memory bundle
โ โโโ index.md # Root progressive disclosure index (okf_version: "0.2")
โ โโโ log.md # Dated change log (ISO 8601 YYYY-MM-DD)
โ โโโ project/ # Overview & value propositions
โ โโโ architecture/ # 5-tier architecture, governance model & decisions
โ โโโ convention/ # Principles & lifecycle workflows
โ โโโ roadmap/ # Milestones
โโโ packaging/ # Distribution packaging
โ โโโ homebrew/ # Official Homebrew formula & tap instructions
โโโ pkg/
โ โโโ lock/ # Zero-dependency okf.lock parser & serializer
โ โโโ okf/ # Core library (parser, validator, BM25, MCP, bootstrap)
โ โ โโโ assets/ # Embedded bootstrap templates & skills mirrored via `make sync-assets`
โ โโโ registry/ # Decentralized OKF Registry client & archive unpacker
โ โโโ sync/ # Blind sync engine, 3-way reconcile & hub client/server
โ โโโ vault/ # AES-256-GCM envelope crypto, Argon2id KDF & CAS blind storage
โโโ scripts/ # Verification & automated audit review helpers (e.g. Jules integration)
โโโ AGENTS.md # Operating instructions for AI coding agents
โโโ CONTRIBUTING.md # Contribution guidelines & development workflow
โโโ CONTRIBUTORS.md # Community contributors & acknowledgements
โโโ CODE_OF_CONDUCT.md # Contributor Covenant v2.1 code of conduct
โโโ Makefile # Build, test, lint, validation & release targets
โโโ LICENSE # MIT License
โโโ README.md # Main repository documentation
โโโ SECURITY.md # Security policy & reporting guidelines
๐งช Testing & Verification
Run the full test suite and validate the repository's self-documenting knowledge bundle:
make check
๐ Further Documentation
- Documentation Index - Central directory of all project documentation.
- Getting Started Guide - Comprehensive onboarding guide for agents and humans.
- CLI & MCP Reference - Complete command-line and protocol tools reference.
- Dual-Memory Agent Architecture RFC - Cognitive 2-layer agent memory model (Push codex + Pull knowledge).
- Agent Action Grammar RFC - Deterministic, token-efficient AAG micro-syntax specification for
AGENTS.md. - Agent Instruction Best Practices - Guide to deterministic instruction design and token optimization.
- OKF Agent Memory Convention v0.1 - Behavioral rules and lifecycle specification.
- Contributing Guide - Development setup, quality gates, and pull request standards.
- Security & Privacy Guidelines - Data governance, secret prevention, and PII protection rules.
- Multi-Agent Testing & Evaluation - Test scenarios, compatibility matrix, and benchmarks.
- Project Roadmap & Milestones - Phased development plan.
- Release Playbook - Versioning, CI/CD pipeline, and distribution procedures.
- Release Notes & History - Versioned changelogs and historical release notes archive.
- OKF v0.2 Compatibility Matrix - Specification validation analysis.
- Why OKF Agent Memory? - Detailed value proposition & differentiators.
- Alternatives & Ecosystem Comparison - Comparison with Mem0, Letta, and ad-hoc markdown files.
๐ฅ Contributors
Thank you to all the wonderful contributors who have helped build and refine OKF Agent Memory!
Contributions of all kinds are warmly welcomed! See CONTRIBUTING.md and CONTRIBUTORS.md for details.
๐ Support & Sponsoring
If you find OKF Agent Memory valuable for your autonomous agent workflows, consider sponsoring the project on GitHub to help support continuous development, security hardening, and spec compliance!
๐ License
MIT License. See LICENSE for details.
FAQ
Common questions
Discussion
Questions & comments ยท 0
Sign In Sign in to leave a comment.