{"kind":"guides","slug":"coding-agent-text-to-speech","path":"/guides/coding-agent-text-to-speech","title":"Text to Speech for Codex, Cursor and VS Code | SuperClonica","description":"Text to speech for coding agents: read VS Code chat aloud, get a spoken alert when Codex or Cursor finishes, and voice answers offline.","h1":"Text to speech for Codex, Cursor and VS Code","intro":"Coding agents work for minutes at a time, and a spoken alert tells you when they are done without watching the screen. Some editors can also read answers aloud.\n\nThis guide covers VS Code, Codex CLI and Cursor, with a free offline voice made by the SuperClonica engine.","sections":[{"heading":"Make the voice once","paragraphs":["Install the free engine (python -m pip install superclonica-cpu) and make a short clip in any of about 190 voices: superclonica --text \"Done!\" --voice F2 --lang en --output done.wav. Put it in a sounds folder in your home directory. The examples below play it with afplay on macOS; on Linux use paplay, and on Windows a small script that plays the WAV file."]},{"heading":"VS Code: read chat answers aloud","paragraphs":["With the VS Code Speech extension, each chat response has a speaker icon that reads it aloud, and Escape stops it. The setting accessibility.voice.autoSynthesize (off by default) reads replies automatically when you asked by voice. Newer versions also have an experimental Voice Mode (agents.voice.enabled) that reads agent responses and listens for follow-ups."]},{"heading":"Codex CLI: a sound when a turn ends","paragraphs":["Codex runs the program named by notify in ~/.codex/config.toml when a turn completes; the setting is ignored in a project’s own config. Codex adds one JSON argument, so call the player through a shell: notify = [\"sh\", \"-c\", \"afplay $HOME/sounds/done.wav\", \"codex\"]. The JSON includes last-assistant-message, so a small script can also voice the answer itself with the engine and play it."]},{"heading":"Cursor: a stop hook","paragraphs":["Cursor reads hooks from ~/.cursor/hooks.json (or .cursor/hooks.json in a project). The stop event fires when the agent finishes, with a status of completed, aborted or error on standard input: {\"version\": 1, \"hooks\": {\"stop\": [{\"command\": \"afplay ~/sounds/done.wav\"}]}}. A script can check the status and play a different clip for an error."]},{"heading":"Voice text on request with MCP","paragraphs":["To have an agent voice text in a character or narrator voice when you ask, connect the SuperClonica MCP server at https://superclonica.com/mcp with a free API key. It works in VS Code, Cursor and Claude Code and returns a link to the audio file."]}],"faq":[{"question":"Does Cursor have text to speech?","answer":"Cursor has no built-in voice for answers. A stop hook can play a sound or voice the result, and an MCP server can voice text on request."},{"question":"Can Codex CLI read its answers aloud?","answer":"Not by itself, but notify passes the last answer to a program of yours, which can voice it with an offline engine."},{"question":"How do I make VS Code read chat aloud?","answer":"Install the VS Code Speech extension and click the speaker icon on a response, or turn on accessibility.voice.autoSynthesize to hear replies to spoken requests."},{"question":"Is this free?","answer":"Yes: the engine is free and offline, and the MCP server gives 3 minutes a day with a free key."}],"cta":{"catalog":"Browse voices","install":"Install the SuperClonica engine","api":"Get a free API key"},"sources":[{"label":"OpenAI: Codex advanced configuration (notify)","url":"https://developers.openai.com/codex/config-advanced"},{"label":"Cursor: Hooks","url":"https://cursor.com/docs/hooks"},{"label":"VS Code: Voice support","url":"https://code.visualstudio.com/docs/configure/accessibility/voice"},{"label":"VS Code: AI settings reference","url":"https://code.visualstudio.com/docs/agents/reference/ai-settings"}],"published":"2026-11-01","updated":"2026-11-01","pages":[{"slug":"claude-text-to-speech","path":"/guides/claude-text-to-speech","h1":"Claude text to speech: voice mode, and speech for Claude Code"},{"slug":"tts-mcp-server","path":"/guides/tts-mcp-server","h1":"A text to speech MCP server: let your AI agent speak out loud"},{"slug":"text-to-speech-mcp-server","path":"/guides/text-to-speech-mcp-server","h1":"Text to speech MCP server: give your AI assistant a voice"},{"slug":"copilot-read-aloud","path":"/guides/copilot-read-aloud","h1":"Copilot read aloud: listen to Microsoft Copilot’s answers"},{"slug":"ollama-text-to-speech","path":"/guides/ollama-text-to-speech","h1":"Ollama text to speech: make your local model talk, fully offline"},{"slug":"chatgpt-text-to-speech","path":"/guides/chatgpt-text-to-speech","h1":"ChatGPT text to speech: from an answer to an audio file"},{"slug":"fortnite-text-to-speech","path":"/guides/fortnite-text-to-speech","h1":"Fortnite text to speech: how to turn it on and off"},{"slug":"turn-off-caller-name-announcement","path":"/guides/turn-off-caller-name-announcement","h1":"How to stop your phone announcing who is calling"},{"slug":"turn-off-narrator-mac-chromebook-xbox","path":"/guides/turn-off-narrator-mac-chromebook-xbox","h1":"How to turn off the narrator on Mac, Chromebook and Xbox"},{"slug":"minecraft-narrator","path":"/guides/minecraft-narrator","h1":"Minecraft narrator: turn it off, change it, or give your map real voices"},{"slug":"local-llm-text-to-speech","path":"/guides/local-llm-text-to-speech","h1":"Text to speech for local LLMs and chatbots"},{"slug":"bulk-text-to-speech","path":"/guides/bulk-text-to-speech","h1":"Bulk text to speech from a spreadsheet"}],"related":[{"slug":"text-to-speech","path":"/text-to-speech","h1":"Text-to-speech that runs on your own computer"},{"slug":"supertonic","path":"/compare/supertonic","h1":"Supertonic vs SuperClonica: same model, faster and cleaner"},{"slug":"fish-audio","path":"/compare/fish-audio","h1":"Fish Audio and Fish Speech vs SuperClonica"},{"slug":"omnivoice","path":"/compare/omnivoice","h1":"OmniVoice vs SuperClonica: more languages or more speed"},{"slug":"qwen3-tts","path":"/compare/qwen3-tts","h1":"Qwen3-TTS vs SuperClonica for local text-to-speech"},{"slug":"voxcpm","path":"/compare/voxcpm","h1":"VoxCPM 2 vs SuperClonica: studio sound or CPU speed"},{"slug":"f5-tts","path":"/compare/f5-tts","h1":"F5-TTS vs SuperClonica: zero-shot cloning or fast CPU speech"},{"slug":"elevenlabs","path":"/compare/elevenlabs","h1":"An offline alternative to ElevenLabs"},{"slug":"kokoro","path":"/compare/kokoro","h1":"Kokoro TTS vs SuperClonica: two small models for local speech"},{"slug":"piper","path":"/compare/piper","h1":"Piper TTS vs SuperClonica: tiny devices or custom voices"},{"slug":"xtts","path":"/compare/xtts","h1":"Coqui XTTS-v2 vs SuperClonica: a Coqui TTS alternative"},{"slug":"chatterbox","path":"/compare/chatterbox","h1":"Chatterbox TTS vs SuperClonica: instant cloning or a trained voice file"}]}