v…
application/vnd.fafm+yaml · open · IANA-registered

Portable AI memory.

Give your AI agent memory that versions with your project and moves between models — instead of being locked to one vendor.

PM.IR. — Permanent Memory. Instant Recall. · .fafm maps it · knowledge + voice

GitHub PyPI uvx claude-fafm-sdk init

30 seconds

uvx claude-fafm-sdk init                 # a portable soul, offline
claude-fafm-sdk etch "ships uv-first"    # write a memory
claude-fafm-sdk recall uv                # recall it

No account. No server. Your soul is a plain .fafm file you can read, diff, and commit to git.

In chat

A. Install — Claude: claude plugin install faf-memory@claude-community

Cursor · Grok · any host — same JSON. Cursor: ~/.cursor/mcp.json. Grok: .mcp.json (Grok also reads Cursor’s file).

{
  "mcpServers": {
    "faf-memory": {
      "command": "uvx",
      "args": ["faf-memory-mcp"]
    }
  }
}

B. Etch — etch writes the file so memory survives the process.

C. Recall — next session, same .fafm file.

The local file is this door. A free namepoint is the hosted path.

Cross-vendor by design

One open format, never a fork. Knowledge edge: claude-fafm-sdk (Compactable). Voice edge: grok-faf-voice. Same soul — not trapped in one model's walled garden.

Offline-first

The local Soul works with zero dependencies and no account. Add a free namepoint when you want hosted, full-intel recall at personal scale.

The free namepoint

A two-digit number makes a handle free — @james99 and @john10 are free (10 is the lowest; @john9 isn't). Clean prestige names are the paid tier. Your soul lives on it — hosted and sticky, with the full intel (semantic recall, smart-merge) at personal scale. Pay only when you scale — more namepoints, a team, production — or for a prestige name. Claim one →