HNHacker News
TopNewBestAskShowJobs

wolfejam

16 karma · joined September 24, 2025

Creator of .faf, a persistent project context format for AI projects. Three IANA-registered media types (application/vnd.faf+yaml, .fafm, .fafa), specified in two IETF Internet-Drafts.

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

submissionscomments
wolfejam··on Show HN: Slash-tokens – know LLM cost before the call leaves your machine
we don't claim 100% -- we optimize, we don't offer perfect computation! The bill is after the call, it's a local estimate, so you can skip a wasted trip or use a cheaper model, same provider.
wolfejam··on Show HN: Slash-tokens – know LLM cost before the call leaves your machine
haha! they were on typewriters long before models!
wolfejam··on Agent identity, plus context and memory: three IANA-registered formats
Agent Identity + Persistent Context + Permanent Memory — 3 papers in 1.

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.

wolfejam··on Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges
thanks for visiting — the globe just crossed 100 cities - Appreciate the feedback. Happy Sunday :)
wolfejam··on Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges
Fair — the homepage needed work. Updated to repo: https://github.com/Wolfe-Jam/faf-cli
wolfejam··on Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges
Fair feedback — the homepage was overdue for a cleanup. It now points to the repo: https://github.com/Wolfe-Jam/faf-cli
wolfejam··on Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges
just trying to show the zig-wasm binary and CF edge :)
wolfejam··on Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges
Yep — Three.js renders the globe client-side. The 2.7KB scores server-side at the edge. Separate concerns.
wolfejam··on Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges
The 2.7KB Zig WASM binary is the scoring engine that runs on every request at Cloudflare's edge. The globe visualizes where those requests land. Two layers — compute at the edge, visualization in the browser.
wolfejam··on Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges
MCPaaS serves persistent AI context via the Model Context Protocol. A namepoint (mcpaas.live/yourhandle) gives your AI instant project context — no re-explaining every session. Works with Claude, Gemini, Cursor, any MCP client.

Claim yours, free or paid: https://mcpaas.live/claim

The globe shows where the edge binary executes. More at https://mcpaas.live/about

wolfejam··on Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges
Thanks for flagging the broken link. More context here: https://mcpaas.live/about
wolfejam··on Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges
Exactly right. 2.7KB works because it's pure computation — slot counting, no allocator, no stdlib, no WASI. The moment you need I/O it balloons. This use case fits a glove
wolfejam··on Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges
Fair point — globe.gl (Three.js) handles the 3D rendering client-side.

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.

wolfejam··on Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges
MCPaaS is trademarked. Nothing it patented.
wolfejam··on Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges
use the pause button below it, zoom in/out, rotate too
wolfejam··on Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges
use the pause button below it
wolfejam··on Show HN: I got tired of syncing Claude/Gemini/AGENTS.md and .cursorrules
ETH Zurich studied 5,694 PRs across 12 diverse repos.
wolfejam··on Show HN: I got tired of syncing Claude/Gemini/AGENTS.md and .cursorrules
ETH Zurich tested this: LLM-generated prose context = -3% performance, +20% cost. Even human-written = +4% at +19% cost. The problem is prose bloat. Structured formats avoid that by design. https://arxiv.org/abs/2602.11988
wolfejam··on Show HN: I got tired of syncing Claude/Gemini/AGENTS.md and .cursorrules
ln -s makes all four files identical. Whichever format you write it in, the other three get the wrong structure. This generates each in its native format.
wolfejam··on Show HN: I got tired of syncing Claude/Gemini/AGENTS.md and .cursorrules
Totally — git handles syncing files. The problem is these four files have different formats and conventions. Same project context, four dialects. That's why I wrote bi-sync --all: one YAML source, four native outputs.
wolfejam··on Evaluating AGENTS.md: are they helpful for coding agents?
Well said. And it's potentially a 7% swing when you think about it — +4% with good human-written context vs. -3% with LLM-generated noise. That's a significant delta from just the quality of the information.

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.

wolfejam··on Evaluating AGENTS.md: are they helpful for coding agents?
This paper validates what we've been building toward. The core issue isn't the idea of context files — it's that prose is the wrong format for structured facts.

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.

Paper: https://zenodo.org/records/18251362

wolfejam··on [dead]
very true, most end-users don't care what we call it or how it works--most drivers don't know how their brakes work, but they better

simplify with AI hasn't quite caught on lol

wolfejam··on [dead]
Creator here. FAF started as a way to stop re-explaining projects to AI tools.

  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.
wolfejam··on [dead]
What's new in v3.4.8: - Smart bi-sync detects custom CLAUDE.md content and preserves it - Tables, code blocks, custom sections stay intact - 586 tests passing
wolfejam··on [dead]
TL;DR: Built this to stop re-explaining my projects to AI assistants. Now IANA-registered and published on Zenodo/CERN.

  .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.
wolfejam··on AI code creates 1.7x more problems
the truth is out! lol
wolfejam··on [dead]
TL;DR: We studied how Boris Cherny (creator of Claude Code) structures his projects - subagents, slash commands, MCP servers, Bun runtime - and built a 12-test integration suite that validates all of it. Now .faf detects and preserves the complete Claude Code ecosystem. Every publish passes Boris-Flow or it doesn't ship.
wolfejam··on [dead]
.FAF (Foundational AI-context Format) is a 40-line file that gives any AI instant project context.

  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.
wolfejam··on [dead]
I built FAF (Foundational AI-context Format) to solve context loss in AI coding sessions. Now IANA-registered, 18k+ npm downloads, Anthropic-approved MCP server.

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

Page 1 of 2Next →