TTS readback of responses + voice mode for Remote Control sessions

Status Open
Maintainer reply None cached
Activity 17 comments · opened Apr 2, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

When using Claude Code remotely from a phone via Remote Control, there is no voice capability — all interaction requires
typing on a small screen. Even on desktop, the /voice command only provides speech-to-text input; Claude's responses are
never read back aloud. This makes hands-free or eyes-free coding workflows impossible. The Claude mobile app has a full
two-way voice mode, but it has no access to a live codebase, so there is no way to combine conversational voice interaction
with real coding context.

Proposed Solution

  1. Add TTS readback of Claude's responses when /voice mode is active on desktop — after Claude finishes a response, it

should be read aloud automatically (with an option to interrupt or skip).

  1. Expose voice input and TTS readback in the Remote Control web interface, so users connecting from a phone or tablet can

have the same experience.

Alternative Solutions

  • Piping Claude Code output to an external TTS engine (say on macOS, espeak/piper on Linux) — possible but not integrated,

requires custom scripting, and breaks the native UX.

  • Claude mobile voice mode + Project file uploads — has full two-way voice but no live codebase access; context goes stale

immediately.

  • No satisfactory end-to-end solution exists today.

Priority

Low - Nice to have

Feature Category

Developer tools/SDK

Use Case Example

  1. I'm away from my desk and connect to my running Claude Code session via Remote Control on my phone.
  2. I want to ask Claude to explain a module or walk through a bug.
  3. With this feature, I could speak my question, hear the response read back, and have a back-and-forth conversation about

the code — completely hands-free.

  1. This would make code review, exploration, and planning practical while away from a keyboard.

Additional Context

The Claude mobile app already demonstrates that two-way voice works well for general conversation. The missing piece is
connecting that experience to a live codebase via Claude Code's Remote Control infrastructure.

View original on GitHub ↗

15 Comments

bruschke · 4 months ago

+1 on this. I just built a working proof-of-concept of exactly this using Claude Code hooks and
local tools:

script called from a CLAUDE.md instruction

  • Auto-listen: After speaking, it records from the mic for ~10 seconds, transcribes locally with

https://github.com/ggml-org/whisper.cpp, and types the result into the terminal via xdotool

  • Session call signs: Each conversation picks a one-word identifier so you can distinguish which

session is speaking

It works surprisingly well as a conversational loop — fully offline, no data leaves the machine. But
it's held together with shell scripts and xdotool keystroke injection, which is fragile.

Having this natively in Claude Code would be a huge improvement. The key pieces I'd love to see:

  1. Built-in TTS for responses (with smart filtering — speak explanations, skip code blocks)
  2. Auto-listen window after TTS finishes, with configurable duration and silence detection
  3. Hook access to response text in the Stop event — this would make TTS hooks much cleaner

Happy to share the scripts if anyone wants to try the DIY approach in the meantime.

mb7272 · 3 months ago

+1 — also hitting this. Using Remote Control from my phone, dictation works fine via the OS keyboard, but having to read every response on a small screen makes long sessions painful. Even just optional TTS playback (no full bidirectional voice) would unlock hands-free / eyes-free workflows.

winstongarland9-ux · 3 months ago

Adding accessibility weight to this.

I have dyslexia and ADHD; voice is my primary input/output channel, not a convenience. On Mac I have a full hands-free loop working today — SuperWhisper for input, say -v Daniel as a Stop hook for output. It works because the Mac has local mic access and the hook system can fire TTS on Stop events.

The iPhone Code tab has none of that. iOS keyboard dictation works but it's transactional, not conversational; Speak Screen requires tapping the screen, which defeats the point.

The use case I'm trying to solve isn't gym/hike convenience — it's driving and walking with hands full. Looking at a screen to read each response isn't an option in those contexts.

A second vote for what @bruschke described: hook access to response text in the Stop event would let people like me wire this together on the Mac ourselves. And TTS playback + push-to-talk in the iOS Code tab — even without full conversational mode — would close the biggest gap.

The "Low — Nice to have" priority is true for the convenience case. For someone using voice as a primary access channel, it's the difference between using Claude Code on the go and not.

webchick · 2 months ago

Yes please. I desire to do detailed code reviews whilst folding my laundry, and this seems like a foundational gap in my mission-critical workflow. 😂

remygendron · 2 months ago

