GEM-4C 558 -4%
GPT-61S 555 -3.8%
CL-SN55 553 -3.8%
CL-OP55 551 -4%
GPT-61TERR 547 -3.5%
GEM-4CM 546 -4%
CL-OP55EH 542 -3.9%
GPT-61SOLXH 541 -3.6%
GPT-61SOLH 527 -3.7%
CL-SN55XH 523 -3.5%
GEM-4CL 520 -3.9%
GPT-61TERRXH 507 -3.4%
CL-OP55H 506 -4%
GPT-61SOLM 500 -3.5%
KIMI-K31P 499 -3.5%
GEM-4AR 498 -3.9%
GPT-61TERRH 490 -3.2%
CL-OP55M 483 -3.6%
MUSE-WONDFUL 479 -3.8%
CL-SN55H 467 -3.3%
CL-HK55 463 -2.9%
GPT-61TERRM 462 -3.1%
GPT-6A 451 -4.7%
MUSE-WOND 451 -3.6%
CL-HK55XH 450 -3%
GPT-6ASTRXH 440 -4.8%
GROK-47 440 -3.1%
GROK-47H 438 -2.9%
GPT-6ASTRH 437 -4.8%
DSK-V-340615 436 -2.9%
QWEN-38X 428 -2.9%
GPT-61SOLL 423 -3.2%
GLM-53 420 -3%
MIMO-V26P 420 -2.6%
CL-HK55H 419 -2.8%
LING-31F1019 417 -2.6%
GEM-38F 416 -2.8%
GPT-6ASTRM 415 -4.6%
MMAX-M31F 414 -2.8%
GEM-38FM 412 -2.8%
GPT-61TERRNO 411 -2.8%
GROK-47L 410 -2.8%
DSK-V-3E48BD 410 -2.6%
GPT-6L 407 -2.6%
GLM-53F 407 -2.6%
STEP-5 405 -2.6%
CL-FABL51XH 403 -4.7%
GPT-61TERRL 403 -2.9%
MIMO-V26F 401 -2.4%
CL-FABL51 399 -4.5%
CL-SN55M 395 -2.9%
CL-OP55L 393 -3.4%
MIST-LARG4 390 -2.7%
CL-FABL51H 386 -4.5%
CL-HK55M 386 -2.3%
GPT-6LUNAXH 377 -2.6%
MUSE-SPAROPE 375 -2.6%
MIST-LARG4M 371 -2.4%
DSK-V4P 365 -2.4%
GPT-6LUNAH 365 -2.1%
GLM-53L 364 -2.4%
CL-SN55L 362 -2.7%
GEM-38FL 361 -2.4%
GPT-6ASTRL 359 -4.5%
CL-FABL51M 359 -4.5%
QWEN-827B 349 -2.2%
CL-HK55L 347 -2%
MMAX-M3 345 -2%
GPT-6LUNAM 344 -2.3%
DSK-V-02811D 344 -2%
K2-HORI375BA 342 -2%
REFL-BEAM 338 -2%
QWEN-827BM 332 -1.8%
CL-FABL51L 329 -4.4%
QWEN-827BL 320 -1.8%
NEMO-35SUPEV 313 -1.9%
INKL 295 -1.7%
NVID-NEMO3UL 295 -1.3%
GEM-35FLITE 295 -1.3%
GPT-6LUNAL 287 -1.4%
GPT-6LUNANON 286 -1%
NANB-333B 285 -2.7%
QWEN-827BNON 282 -1.4%
COMM-APLUS 266 -1.1%
MUSE-GLIM 263 -1.1%
NEMO-35LIGH 261 -0.8%
GRAN-428B 258 -0.8%
MIST-SMAL4 252 -0.4%
INKL-SM 235 -2.5%
GEMM-431B 225 —
GEMM-4E4B 225 —
GEMM-4E4BNON 225 —
LING-30TINY 225 —
MINI-33B 225 —
NORT-MCODE 225 —
NOVA-MICR 225 —
NVID--ADE3B4 225 —
QWEN-54B 225 —
QWEN-54BNONR 225 —
TINY-AYAGLOB 225 —
GEM-4C 558 -4%
GPT-61S 555 -3.8%
CL-SN55 553 -3.8%
CL-OP55 551 -4%
GPT-61TERR 547 -3.5%
GEM-4CM 546 -4%
CL-OP55EH 542 -3.9%
GPT-61SOLXH 541 -3.6%
GPT-61SOLH 527 -3.7%
CL-SN55XH 523 -3.5%
GEM-4CL 520 -3.9%
GPT-61TERRXH 507 -3.4%
CL-OP55H 506 -4%
GPT-61SOLM 500 -3.5%
KIMI-K31P 499 -3.5%
GEM-4AR 498 -3.9%
GPT-61TERRH 490 -3.2%
CL-OP55M 483 -3.6%
MUSE-WONDFUL 479 -3.8%
CL-SN55H 467 -3.3%
CL-HK55 463 -2.9%
GPT-61TERRM 462 -3.1%
GPT-6A 451 -4.7%
MUSE-WOND 451 -3.6%
CL-HK55XH 450 -3%
GPT-6ASTRXH 440 -4.8%
GROK-47 440 -3.1%
GROK-47H 438 -2.9%
GPT-6ASTRH 437 -4.8%
DSK-V-340615 436 -2.9%
QWEN-38X 428 -2.9%
GPT-61SOLL 423 -3.2%
GLM-53 420 -3%
MIMO-V26P 420 -2.6%
CL-HK55H 419 -2.8%
LING-31F1019 417 -2.6%
GEM-38F 416 -2.8%
GPT-6ASTRM 415 -4.6%
MMAX-M31F 414 -2.8%
GEM-38FM 412 -2.8%
GPT-61TERRNO 411 -2.8%
GROK-47L 410 -2.8%
DSK-V-3E48BD 410 -2.6%
GPT-6L 407 -2.6%
GLM-53F 407 -2.6%
STEP-5 405 -2.6%
CL-FABL51XH 403 -4.7%
GPT-61TERRL 403 -2.9%
MIMO-V26F 401 -2.4%
CL-FABL51 399 -4.5%
CL-SN55M 395 -2.9%
CL-OP55L 393 -3.4%
MIST-LARG4 390 -2.7%
CL-FABL51H 386 -4.5%
CL-HK55M 386 -2.3%
GPT-6LUNAXH 377 -2.6%
MUSE-SPAROPE 375 -2.6%
MIST-LARG4M 371 -2.4%
DSK-V4P 365 -2.4%
GPT-6LUNAH 365 -2.1%
GLM-53L 364 -2.4%
CL-SN55L 362 -2.7%
GEM-38FL 361 -2.4%
GPT-6ASTRL 359 -4.5%
CL-FABL51M 359 -4.5%
QWEN-827B 349 -2.2%
CL-HK55L 347 -2%
MMAX-M3 345 -2%
GPT-6LUNAM 344 -2.3%
DSK-V-02811D 344 -2%
K2-HORI375BA 342 -2%
REFL-BEAM 338 -2%
QWEN-827BM 332 -1.8%
CL-FABL51L 329 -4.4%
QWEN-827BL 320 -1.8%
NEMO-35SUPEV 313 -1.9%
INKL 295 -1.7%
NVID-NEMO3UL 295 -1.3%
GEM-35FLITE 295 -1.3%
GPT-6LUNAL 287 -1.4%
GPT-6LUNANON 286 -1%
NANB-333B 285 -2.7%
QWEN-827BNON 282 -1.4%
COMM-APLUS 266 -1.1%
MUSE-GLIM 263 -1.1%
NEMO-35LIGH 261 -0.8%
GRAN-428B 258 -0.8%
MIST-SMAL4 252 -0.4%
INKL-SM 235 -2.5%
GEMM-431B 225 —
GEMM-4E4B 225 —
GEMM-4E4BNON 225 —
LING-30TINY 225 —
MINI-33B 225 —
NORT-MCODE 225 —
NOVA-MICR 225 —
NVID--ADE3B4 225 —
QWEN-54B 225 —
QWEN-54BNONR 225 —
TINY-AYAGLOB 225 —

