AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Context that persists.
Translation pending
Developer toolsPython · ShellGitHub @Wolfe-JamOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Python SDK that gives xAI Grok Voice agents persistent memory across sessions, devices, and models. LiveKit-enabled. MIT licensed.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Home: faf.one/voice Live demo: faf-voice.vercel.app Voice agents that remember. The Voice Memory Layer (VML) for Grok Voice. .fafm 🐘🎙️ LiveKit enabled. Two profiles, one .fafm format. This is the voice profile (the Voice Memory Layer). For the knowledge profile — typed, cross-linked agent memory — see claude-fafm-sdk. What's New in v0.5.0 — Standing string VoiceAgent() opens on the standing soul stored at your namepoint. It does not etch the call back into that soul unless you pass etch=True. The realtime model is pinned to grok-voice-think-fast-2.0. What's New in v0.4.0 — FastMCP 4Read the full README ↗
Home: faf.one/voice Live demo: faf-voice.vercel.app
⭐ Star it on GitHub: bookmarks it for you, helps other devs find it too.
Voice agents that remember.
The Voice Memory Layer (VML) for Grok Voice. .fafm 🐘🎙️ LiveKit enabled.
Two profiles, one
.fafmformat. This is the voice profile (the Voice Memory Layer). For the knowledge profile — typed, cross-linked agent memory — see claude-fafm-sdk.
VoiceAgent() opens on the memory stored at your namepoint, and only writes the call back when you pass etch=True. 202 tests.
etch=True the session opens on what is stored and the tool list has no etch_memory. etch=True brings back the etch log, the etch / recall / merge tools and auto-merge.grok-voice-think-fast-2.0.pip install grok-faf-voice
from grok_faf_voice import VoiceAgent
VoiceAgent().run()
That's it. First run, your agent gets a namepoint — your @handle
for FAF memory. Auto-generated free, no email needed. Want a branded
handle tied to your email (or your X username)? Claim one anytime at
mcpaas.live/voice/setup — one per
valid email address.
XAI_API_KEY — get one at x.ai/apiThat's it. Namepoint and Voice key are provisioned for you.
Run it:
python my_bot.py console
console mode talks locally — no LiveKit cloud needed.
Deploy to LiveKit later via python my_bot.py start.
Voice swappable, memory permanent. ElevenLabs and Hume land in upcoming releases.
xAI shipped Custom Voices on 2026-05-01. We shipped support 48h later.
from grok_faf_voice import CustomVoiceClient, VoiceAgent
# Clone a voice from a 90-120s WAV sample
cv = CustomVoiceClient() # uses $XAI_API_KEY
voice = cv.create_voice("sample.wav", name="My Clone", language="en")
# Use the cloned voice in your agent — same two-line shape
VoiceAgent(voice=voice["voice_id"]).run()
Custom voice IDs (8-char lowercase alphanumeric, e.g. nlbqfwie) flow through
VoiceAgent(voice=...) unchanged. The 30 free voices via console.x.ai
work too — paste the voice_id and go.
.fafm files)Read and write souls straight off disk — no MCPaaS, no API key. Great for inspection, tests, backups, and loading souls written by other FAF-family tools (cross-vendor interop).
from grok_faf_voice import FAFMemory
# Load a .fafm soul from disk (any profile — voice or knowledge)
mem = FAFMemory.from_file("soul.fafm")
body = await mem.get() # the soul body
recall = await mem.recall_for_prompt() # ready for the prompt
# Write it back out (byte-identical roundtrip)
await mem.to_file("backup.fafm")
# Typed views — no manual parsing (v0.3.1)
mem.profile # "voice" | "knowledge"
mem.facts # parsed list of memory facts
mem.index # top-level index (knowledge profile)
.fafm is the IANA-registered FAF Memory format (application/vnd.fafm+yaml).
Validate documents against the published JSON Schema.
Claim your branded @handle | mcpaas.live/voice/setup |
Advanced setup — FAFMemory, FAFContext, custom ledgers, env-var configuration, retention tiers | mcpaas.live/voice/about |
| Source + issues | github.com/Wolfe-Jam/grok-faf-voice |
| Contribute | CONTRIBUTING.md |
If you use grok-faf-voice or the .fafm format in research or production, please cite the format paper. The Agents paper is the companion for the agentic era:
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
Wolfe, J. (2026). Why Agents Need a Passport: .fafa — Portable Identity for the Agentic Era. Zenodo. https://doi.org/10.5281/zenodo.21951641
@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}
}
@article{wolfe2026fafa,
title = {Why Agents Need a Passport: .fafa — Portable Identity for the Agentic Era},
author = {Wolfe, James},
year = {2026},
month = {aug},
publisher = {Zenodo},
doi = {10.5281/zenodo.21951641},
url = {https://doi.org/10.5281/zenodo.21951641}
}
DOI: 10.5281/zenodo.20348942 (.fafm) · 10.5281/zenodo.21951641 (.fafa)
We are the Open-Ended answer to Voice memory, and don't you Forget It. We won't.
.fafm 🐘🎙️ · application/vnd.fafm+yaml (IANA registered)
· part of the FAF.one family · MIT licensed