add-voice — Claude Code skill for Grok voice mode
Adds two-way Grok voice conversations to an app. Use it when replacing an STT-LLM-TTS chain or an OpenAI Realtime integration.
npx skills add cursor/plugins --skill add-voice -a claude-codeWhat add-voice does
This skill wires an app to Grok voice over WebSocket: it captures microphone audio, sends audio chunks, and plays returned speech as it arrives. It covers session setup, server-side VAD, grok-transcribe, and interruption when the user starts speaking.
For browser and mobile clients, it directs the app to request a temporary token from its backend; server connections use XAI_API_KEY. Do not ship a long-lived key in a client bundle, so review the existing auth path before adding voice. TypeScript is the main example, with a Python version using websockets.
The skill also sets composer behaviour. A waveform button starts voice mode, while the microphone icon remains reserved for dictation. Use /add-dictation for speech-to-text only, /add-read-aloud for spoken text replies, and /debug-voice for development logging and log-based fixes.
What it helps with
- add a two-way Grok voice conversation
- replace an STT-LLM-TTS chain with one connection
- keep long-lived API keys out of client bundles
- interrupt queued audio when the user speaks
- separate voice mode from dictation controls
Example prompts for the agent
/add-voiceAdd Grok voice mode to this app.- Add a Grok speech-to-speech session and wire the app microphone.
/add-voiceReplace the current STT-LLM-TTS flow with Grok voice.
How to install add-voice
1Skills CLI (Vercel)
npx skills add cursor/plugins --skill add-voice -a claude-code2Manually: put the files in place
~/.claude/skills/add-voice/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/add-voice/
1Skills CLI (Vercel)
npx skills add cursor/plugins --skill add-voice -a codex2Manually: put the files in place
.agents/skills/add-voice/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add cursor/plugins --skill add-voice -a cursor2Manually: put the files in place
.cursor/skills/add-voice/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install cursor/plugins add-voice2Manually: put the files in place
.github/skills/add-voice/SKILL.md1Skills CLI (Vercel)
npx skills add cursor/plugins --skill add-voice -a gemini-cli2Platform CLI
gemini skills install https://github.com/cursor/plugins --path grok-voice/skills/add-voiceManually: put the files in place
.devin/skills/add-voice/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add cursor/plugins --skill add-voice -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about add-voice
How do I install add-voice in Claude Code?
Run npx skills add cursor/plugins --skill add-voice -a claude-code, then run npx skills add cursor/plugins --skill add-voice -a claude-code again. The skill file is at ~/.claude/skills/add-voice/SKILL.md.
What does add-voice do?
It adds a Grok voice session to an existing app, from microphone capture through audio playback. It also covers session events, authentication, and voice-mode interface conventions.
How should browser clients authenticate?
Browser and mobile clients use a temporary token issued by the backend. Keep XAI_API_KEY on the server rather than in client-side code.