Delayed ticker data. Last calculated 5 Nov 2026, 11:04 pm Sydney time.

← Back to feed

OKF Agent Memory Turns Your Git Repo Into a Structured LLM Wiki — 300µs BM25, No Database Required

OKF Agent Memory (v0.1.0) landed on Hacker News front page September 6 as a direct response to what the authors describe as a two-bad-options problem in agent memory: flat files that bloat, or vector databases that sprawl.

The project is a single Go binary with zero runtime dependencies. It uses Google’s Open Knowledge Format (OKF v0.2 specification) to turn a project’s existing Git repository into a structured, self-validating knowledge corpus. The tool exposes that corpus to Claude Code, Cursor, Windsurf, and local models via a built-in MCP server.

The Problem It’s Solving

The flat-file approach to agent memory — CLAUDE.md, AGENTS.md, .cursorrules — has a well-documented failure mode in large projects. Context files that start at a few hundred lines accumulate architectural decisions, domain rules, and operational notes until they hit 20,000 tokens or more. At that size, attention degradation kicks in: models consistently underweight content in the middle of long contexts. A 20K-token CLAUDE.md is technically loaded and practically ignored.

The vector database alternative solves the retrieval problem but introduces a different set of constraints: Python or Node runtimes, Docker containers for Mem0 or Letta or Zep, proprietary storage formats that exist outside the repository’s normal audit trail, and embedding API latency of 200–800ms per retrieval call. For a coding agent that queries memory dozens of times per session, that adds up.

