Repository navigation
Bidirectional voice / audio mode #6929
Description
What would you like to be added?
I’ve been experimenting with adding a voice-first, bidirectional audio experience to Gemini-CLI. This makes it possible to talk to Gemini directly and hear its answers back, creating a hands-free, accessible CLI experience.
The work so far has two parts:
Custom /talk commands (front-end in Gemini-CLI)
👉 automateyournetwork/GeminiCLI_Slash_Talk
Adds /talk:start and /talk:stop slash commands.
Handles mic input and TTS preferences (voice, model, format).
Supports mixed-mode use (keyboard + voice, seamlessly switching between them).
MCP backend for audio (Talk MCP)
👉 automateyournetwork/Talk_MCP_for_Gemini_CLI
Provides tools:
talk_start (mic capture → Whisper STT)
talk_status (poll mic capture status)
talk_stop (end mic capture)
tts_speak (Gemini answer → TTS → audio file)
Works with OpenAI TTS today but is extensible (Google, ElevenLabs, etc.).
Returns transcripts + plays audio replies locally.
📺 I’ve also recorded YouTube demos showing the CLI in action — where you can literally hold a conversation with Gemini by voice inside your terminal.
Proposal
Introduce a bidirectional voice/audio mode in Gemini-CLI, built on the MCP pattern. This could start as an experimental /talk feature, with optional backend selection for TTS/STT engines.
I’d love feedback from the maintainers/community on whether this should live as:
An officially supported feature (/talk integrated into Gemini-CLI), or
An “officially blessed” extension pattern that others can adopt/extend.
Happy to contribute code, docs, and maintain the MCP side to help move this forward.
Why is this needed?
Why this matters
Accessibility: lowers barriers for people who struggle with typing or traditional keyboard input (arthritis, ageism, physical constraints).
Democratization: anyone can interact with Gemini CLI using only their voice, on any system.
Continuous conversations: mic input + TTS reply loop makes Gemini feel like a true voice-enabled coworker.
Extensibility: MCP tooling makes it easy to swap TTS/STT providers or expand features.
Additional context
Here is a 9 minute example - including calling other MCPs via voice with contextual answer
https://youtu.be/bfVAosLxk1E?si=QiB9O_I6q9d9Avum
Also - How it works in simple terms
/talk:start - starts the talk mode with a timer for audio input with hello heartbeat back
When the loop (4 times 3seconds) or stop condition (transcript found) stops it moves on. We need the MCP to get the audio and turn it into text with Whisper and return the text
Gemini-CLI treats the text it receives just like keyboard typed in text. So you can call other MCPs, give instructions; use Gemini-CLI just like you would with your keyboard
Next; after Gemini responds with text; we send THAT text to the tts tool in the MCP server which turns it into audio and returns the mp3 file
we use a shell command to play the mp3 file
we are in a 30 second waiting period (adjustable) while the user listens to the response then re-enter the voice loop (ready for next user voice input)
Activity