16 karma · joined September 24, 2025
Contributed claude-faf-mcp to Anthropic's modelcontextprotocol/servers (#2759, merged) and added cargo/crates.io as a package registry type to the official MCP Registry (#1207, shipped in v1.8.0). Built the first MCP server for Grok.
22 packages across npm, PyPI and crates.io, 132k+ downloads. Two Chrome extensions through Google's review. Ambassador, Agentic AI Foundation (AAIF/Linux Foundation), inaugural cohort.
https://faf.one
This one's .fafa (agent identity). The other two: .faf (context) — https://doi.org/10.5281/zenodo.18251362 · .fafm (memory) — https://doi.org/10.5281/zenodo.20348942
Three IANA-registered media types, one thesis.
Claim yours, free or paid: https://mcpaas.live/claim
The globe shows where the edge binary executes. More at https://mcpaas.live/about
The 2.7KB WASM is the server-side scoring engine — Zig-compiled, runs on every request at the Cloudflare edge. The globe visualizes where those executions happen.
Two separate layers: WASM at the edge, JS in the browser.
The real value is exactly what you described: the tribal knowledge, the "we tried X and it broke because Y", the constraints that live in someone's head and nowhere in the code. LLM-generated files miss this because the LLM is just restating what it can already see. Of course that doesn't help.
AI crushes structured data like package.json but struggles with free-form markdown. Two developers describe the same repo completely differently. There's no schema, no validation, no scoring.
Our paper on CERN's Zenodo proposes FAF — a structured YAML format (IANA-registered as application/vnd.faf+yaml) that replaces prose with validated fields. One .faf file generates native outputs for CLAUDE.md, AGENTS.md, .cursorrules, and GEMINI.md. The instruction files stay — they just sit on top of a structured foundation instead of floating independently.
simplify with AI hasn't quite caught on lol
The problem: CLAUDE.md works in Claude Code. SOUL.md works in Moltbot. .cursorrules works in Cursor. None of them talk to each other.
FAF is one source file (project.faf) that renders to all of them. YAML format, IANA-registered.
v4.0 adds:
- Moltbot integration (faf-moltbot on npm)
- Gemini CLI integration
- Full bi-sync (edit CLAUDE.md, it flows back to .faf)
- 21k+ npm downloads
Install: npm install -g faf-cli
Moltbot users: npm install -g faf-moltbot
Happy to answer questions. .faf is YAML-based - noodles for AI. Human-readable strands of context that any model can parse instantly.
Problem: Every AI session starts cold.
Solution: One file any AI can read.
From the paper:
- 10,000+ projects tested
- 99.7% faster context reconstruction
- Validated with Claude, Gemini, GPT
Journey: Solo dev → IANA MIME type → 20k npm downloads → CERN/Zenodo paper
CLI: npm install -g faf-cli && faf init
Happy to answer questions. This post documents a real build session with Grok where:
- Uploaded one .faf file
- Grok scored it 95/100 and locked in full context
- Built a complete GitHub PR code reviewer
- Zero re-explaining across the entire session
- I found 9 code issues, Grok fixed them, found 1 more, fixed that too
Full Grok conversation: https://x.com/i/grok/share/bWWQ7qHbCjHc2Wx3G9WZUq5ay
Format is open, MIT licensed, works with Claude, Grok, any AI.This week I shipped two new implementations:
1. bun-sticky-faf - Pure Bun, zero deps, 328 tests 2. bun-sticky-zig - 77KB binary, zero runtime, built in Bun's language
The Zig version is interesting - Bun itself is built on Zig, so this CLI speaks Bun's native language. Sub-millisecond cold start.
npm: https://npmjs.com/package/bun-sticky-faf Zig: https://github.com/Wolfe-Jam/bun-sticky-zig