Skip to main content

grok-faf-voice | VML • Voice Memory Layer for Grok • Persistent across sessions, devices, models • LiveKit-enabled

Project description

grok-faf-voice

PyPI Python License Tests DOI

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.


The Fast⚡️AF memory setup

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.


What you need

That'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.


How it works

  • The agent listens via xAI realtime — five built-in voices: Ara · Eve · Leo · Rex · Sal
  • Every session opens already remembering what was etched in past ones
  • At session end, new memories consolidate silently
  • Cross-session, cross-device, cross-model — your namepoint is the address

Voice swappable, memory permanent. ElevenLabs and Hume land in upcoming releases.


Custom Voices

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.


Local souls (.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.


Want more?

Claim your branded @handle mcpaas.live/voice/setup
Advanced setupFAFMemory, FAFContext, custom ledgers, env-var configuration, retention tiers mcpaas.live/voice/about
Source + issues github.com/Wolfe-Jam/grok-faf-voice
Contribute CONTRIBUTING.md

Citation

If you use grok-faf-voice or the .fafm format in research or production, please cite the format paper:

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{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}
}

DOI: 10.5281/zenodo.20348942


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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

grok_faf_voice-0.3.2.tar.gz (75.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grok_faf_voice-0.3.2-py3-none-any.whl (49.9 kB view details)

Uploaded Python 3

File details

Details for the file grok_faf_voice-0.3.2.tar.gz.

File metadata

  • Download URL: grok_faf_voice-0.3.2.tar.gz
  • Upload date:
  • Size: 75.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for grok_faf_voice-0.3.2.tar.gz
Algorithm Hash digest
SHA256 d924e5defc69f2cc7f60dec37734814ef73fce1b1d6561b284fa8e0334246759
MD5 941545cf90c6ee7a66eb5c466da2a11e
BLAKE2b-256 deb4c38b9645ee6485bc62aeb54d9b997798a4a67718735cbc5490c9fbbfc6b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for grok_faf_voice-0.3.2.tar.gz:

Publisher: pypi.yml on Wolfe-Jam/grok-faf-voice

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file grok_faf_voice-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: grok_faf_voice-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 49.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for grok_faf_voice-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a7b9e2f657821d7285881c881fc9b78e89cf025209b6ae23d465dc9b322d8b60
MD5 dd187d3f05b3d9346351f6f14511ce0c
BLAKE2b-256 a8f3ea5bb168d4be07b18f1fdebb915579a6cab6a37e60ffdd9f30f61b94189b

See more details on using hashes here.

Provenance

The following attestation bundles were made for grok_faf_voice-0.3.2-py3-none-any.whl:

Publisher: pypi.yml on Wolfe-Jam/grok-faf-voice

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page