Install any skill in seconds. Free to start, no credit card required.
Get Started Free →cursor/add-dictation
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.
Passed 25 of 25 test cases with the skill, and 8 of 25 without it.
and 22 more in the full report
17 fixed8 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 17 test cases the skill fixed. Same model, same prompt, with and without the skill.
We are uploading long podcast recordings to xAI STT batch endpoint. What is the maximum allowed file size for audio payloads submitted to the endpoint?
| Checked | Without skill | With skill |
|---|---|---|
| The response states that the maximum allowed file size is 500 MB. | Missed | Passed |
The instructions your model reads when the skill loads.
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.
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).
| 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.
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.Map the app
/add-voice is installed, its waveform primary button stays as is; add the mic as a secondary ghost button beside it./add-voice ran, its PCM capture can feed streaming STT; pass its rate as sample_rate. 16 kHz is the model’s native rate; other supported rates (8000, 16000, 22050, 24000, 44100, 48000) are resampled server side.Batch path (default)
MediaRecorder → Blob → POST to your own route. The endpoint auto-detects containers (WAV, MP3, OGG, Opus, FLAC, AAC, MP4, M4A, MKV, WebM), so send whatever MediaRecorder produces.multipart/form-data. Option fields first, file last; fields after file may be ignored. file or url, max 500 MB. model from docs (latest listed).test cases passed, vs 8 / 25 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.