TL;DR: faf bi-sync --all now generates AGENTS.md, .cursorrules, CLAUDE.md, and GEMINI.md from a single project.faf. Define your project once. Every AI tool reads it natively. 87 new championship tests. 3 cross-platform bugs caught before you ever would.
The Picture
This is what v4.5.0 looks like:
One source of truth. Four native formats. Zero drift.
Why Bother?
Every AI tool invented its own config format. None of them talk to each other.
Without FAF
Update one, forget another. Context rot starts day one.
With FAF
faf bi-sync --allAlways in sync. Always accurate. Always current.
The Real Cost
Every minute you spend maintaining duplicate context files is a minute you're not shipping code. project.faf is 30-40 lines of YAML. The generated files are 50-100 lines each. That's 200+ lines you never write again.
Three Layers, Three Jobs
.faf defines
Structured YAML. Machine-readable. IANA-registered. The single source of truth.
.md files instruct
AGENTS.md, CLAUDE.md, GEMINI.md, .cursorrules. Prose for each tool. Generated from .faf.
AI interprets
Claude, Codex, Cursor, Gemini. Each reads its native format. No translation layer needed.
What's New
AGENTS.md Interop
Full bidirectional support for OpenAI's AGENTS.md format. Import existing AGENTS.md files. Export from .faf. Keep both in sync.
faf agents import faf agents export faf agents syncSupports the full spec: Project Overview, Tech Stack, Code Style, Build Commands, Architecture sections. Detects AGENTS.md, agents.md, and Agents.md (case-insensitive).
.cursorrules Interop
Same treatment for Cursor IDE's .cursorrules format. Import rules, export from .faf, bidirectional sync.
faf cursor import faf cursor export faf cursor syncOne Command, Every Format
The headline feature:
faf bi-sync --allGenerates CLAUDE.md + AGENTS.md + .cursorrules + GEMINI.md in one pass. Or pick your targets:
faf bi-sync --agents faf bi-sync --cursor faf bi-sync --allBugs We Killed
The WJTTC championship test suite found 3 cross-platform bugs before any user could hit them:
Line endings broke H1/H2 detection. Every VS Code user on Windows would have hit this.
BOM marker before # made the first heading invisible. Silent corruption.
Pre-OS X line endings unhandled. Edge case? Yes. But we test edges.
The Format Matrix
| Command | Format | Ecosystem | Status |
|---|---|---|---|
faf bi-sync | CLAUDE.md | Anthropic / Claude Code | v3.0+ |
faf gemini | GEMINI.md | Google / Gemini CLI | v3.4.7+ |
faf agents | AGENTS.md | OpenAI / Codex / 20+ tools | v4.5.0 |
faf cursor | .cursorrules | Cursor IDE | v4.5.0 |
Try It
npm install -g faf-cli@4.5.0Or update:
npm update -g faf-cliThen in any project with a project.faf:
faf bi-sync --allThe Numbers
- v4.5.0 - Released February 24, 2026
- 1,051/1,051 - Tests passing (+87 new)
- 100% - Trophy score
- WJTTC GOLD - Certified
- 27,000+ - npm downloads (ecosystem)
- 4 formats - CLAUDE.md + AGENTS.md + .cursorrules + GEMINI.md
- 1 command -
faf bi-sync --all