xAI Voice Agent

Turn your Reachy Mini into a live xAI (Grok) realtime voice agent โ€” talk to your robot, it answers through its own speaker with expressive motion.

  • Always-listening, hands-free conversation
  • Expressive motion + physical emotion moves
  • Live web & ๐• search, answered by voice
  • One-click install ยท bring your own xAI agent

Community app ยท not affiliated with xAI ยท you bring your own API key & agent

40-second demo โ€” greet, ask, search, express

Always listening

Hands-free turn-taking with xAI server VAD. Half-duplex mic gating means the robot never hears its own voice โ€” no echo loops, no self-replies.

Alive while it talks

Idle breathing, a lean-in when you speak, lowered antennae while it thinks or searches, and head motion driven by the reply's audio envelope.

Expressions

The agent performs physical emotion moves (Pollen's emotions library) when the moment calls for it โ€” or trigger them yourself from emoji chips in the panel.

Live web & ๐• search

Optional search tools let the agent answer with current information, fulfilled through xAI's Agent-Tools API.

Control panel

The dashboard gear icon opens a panel with rotary dials for speaker, mic gain and turn-taking, an Interrupt button, wake/sleep, credentials, and a live transcript.

Runs on the robot

All AI compute is in xAI's cloud; the robot just relays 16 kHz audio over WiFi and runs one 60 Hz motion loop. Light enough for the Wireless CM4.

Setup โ€” bring your own agent

  1. Create a voice agent in the xAI console โ€” its name, voice, and personality become your robot's. Copy the agent_โ€ฆ id.
  2. Get an xAI API key from the same console.
  3. Install this app from your Reachy Mini dashboard and start it.
  4. Open the app's gear icon โ†’ Connection โ†’ paste key + agent id โ†’ Save & Restart. The robot wakes, greets you, and listens.

Your key stays on your robot (~/.xai_voice_agent.env, mode 0600) and is sent nowhere except api.x.ai.

The control panel
The control panel โ€” dials, expressions, live transcript