OKF’s position is the gap between those two points. It uses in-memory BM25 search — lexical ranking across titles, YAML metadata, tags, and bodies — to answer queries in under 300 microseconds. No embedding API call. No network hop. No external process. Cold start is sub-4ms at under 15MB RSS.

How It Works

Memory lives in a knowledge/ directory inside the project repository as plain Markdown files. Each file follows the OKF schema: frontmatter with metadata, body content, trust tier annotation. The binary indexes those files in memory at startup and exposes four MCP tools: okf_search, okf_show, okf_create, and okf_validate.

The trust tier system distinguishes between human-authored authoritative context (verified: human:...) and agent-generated drafts (generated: agent:...). An agent can write to its own memory during a session and those writes persist as git-tracked files, but they carry a different trust marker than entries a human engineer has reviewed. The audit trail for what an agent has decided and stored is git diff and git blame — the same tooling engineers already use.

Progressive disclosure is the retrieval mechanism: instead of loading the entire knowledge corpus into the system prompt, the agent searches the bundle index and pulls only the relevant 300-token concept for the current task. The claimed prompt overhead reduction is up to 90%.

The MCP Integration

The MCP server mode runs as a stdio server: okf mcp knowledge. Claude Code and Cursor both support MCP natively. Connecting OKF to either IDE takes a one-line config entry. The agent then has access to search, read, create, and validate tools that operate on the project’s knowledge/ directory without leaving the repository.

The timing is relevant. GitHub Copilot shipped persistent memory for JetBrains the same week, retaining context across agent chat sessions. Both approaches land on the same problem — agents that forget — via different architectures. Copilot’s memory is cloud-hosted and managed by GitHub. OKF’s is repository-local and managed by the developer team via standard Git workflows.

That architectural choice has compliance implications in regulated industries. Source code and architectural context that would need to be cleared through data governance before leaving the organization stays in the repository under OKF. It is a different surface area for the security review than a cloud-hosted memory service.

Positioning Against Embeddings

The explicit design choice against embedding-based retrieval deserves attention. BM25 is fast, deterministic, and requires no API budget. It also has well-understood failure modes: it cannot surface conceptually similar content that uses different vocabulary, and it is sensitive to term frequency distributions in the corpus.

For a coding agent’s project memory — where relevant content is usually tied to specific file paths, component names, API surface terms, and architectural decision records — BM25 performs well precisely because the vocabulary is constrained and consistent. The tradeoff is less suitable for agents that need to reason across domains with natural language variation.

Installation

brew install okf-memory/tap/okf
cd your-project && okf bootstrap .

The bootstrap command initializes the knowledge/ directory with the OKF schema. From there, okf mcp knowledge starts the MCP server for IDE integration.

Source: github.com/okf-memory/okf-agent-memory