# Add Read Aloud

Use when the user runs /add-read-aloud or wants the app to speak text with Grok...

- Repository: https://github.com/cursor/plugins (15000 stars)
- Category: AI and agents
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add cursor/plugins --skill add-read-aloud -g -a claude-code -y`
Codex: `npx skills add cursor/plugins --skill add-read-aloud -g -a codex -y`
Cursor: `npx skills add cursor/plugins --skill add-read-aloud -g -a cursor -y`
Gemini CLI: `npx skills add cursor/plugins --skill add-read-aloud -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add cursor/plugins`

## Description

Use when the user runs /add-read-aloud or wants the app to speak text with Grok text-to-speech: read-aloud button on assistant replies, auto-speak, TTS, voice output, narration, IVR prompts, speech tags, voice_id. For a two-way voice agent use /add-voice. For speech-to-text use /add-dictation.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Add Read Aloud

Add Grok Text to Speech to an existing app: a speaker button on assistant replies, auto-speak, or narration of any text. Run on `/add-read-aloud`, typed **Read aloud**, or clear “speak this” / “TTS” intent. Cursor has no speaker; wire the **app**, not the IDE.

## Docs

- https://docs.x.ai/developers/model-capabilities/audio/text-to-speech
- API reference: https://docs.x.ai/developers/rest-api-reference/inference/voice
- Custom voices: https://docs.x.ai/developers/model-capabilities/audio/custom-voices
- Pricing (cite docs only): https://docs.x.ai/developers/pricing

## Pick the path

| Need | Path |
| --- | --- |
| Tap speaker, hear the finished reply. Narrate a page. Generate a file. | **Batch** `POST https://api.x.ai/v1/tts` (default) |
| Audio starts while the LLM is still streaming; barge-in; texts over 15,000 chars | **Streaming** `wss://api.x.ai/v1/tts` through a backend relay |

Batch is the default for a read-aloud button: one request, one MP3, cacheable, the key never leaves the server. Go streaming only when the UX needs audio before the text is complete. `POST /v1/tts` has no documented streaming flag; do not invent one.

## Auth

- Bearer `XAI_API_KEY`, server side only. The TTS docs document no ephemeral-token flow, and browsers cannot set WebSocket headers, so browser streaming goes through your backend relay.
- Never put the key in a client bundle. Do not paste keys in chat.

## Steps

The rest: https://github.com/cursor/plugins/blob/HEAD/grok-voice/skills/add-read-aloud/SKILL.md
