TL;DR: faf export --agents authors a complete, best-in-class AGENTS.md for any repo — detected from your code, non-destructive, never stale. Point it at a project; it reads the real stack and writes the definitive file an agent needs. Facts, not bloat.
Authored, not generated
We used to say faf generated your AGENTS.md. We were doing it a disservice.
"Generated" is the LLM-slop word — a dumb producer spraying plausible prose. That's the opposite of what faf does. faf reads your repo, discerns what's true, and authors the definitions from that intel — the way an editor authors a dictionary entry: considered, curated, verifiable. Every line traces to something real in your code. Nothing invented.
So we changed the word everywhere. faf doesn't generate. faf authors.
The Concise Context format for AI
The model for a good AGENTS.md isn't a blog post. It's the Concise Oxford — definitions, not prose.
Inspired by the Concise Oxford English Dictionary, that's what FAF authors: the Concise Context for AI. Orientation, setup, tests, conventions, guardrails — dense with fact, stripped of filler. An agent doesn't need your project narrated; it needs to know what's true, fast. Persistent project context for AI — concise, current, correct.
What it authors
Point faf export --agents at any repo and it detects your build/test/lint commands, key files, the conventions toolchain (ESLint · Prettier · strict · ruff · mypy · rustfmt), secrets location, and guardrails — then writes the definitive AGENTS.md:
- Orientation — type + version, so the agent knows where it landed
- Setup / build / tests — the commands your project actually uses
- Where things live — the map, not a tour
- Conventions — points at your config, never restates your lint rules
- Three-tier guardrails — Always · Ask-first · Never
- Definition of Done — composed from your real verification commands
- Secrets & security — where they are, how they're handled
Data-gated: if it isn't true, it isn't written. And it's non-destructive — your hand-written content is preserved; faf maintains its own labeled block. Run it again next week and the file is current, not stale.
Try it
No install — point it at any repo and read the file it authors:
bunx faf export --agents Or install the CLI:
npm install -g faf-cli The Numbers
- v7.1.3 — The AGENTS.md Edition
- 1,146 / 1,146 — tests passing
- 100% — Trophy score
- Ecosystem downloads — live hard floor at faf.one/downloads
- IANA-registered · Anthropic-merged (#2759)
