Skip to main content

grok-faf-voice

IANA: vnd.fafm+yaml DOI: Memory paper DOI: Agents paper

Home: faf.one/voice Live demo: faf-voice.vercel.app

PyPI Python License Tests

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 — The Ask-First Memory Edition

VoiceAgent() opens on the memory stored at your namepoint, and only writes the call back when you pass etch=True. 202 tests.

  • Ask first. Without 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.
  • Pinned model. The realtime model is grok-voice-think-fast-2.0.
  • Full notes: CHANGELOG.

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

Citation

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

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

@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

Metadata

Release files for grok-faf-voice 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for grok-faf-voice 0.5.0
File Size Uploaded Provenance Actions
grok_faf_voice-0.5.0.tar.gz 79.1 kB With provenance Details for grok_faf_voice-0.5.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for grok-faf-voice 0.5.0
File Interpreter ABI Platform Actions
grok_faf_voice-0.5.0-py3-none-any.whl Python 3 none any Details for grok_faf_voice-0.5.0-py3-none-any.whl

Total release size: 131.0 kB

Release files / grok_faf_voice-0.5.0.tar.gz

Download URL grok_faf_voice-0.5.0.tar.gz
Size 79.1 kB
Tags Source
SHA-256 checksum
How to use checksums
4e0223954db3c19704064292a57cf692e350fe1c71987595a69b2625dd093389
BLAKE2b-256 checksum
How to use checksums
f17965d6f045dbd567c18b5ee84bdfb44a6a09ac7648080c4efa3219f10791f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / grok_faf_voice-0.5.0-py3-none-any.whl

Download URL grok_faf_voice-0.5.0-py3-none-any.whl
Size 51.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca93aff212ac56f0169c7229aef33d4bff32b366a95613243eff2bc79790ed2e
BLAKE2b-256 checksum
How to use checksums
701e3de5d6dfa52945733f7c3ca6c648676f6b9922773f93b1c31dc49ddd9808
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Security for grok-faf-voice 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for grok_faf_voice-0.5.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page