Skip to main content
Voice is off until you add a key. Two keys turn on two separate paths. Set either one or both:
  • SONIOX_API_KEY turns on recording, dictation, and archive recovery. Linger uses Soniox for streaming speech recognition.
  • XAI_API_KEY turns on Grok Live voice mode. Live does not need Soniox.
LiveKit carries real-time audio between the browser and the voice workers. Docker Compose already runs LiveKit and the voice workers, so on that install you only add a key. This page covers the keys, the microphone rule, LiveKit settings, and voice in a development checkout.
A meeting recorder shows a live transcript, and the recording and follow-up draft land in the Another Me chat.

A recording with a live transcript.

Add your voice keys

Get a Soniox key from soniox.com and an xAI key from xAI. Then set the keys on a Docker Compose install.
1

Edit .env

Set the key for each path you want in the .env file of your checkout:
Leave a key empty to keep its path off.
2

Apply the change

Soniox and xAI are hosted services. Audio goes to them under your key, so check their terms against your data rules.

Which key turns on which feature?

Each voice feature depends on one key. An empty key keeps its feature off. Recording transcripts separate speakers. Dictation does not. In Live, your captions come from Grok’s own transcription, not from Soniox. Each voice worker takes a limited number of sessions at a time.

Can I use the microphone from another computer?

Only over HTTPS. Browsers allow the microphone only on localhost or HTTPS. Voice from another computer needs an HTTPS proxy in front of port 3000. HTTPS may not be enough on its own. Browsers connect to LiveKit at LIVEKIT_URL, not through port 3000. Serve other computers on your network explains this limit. Test a real recording from another computer before you rely on it.

Do I need to configure LiveKit?

Not on Docker Compose with the defaults. LIVEKIT_URL, LIVEKIT_API_KEY, and LIVEKIT_API_SECRET default to the LiveKit service in the root docker-compose.yml and its development key pair. The LiveKit server takes the same key pair as the Linger services. If you change the pair, change both sides together. A production server uses its own pair.

Run voice in a development checkout

pnpm dev starts no containers. While SONIOX_API_KEY or XAI_API_KEY is set in .env, it runs livekit-server from your PATH on the ports and keys of the three LIVEKIT_* variables. Install it first: brew install livekit on macOS, or curl -sSL https://get.livekit.io | bash on Linux. Without it, pnpm dev prints how to install it and voice cannot connect. The Node services start the voice workers themselves. Recordings also need FFmpeg. Put ffmpeg and ffprobe on the PATH of the server process. Contribute covers the rest of the development setup.

Keep learning

Meetings

Record a meeting with a live transcript.

Voice Mode

Talk to Linger by dictation or in a live conversation.

Serve other computers on your network

Put HTTPS in front of port 3000.