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:
| Package | Scope | What it does |
|---|---|---|
grok-faf-mcp | FAST⚡️AF Context | What the project is — static, read once. .faf 🐘 |
grok-faf-voice | Fast⚡️AF memory | What 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 | Layer | Role | What it is |
|---|---|---|
| ·faf | Foundational | The format. The standard. Everywhere you build. |
| Grok | Central | The agent. The voice. Everywhere you talk. |
| fafm | Global | The memory. The persistence. Everywhere you've been. |
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:
| Role | VML | X / Discord |
|---|---|---|
| Identity (public) | Namepoint | @username |
| Recovery (private) | ||
| Credential | Voice API key | Password |
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:
| Function | Granularity | Status |
|---|---|---|
| etch memory | Single fact — "remember this" | Shipped today |
| etch session | Bounded recording — "start recording" / "stop recording" | v0.2 |
| etch all | Continuous 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_KEY— get 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 / HOWtable cleaned up - New
CONTRIBUTING.mdfor 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
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.