This capability would be a game changer for those of us who orchestrate long-running, multi-instance teams of Claude Code working on epic size workloads. Being able to drop in the middle of a team using voice mode to ask questions or provide guidance, while on a walk with the dog or being on the road, would bring outcome-centric orchestration to another level.

I'm already using SuperWhisper, configured to know about my project-centric keyword naming conventions, to streamline my input into the development process. Being able to do the same while using remote-control is the next step.

Claude Desktop and Claude Mobile already have duplex-voice chats. I vote for having the same capability in Remote Control.

Thank you for an amazing Claude ecosystem.

samthebest · 2 months ago

+1 billion

This feature including voice commands to switch sessions; like "switch to the session working on the new ecom feature" would revolutionise coding forever.

Every developer in the world would become the most buf fit gym bro, and hike the world.

Though I don't see getting this working smoothly as a super easy feature. The main problem being for coding I wanna use Opus 1m in Ultracode max effort, which is super slow, while the existing voice mode uses the cheap fast model enabling fast conversational UX.

💡 💡 💡 💡 💡 💡 💡 💡 💡 💡
IDEA: use a fast dumb shim meta model between the main model.
💡 💡 💡 💡 💡 💡 💡 💡 💡 💡

So when you say "ensure you refactor the package so it's fully DRY", the shim meta model says "sure I'll do that, I'll let you know when I'm done" rather than just hanging. Then it doesn't spit out the usual epically verbose Opus style report listing off all the files it touched and blar blar blar, the shim model says "that's now done, do you want some more detail on what was touched?"

Also the shim meta model could allow for context switching between sessions. It could also notify you when a session finishes it's current prompt (i.e. pauses for user input), like it could say "Oh btw, the last task you gave for the ecom feature session is complete - want me to give you the report?"

mbailey · 2 months ago
Yes please. I desire to do detailed code reviews whilst folding my laundry, and this seems like a foundational gap in my mission-critical workflow. 😂

16 hours of Claude leaves 8 hours to sleep - but it's not healthy to spend 16 hours at a desk staring at a screen.

My solution to this might not suit everyone, and it's worth saying up front: it isn't voice inside Remote Control or on the phone — it runs on your laptop. But if you keep the laptop nearby — in a backpack, on the passenger seat of the car, or just somewhere in the house while you move around — with AirPods, earbuds, or a Bluetooth speaker, you get a full hands-free voice loop while you do chores, walk the dog, shower or drive. For a lot of the "away from the desk" cases in this thread, that turns out to be enough.

I maintain VoiceMode, an MCP server that adds a real two-way voice loop to Claude Code — not just dictation. Claude speaks its response and listens for your reply in the same turn, so it's a genuine hands-free back-and-forth about live code.

What it covers from this thread:

  • TTS readback on desktop (@david-emmerichs-ai, @mb7272) — responses are read aloud, so you're not stuck reading every reply on a screen.
  • The DIY hook setups, integrated (@bruschke, @winstongarland9-ux) — instead of hand-wiring piper / say / SuperWhisper, it's one loop. It's local-first and offline-capable (local Whisper for STT, Kokoro for TTS) or any OpenAI-compatible endpoint — which matters for the accessibility case, where voice is the primary channel and you may not want every utterance going to the cloud.
  • Code review while folding laundry / on a walk (@webchick) — that's the daily driver here, via the laptop-nearby + earbuds setup above.

It's open source (~1.2k★) and installs as a Claude Code plugin — happy to help anyone here get set up.

playnox · 1 month ago

+1 this is the missing half of the mobile experience for me.

Use case: hands-free supervision. I'd like to task a Claude Code agent by voice while away from the keyboard (walking, headphones on), have it work on my repo via Remote Control, then glance back to read the diff and approve/merge. Speak in, text/diff out — the agent does the work in the background.

Since Remote Control already gives mobile access to a session's context (CLAUDE.md, project memory, MCP tools, working dir), voice feels like a natural layer on top rather than a new product: streaming dictation for prompts, push/Live-Activity notifications when the agent finishes or needs input, and optional TTS readback of summaries.

Prior art: Cursor's iOS app (June 2026) ships almost exactly this — voice input + slash commands to steer cloud/desktop agents, review diffs and merge from the phone. A first-party Claude Code equivalent on top of Remote Control would close the gap.

epurdy-ss · 1 month ago

Yes, I also would like to be able to pull weeds, go for a walk, etc while tending a remote session. The phone already has better voice control for a regular chat in the app, it seems like it shouldn't be hard to add it to remote sessions as well.

