🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

faf-cli

Package Overview
Dependencies
Maintainers
1
Versions
158
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

faf-cli

Persistent AI context + memory — .faf and .fafm, IANA-registered. Anthropic-merged.

Source
npmnpm
Version
7.2.0
Version published
Weekly downloads
1.4K
-5%
Maintainers
1
Weekly downloads
 
Created
Source

FAF
faf-cli
CONTEXT, versioned.

The context every AI coding agent reads — authored from your repo, never guessed.

One .faf file → AGENTS.md · CLAUDE.md · GEMINI.md · .cursorrules,
detected from your real stack, scored, and versioned with your code. No drift. No re-explaining.

Anthropic MCP #2759 IANA vnd.faf+yaml IANA vnd.fafm+yaml downloads npm


115,000+ downloads across the FAF ecosystem · IANA-registered · Anthropic-merged (#2759)

A star helps other devs find faf-cli — despite the downloads, ~3 of 4 devs check stars.

DOI: Context paper DOI: Memory paper project.faf → faf TAF CI

FAF defines. MD instructs. AI codes.

FAF Trophy 100%

project/
├── package.json     ← npm reads this
├── project.faf      ← AI reads this
├── README.md        ← humans read this
└── src/

Every building requires a foundation. FAF is AI's foundational layer.

You have a package.json. AI needs you to add a project.faf. Done.

Git-Native. project.faf versions with your code — every clone, every fork, every checkout gets full AI context.
No setup, no drift, no re-explaining.

Install

bunx faf                      # Bun — zero install, fastest path
npx faf                       # npm — works everywhere
brew install wolfe-jam/faf/faf-cli && faf   # Homebrew (auto-taps)

faf is shorthand for faf-cli auto — same behavior, fewer keystrokes.

Quick Start

# ANY GitHub repo — no clone, no install, 2 seconds
bunx faf-cli git https://github.com/facebook/react

# Your own project
bunx faf-cli init              # Create .faf
bunx faf-cli auto              # Zero to 100% in one command
bunx faf-cli go                # Interactive interview to gold code

Nelly Never Forgets

Run faf with no arguments:

faf

faf-cli dogfoods itselfproject.faf is source DNA; CLAUDE.md and GEMINI.md are authored from it via faf. AGENTS.md is the BETTER ops briefing (hand-kept for agents; faf export --agents still authors AGENTS.md for other repos).

Commands

CommandWhat it does
faf initCreate project.faf from your local project
faf git <url>Instant .faf from any GitHub repo — no clone
faf autoDetect stack, fill every slot it can, score
faf goGuided interview to fill the human-only slots
faf scoreCheck AI-readiness (0–100%)
faf exportAuthor AGENTS.md, CLAUDE.md, GEMINI.md, .cursorrules
faf syncBi-directional .fafCLAUDE.md
faf memory.fafm soul ops — convert Claude memory, etch, recall, ls, show
faf diff / logSemantic context diff + score timeline across git history
faf hooks --installPre-commit guard against context regression
faf compile / decompile.faf.fafb sealed binary
faf checkValidate a .faf file
faf recoverRebuild .faf from an existing CLAUDE.md / AGENTS.md
faf showRender project.faf to a browsable HTML page
faf formatsList supported stacks and formats

Run faf --help for the full command set and options.

Memory (.fafm) — new in 7.2.0

Portable agent memory in the IANA-registered .fafm format. Same INTEROP as claude-fafm-sdk 1.0.

# Claude Code memory dir → soul.fafm
faf memory convert ~/.claude/projects/.../memory -o soul.fafm

faf memory ls                    # ranked facts
faf memory recall "your query"   # deterministic filter + rank
faf memory etch "a durable fact" --id my-fact
faf memory show

Custom instructions

Your own rules for the AI — "use full words in identifiers," "use bun, not npm" — go in project.faf under ai_instructions.warnings. They land at the top of every AGENTS.md faf writes, verbatim and non-destructive.

How to add custom rules · docs.faf.one

Scoring

🏆 Trophy 100% — all or nothing. From v6.6.0 onward, faf-cli recommends only Trophy. 100% on the FCL is what makes the layers above (MD instructions, Agents, AI tooling) work — sub-Trophy leaves gaps that AI guesses on. Sub-Trophy tiers are honest interim states on the way to Trophy, not endpoints.

TierScoreStatus
🏆 / ✪ Trophy100%AI never has to guess
Gold99%+1 slot from Trophy
Silver95%+Close — keep going
Bronze85%+Interim — keep going
Green70%+Interim — keep going
Yellow55%+AI flipping coins
Red<55%AI working blind
White0%No context at all

🏆 and ✪ both mean 100% — the same top score, shown by surface: (the Proof Seal) on code surfaces — CLI, skills, docs, the hub — and 🏆 on social: posts, blogs, cards. You'll see both around for a while as the ✪ convention settles in.

Sync

bi-sync:   .faf  ←── 8ms ──→  CLAUDE.md
tri-sync:  .faf  ←── 8ms ──→  CLAUDE.md ↔ MEMORY.md

Docs

The full manual lives at docs.faf.one — facts for devs, faf-cli first.

  • Getting started — install · run · use
  • Custom rules — pin instructions your AI must follow

For a specific agent: Grok, xAI & Cursor 👀 · Claude Code 👀 · Bun 👀

Recent editions

Pivotal releases — full history in CHANGELOG.md:

  • v7.1 — AGENTS.mdfaf export --agents authors a complete, non-destructive AGENTS.md.
  • v7.0 — GIT — context goes git-native: faf diff / log / hooks.
  • v6.16 — Know Your Stack — every emitted file labels your stack identically.
  • v6.15 — Copilotfaf export --copilot writes the file GitHub Copilot reads.
  • v6.14 — Loopfaf loop drives any repo to 🏆 100% or the honest human wall.
  • v6.7 — HTMLfaf show renders a .faf to a browsable page. (FAF defines. MD instructs. AI codes. HTML shows.)
  • v6.6 — Trophy — 100% or nothing.
  • v6.0 — Bun — ground-up rewrite; single portable binary, four platforms.

Compiled Binaries

Bun's single-file compiler produces standalone binaries — no runtime needed.

bun run compile                # Current platform
bun run compile:all            # darwin-arm64, darwin-x64, linux-x64, windows-x64

Ship faf as a single binary for CI/CD, Docker, or air-gapped environments.

Architecture

src/
├── cli.ts              ← Entry point (Commander registrations)
├── commands/           ← one file per faf subcommand
├── core/               ← Types, slots (Mk4), tiers, scorer, schema
├── detect/             ← Framework detection, stack scanner
├── interop/            ← YAML I/O, CLAUDE.md, AGENTS.md, GEMINI.md
├── ui/                 ← Colors (#00D4D4), display
└── wasm/               ← faf-scoring-kernel wrapper (Rust → WASM)

Toolchain: Bun (test, build, compile) · TypeScript (strict) · WASM (scoring kernel)

Testing

Robust. Reliable. Next-level WJTTC tested. — The Foundation Edition.

bun test                       # extensive WJTTC + e2e suite
  • WJTTC Build Resilience — regression classes locked.
  • WJTTC Kernel Stress — WASM kernel boundary tests.
  • e2e lifecycle — commands in sequence.

Test reports in reports/.

Support

If faf-cli has been useful, consider starring the repo — it helps others find it.

Citation

If you use faf-cli or the .faf / .fafm formats in research or production, please cite the format papers:

Wolfe, J. (2025). Format-Driven AI Context Architecture: The .faf Standard for Persistent Project Understanding. Zenodo. https://doi.org/10.5281/zenodo.18251362

Wolfe, J. (2026). Permanent Memory and Instant Recall: The .fafm Standard for Multi-Profile AI Agent Memory. Zenodo. https://doi.org/10.5281/zenodo.20348942

BibTeX

@article{wolfe2025faf,
  title     = {Format-Driven AI Context Architecture: The .faf Standard for Persistent Project Understanding},
  author    = {Wolfe, James},
  year      = {2025},
  month     = {nov},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.18251362},
  url       = {https://doi.org/10.5281/zenodo.18251362}
}

@article{wolfe2026fafm,
  title     = {Permanent Memory and Instant Recall: The .fafm Standard for Multi-Profile AI Agent Memory},
  author    = {Wolfe, James},
  year      = {2026},
  month     = {may},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.20348942},
  url       = {https://doi.org/10.5281/zenodo.20348942}
}

License

MIT — Free and open source

IANA-registered: application/vnd.faf+yaml (Context Layer) · application/vnd.fafm+yaml (Memory Layer)

format | driven 🏎️⚡️ wolfejam.dev · faf.one/cli

License: MIT Homebrew

Keywords

faf

FAQs

Package last updated on 22 Jul 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts