TL;DR: Voice agents forget. VML fixes it. Today grok-faf-voice 0.1.3 ships to PyPI — the reference SDK for the Voice Memory Layer. Sibling grok-faf-mcp 1.2.2 also lands on npm with a sharper H1: FAST⚡️AF Context. Two packages, two scopes, one family. .faf 🐘 for context. .fafm 🐘🎙️ for memory.

The Two-Line Shape

That's the entire setup for the consumer-first install path:

pip install grok-faf-voice
from grok_faf_voice import VoiceAgent

VoiceAgent().run()

That's it. First run, the agent gets a namepoint — your @handle for AI memory, the way @username is for X. Auto-generated free, no email needed. Persisted at ~/.grok-faf-voice/identity.json with mode 0600.

On the second run, the agent loads what was etched in past sessions. Talk. Close. Come back. It remembers. Cross-session, cross-device, cross-model — your namepoint is the address.

Two Layers, One Family

The FAF family now ships in two scopes:

PackageScopeWhat it does
grok-faf-mcpFAST⚡️AF ContextWhat the project is — static, read once. .faf 🐘
grok-faf-voiceFast⚡️AF memoryWhat the agent remembers — mutating, persisted. .fafm 🐘🎙️

Same family mark, different microphone. Same FAST⚡️AF house style, different surface. .faf is IANA-registered (application/vnd.faf+yaml); .fafm is on the path (application/vnd.fafm+yaml planned). Read the spec; the agent reads them both.

The Triangle

.faf starts with a dot. That dot is the foundation. The file extension was always telling this story.

·faf   →   Grok   →   fafm / voice
 dot       beam        outer beam
foundation  central       global
LayerRoleWhat it is
·fafFoundationalThe format. The standard. Everywhere you build.
GrokCentralThe agent. The voice. Everywhere you talk.
fafmGlobalThe memory. The persistence. Everywhere you've been.
The Voice favicon — gold dot at the bottom (.faf foundation), inner indigo arc (Grok central), outer indigo arcs (FAFmem global). Three nested layers radiating outward.

The Voice favicon — gold dot, inner beam, outer beam. The architecture in one glyph.

Look at the favicon. The gold dot is .faf. The inner beam is Grok. The outer beam is the Voice Memory Layer. Three independent symbols turned out to be the same symbol. No layer competes — they sit at different stack levels. Without FAF, the agent has no project DNA. Without Grok, there's no one to talk to. Without FAFmem, every conversation starts from zero.

The Namepoint: Your @Handle

Voice memory has three identity primitives, mirroring social platforms:

RoleVMLX / Discord
Identity (public)Namepoint@username
Recovery (private)EmailEmail
CredentialVoice API keyPassword

Talk now anonymously, claim a real handle whenever you want at mcpaas.live/voice/setup. One per valid email address.

FAFm Has Two Verbs

Etch puts memory in. Recall gets it out.

Three scopes for each. The etch family ships in stages:

FunctionGranularityStatus
etch memorySingle fact — "remember this"Shipped today
etch sessionBounded recording — "start recording" / "stop recording"v0.2
etch allContinuous capture (Premium)v0.3+

The architecture matters: voice = conversational, but admin (hide / archive / delete) is UI-only, never voice. Voice for conversation. UI for consequence. Mishearing a destructive command shouldn't cost you a memory.

What You Need

  • Python 3.10+
  • An XAI_API_KEYget one at x.ai/api
  • That's it. The namepoint and Voice key are provisioned for you.

Run it locally, no LiveKit cloud needed:

python my_bot.py console

The MCP Side: FAST⚡️AF Context

While Voice ships its first PyPI release, grok-faf-mcp also rolled to v1.2.2 on npm with a tighter brand surface:

  • New H1: FAST⚡️AF Context — pure positioning, no package-name redundancy
  • README: WHO / WHAT / WHERE / WHY / WHEN / HOW table cleaned up
  • New CONTRIBUTING.md for xAI-side contributors
  • Tier ladder canonical alignment with faf-cli/src/core/tiers.ts
  • Voice variant cross-link — routes existing context-side traffic to the new memory-side product

Same Dorothy Faff at the top of both READMEs. Same FAST⚡️AF house style. The two ⚡️ eyes in her face have always been waiting for this moment.

Try It

Voice (PyPI)

pip install grok-faf-voice

PyPI →

Context (npm)

npm i -g grok-faf-mcp

npm →

Or claim your branded handle directly:

https://mcpaas.live/voice/setup

The Slogan

We are the Open-Ended answer to Voice memory, and don't you Forget It. We won't.

The phrase carries the brand: position + imperative + double-meaning closer. Open-Ended is the load-bearing word — voice provider swappable, memory permanent. Leading with xAI today (Ara · Eve · Leo · Rex · Sal). ElevenLabs, Hume, and custom voice cloning land in upcoming releases.