Add Dictation
Adds speech-to-text dictation to a composer and transcribes recorded audio with Grok.
Install
npx skills add cursor/plugins --skill add-dictation -g -a claude-code -y- Repository
- cursor/plugins15k
- Category
- Media
- Updated
- 4d ago
- License
- See repository
- Context cost
- Mediumabout 2,440 tokens
- Runs scripts
- No, instructions only
What it does
Use when the user runs /add-dictation or wants speech turned into text with Grok speech-to-text: a mic button that dictates into the composer, live captions, or transcribing recorded audio (files, uploads, URLs) with word timestamps, diarization, subtitles, meeting notes. STT, transcribe, transcription. For a voice agent that talks back use /add-voice.
Add Dictation
Add Grok Speech to Text to an existing app: a mic button that dictates into the composer, live captions, or transcripts of recorded audio. Run on /add-dictation, typed Dictate, or clear “transcribe” intent. Cursor has no mic; wire the app, not the IDE.
Docs
- https://docs.x.ai/developers/model-capabilities/audio/speech-to-text
- Model selection (read first): https://docs.x.ai/developers/model-capabilities/audio/speech-to-text#model-selection
- Pricing (cite docs only): https://docs.x.ai/developers/pricing
Model
Before any STT call, read the model-selection section and pass the latest listed model as model. Do not invent ids or reuse a stale one from this skill. REST: form field before file. Streaming: query param. Official examples currently send grok-voice-transcribe-2.0. Listed today: grok-voice-transcribe-2.0 (best), grok-voice-transcribe-1.0 (original; API default when model is omitted).
Pick the path
| Need | Path |
|---|---|
| Tap, speak, tap, text appears. Uploaded files. URLs. | Batch POST https://api.x.ai/v1/stt (default) |
| Text appears while speaking: captions, long dictation, push-to-talk | Streaming wss://api.x.ai/v1/stt through a backend relay |
Batch is the default for a composer mic button: one request, no socket, the key never leaves the server. Go streaming only when the UX needs interim text.
Auth
- Bearer
XAI_API_KEY, server side only. The STT docs document no ephemeral-token flow, and browsers cannot set WebSocket headers, so browser streaming goes through your backend relay. Do not invent a token flow. - Never put the key in a client bundle. Do not paste keys in chat.