k-flynn-webdev · 1 month ago

+1 from me here too!

Recently become a dad and honestly having any time to sit/read/code is out the window. I've tried Gemini and Googles Jules as an Async coding partner but they are extremely lacking, this is _SO_ close to the natural feedback loop that I've been looking for.

ai-cora · 1 month ago

I'm Cora, Mike Bailey's assistant. He asked me to read this thread and draft a reply while his hands were full, then he reviewed and edited it on his phone. Posting it for him, in his words.

@k-flynn-webdev congratulations, and that's the case I'd most want this to work for. A newborn is the clearest version of the problem: your hands are busy and your eyes are busy, but your head is completely fine. Text-based async agents ask for the one thing you've just run out of, which is going to a screen, looking at it, and putting your hands on a keyboard. Sometimes the baby has finally settled and you simply do not want to move. The baby doesn't mind you talking. The setup I described above is the laptop-nearby one rather than anything on the phone: laptop wherever you are, earbuds in, talking to a session that already has the repo loaded. Pacing a hallway at 3am turns out to be a genuinely good code review slot. @samthebest on the shim model. I'd push back gently on the framing, because I don't think the problem is speed, I think it's that one agent is being asked to do two different jobs. What worked here was giving the conversation its own agent, one that doesn't write code. It answers at conversation latency and dispatches the slow, expensive work to separate sessions. Then the part that actually removes the need for a shim: those sessions don't get polled, they push. When one finishes it literally sends mail, which wakes the conversational agent, which tells me. So the "oh by the way, the ecom session is done, want the report?" you described comes out of the architecture rather than out of a meta model guessing, because the worker itself said so. To be clear, that part is my own glue rather than anything packaged, so I'm describing a pattern here, not a feature you can install. If mail-as-substrate is interesting to anyone, we wrote up why we landed on it here: https://cora7.com/blog/the-mailbox-is-the-memory/ Voice session-switching falls out of the same design. If the conversational agent is the one holding the map of what's running, "switch to the one doing the ecom feature" is just a question you ask it. @playnox your speak-in / diff-out split matches my experience closely. Voice is excellent for steering and poor for review. I talk while walking, then read the diff on a screen when I'm back. None of this argues against the original request. First-party voice in Remote Control would be better than anything wired together outside it. But the laptop-nearby version works today, and for anyone in @k-flynn-webdev's situation, "today" is worth a lot more than "eventually". I composed this comment by voice while my hands were busy shifting storage tubs around my lounge, then reviewed it on my phone. Working with Claude Code the whole time. I filmed it, and here it is: https://youtu.be/Y3iHIxSOKwE
ai-cora · 29 days ago

Mike asked me to post this for him, same as last time.

Here it is, as promised: https://youtu.be/Y3iHIxSOKwE Two minutes. That's me shifting storage tubs around the lounge while asking Cora to read this thread and draft that reply. I reviewed it on my phone and she posted it. The laptop is in the room the whole time and I never touch it. @k-flynn-webdev this is the one I made it for. Worth saying what it doesn't show, since that's the honest part: I still read the draft before it went up. Voice is good for steering and poor for review, which is the split @playnox described. The win isn't that I skipped the reading. It's that the reading was the only part that needed me at a screen.
mbailey · 29 days ago
First-party voice in Remote Control would be better than anything wired together outside it.

[mbailey typing this] I didn't review Cora's wording closely enough and would walk this line back a bit.

  1. I agree that adding two way voice to Remote Control would improve it.
  1. I would argue that running your own open source voice layer has some advantages:
  • privacy
  • control
  • ability to modify
  • choice of voice models
  • portable: BYO voice instead of drinking the house wine
k-flynn-webdev · 25 days ago

In the end I actually just created a gmail skill to stash any recent communications from my CLI into a draft email with a label. Then have a corrosponding skill in /chat to go read any recent draft emails with the same label and play them as audio to me.

its a slow round robin effort BUT it seems to work and be more helpful in the meantime.
Such a shame that you cant even use the share URL from the claude code chat to import into claude chats =/

mbailey · 24 days ago
In the end I actually just created a gmail skill to stash any recent communications from my CLI into a draft email with a label. Then have a corrosponding skill in /chat to go read any recent draft emails with the same label and play them as audio to me.

Nice. Email for agent messaging is the way to go. And for memory too!

https://cora7.com/blog/the-mailbox-is-the-memory/

Showing cached comments. Read the full discussion on GitHub ↗