noisy-coding
OfficialSummary: This server provides text-to-speech voice capabilities for a coding agent, letting it speak updates and control voices.
speak: Delivers a short spoken message to the user, optionally interrupting current speech or identifying a subagent speaker.
announce: Sends a quick, fire-and-forget spoken update that plays in the background without blocking.
change_voice: Switches the agent's (or a named speaker's) voice permanently.
list_voices: Lists the available Grok TTS voices.
Noisy Studio
Talk to your coding agent while it works. Noisy Studio is a native desktop app with speech recognition, spoken replies, per-conversation voice and character settings, and a dashboard for the conversations you are following.
https://github.com/user-attachments/assets/331ca147-b325-4b89-9704-a3bba206f2f8
Install
Download the macOS Apple Silicon app from Releases, move Noisy Studio.app to Applications, and open it. Complete provider and audio setup in the app. The app includes its own Python engine; ordinary Claude installation needs neither Python nor a separate service manager.
For Claude Code, install the companion plugin:
claude plugin marketplace add noisy/noisy-studio
claude plugin install noisy-studio@noisyRestart Claude Code and ask it to set up Noisy Studio voice. Keep the app and
plugin versions together: the plugin launches the engine bundled with the app.
The internal plugin name remains noisy-studio for compatibility.
Installation and troubleshooting covers permissions,
providers, updates, and a spoken round trip. The Codex preview
uses the same app and currently requires uv for its integration processes.
macOS is the validated release platform; other platforms are source development.
Related MCP server: Quorum Agents
Development
Use local development for the isolated daemon on 7765 and dashboard hot reload. The installed app owns 9765 and has separate settings. See desktop packaging for signed app builds.
Storybook - how the dashboard and the widget are meant to look, published from
main. Run it locally withcd dashboard && npm run storybook. Its title shows the commit it was built from, so a story can be cited by URL and version.
API credentials belong in the app's provider settings, never in chat or source. Offline providers download their models on first use and then run locally.
Upgrading to the V3 technical names
V3 uses noisy-studio throughout packages, commands and integrations. Older installations need an explicit upgrade; see the agent-friendly upgrade and rollback guide before replacing an existing installation.
Available Tools
4 toolsannounceA
Speak a quick spoken update WITHOUT waiting for it to finish.
Fire-and-forget: use this to tell the user what you just did and keep
working ("done with X, moving on") — it returns immediately and plays in
the background, queued behind any current speech. Use speak instead when
you are asking a question or otherwise waiting for the user's reply.
Like speak, it carries only text — voice/speed/language live in the daemon.
Inputs: text (required). Returns: result
change_voiceA
Deliberately switch this agent's speaking voice from now on.
Updates your character in the listener daemon: the dashboard shows the new voice and every later speak/announce uses it (it also persists across restarts). Use list_voices to see the options. Speak itself carries no voice information — this call is the only way to change how you sound, so use it consciously (e.g. when the user asks for it).
Args: voice_id: Which voice to switch to. speaker: Move a named SPEAKER's voice instead of your own — the personas you address with speak(speaker=...). A voice already held by someone else is refused rather than duplicated, so two speakers never become indistinguishable by ear.
Inputs: voice_id (required), speaker. Returns: result
list_voicesA
List the Grok TTS voices available for the speak tool.
Inputs: no named parameters. Returns: result
speakA
Speak a short message aloud to the user through their speakers.
Use this to deliver a spoken TL;DR alongside (not instead of) your written answer: 1-3 conversational sentences summarizing the outcome, a finding, or a question. Never read code, file paths, or long explanations aloud.
You send only the text: voice, speed and language belong to the daemon (the user controls them on the dashboard). To deliberately switch your voice, call change_voice.
Concurrent speech is serialized: by default a new call WAITS for the current utterance to finish (queued), and for the user to finish speaking. Set interrupt=True to cut the current utterance off and speak immediately — use it only when your previous words are now stale (e.g. the user corrected you mid-answer).
Args: text: What to say. Plain conversational prose. Mark the key words the listener must catch with markdown bold (like this) — they get vocal emphasis and show bold on the live dashboard. Also supports inline speech tags like [pause] or [laugh] and wrapping tags like text. interrupt: Cut off any utterance currently playing and speak now. speaker: ONLY for subagents. If you are a subagent (Task/Agent tool), pass your role name here (e.g. "researcher") — the dashboard shows the message under that name with its own portrait, and the daemon gives you a stable voice distinct from the main agent's. The main agent must leave this empty.
Inputs: text (required), speaker, interrupt. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
The set is mostly distinct: speak delivers a blocking utterance, announce is fire-and-forget, change_voice and list_voices have clearly separate roles. speak and announce both produce speech, so their overlap could cause an agent to misselect when the blocking behavior matters, but the descriptions offer strong guidance.
Naming is simple and readable with all verbs as commands, but it mixes one-word verb names (speak, announce) with verb_noun patterns (change_voice, list_voices). This minor inconsistency is not confusing and the style remains predictable.
Four tools is well-scoped for a voice/speech server: each tool covers a necessary function—speaking, quick updates, voice switching, and voice enumeration. There is no bloat or obvious missing core capability for the stated purpose.
The tool set covers the main lifecycle of spoken interaction: speak, gently tell what you're doing, switch voices persistently, and discover available voices. One possible gap is lack of a way to query the currently active voice, but this is a minor issue that does not block common workflows.
Maintenance
Related MCP Connectors
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
Your AI mind directs coding agents; work reviewed against your memories: Claude Code, Codex, Cursor
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Your AI apps as one team: hand work to Codex or Claude Code on your Mac, with a shared logbook.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables bidirectional voice interaction for Claude Code using local speech-to-text and text-to-speech models optimized for Apple Silicon. It provides tools to listen to user speech via microphone and speak responses aloud through system speakers.16Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables orchestrating multiple specialist Claude Code agents as a team, with live visualization and agent-to-agent messaging.6 npmMIT
- AlicenseNot gradedqualityDmaintenanceVoice interface for Claude Code enabling hands-free, conversational interaction entirely on-device for Apple Silicon Macs. It provides push-to-talk transcription and automatic spoken responses via local AI models.MIT
- AlicenseNot gradedqualityBmaintenanceEnables voice-driven control of coding agents via Claude on your phone, allowing status checks, stand-ups, sending prompts, and receiving push notifications when agents finish or need decisions.MIT