Talk to Claude Code or Gemini CLI and hear them talk back. This project adds seamless Speech-to-Text (STT) and Text-to-Speech (TTS) capabilities via a Model Context Protocol (MCP) server.
- 🎙️ Speech-to-Text (STT): Dictate your prompts instead of typing.
- 🔊 Text-to-Speech (TTS): Hear the model's responses read aloud.
- 🔄 Conversational Loop: Use the
/sttscommand for a continuous voice-driven session. - 🚀 Persistent Daemon: Fast startup using a reusable Chrome window.
- 🛠️ Cross-Platform: Works with both Claude Code and Gemini CLI.
stts uses a background daemon to manage a persistent Chrome/Chromium window:
- MCP Server: Exposes
sttandttstools to the AI model. - Daemon: A local HTTP server (port
15986) that controls a Chrome instance in "app mode". - Browser UI: Uses the native Web Speech API for high-quality, zero-cost recognition and synthesis.
- Automatic Lifecycle: The daemon starts on demand and shuts down when the Chrome window is closed.
npm install
npm run buildclaude plugins marketplace add https://github.com/sandipchitale/cc-gc-stts.git
claude plugin install sttsgemini extensions install --consent https://github.com/sandipchitale/cc-gc-stts.gitRun the voice-driven loop where you speak, the model processes, and the response is read back to you:
- Claude Code:
/stts - Gemini CLI:
/stts
You can also ask the model to "use the stt tool" or "speak this using tts" directly in your prompts.
Both STT and TTS modes support voice-activated commands for a hands-free experience.
| Command | Action |
|---|---|
send prompt |
Submits your dictated text |
cancel prompt |
Aborts the current recording |
new paragraph |
Inserts a line break |
got it |
(TTS mode) Acknowledges the response and continues |
stop it |
(TTS mode) Stops the current playback |
Note: Many more punctuation and formatting commands are supported (e.g.,
insert comma,select all,undo it). Toggle the side panel to see the full list.
Keyboard Shortcuts:
Ctrl+R: Toggle recording/playback side panel.Enter: Send prompt (Talk side).Escape: Stop recording or close the commands panel.
Claude Code:
claude plugins marketplace add "$PWD"
claude plugin install sttsGemini CLI:
gemini extensions install --consent "$PWD"The daemon usually runs automatically, but you can manually stop it by closing the Chrome window or:
curl -X POST http://127.0.0.1:15986/api/shutdown- Node.js: v18 or higher.
- Chrome/Chromium: Must be installed and discoverable.
- Microphone: Required for STT functionality.
MIT — Sandip Chitale


