Allow custom STT endpoint for built-in voice mode

Resolved 💬 3 comments Opened Mar 19, 2026 by Gerk Closed Mar 19, 2026

Summary

The built-in voice mode (spacebar push-to-talk) is hardcoded to use Anthropic's cloud STT service. There is no way to configure it to use a custom or local STT endpoint.

Problem

  • The cloud STT is unreliable — connections fail, transcription quality varies
  • Users who run local Whisper servers (e.g., speaches, whisper.cpp) on their LAN have fast, reliable, private STT available but cannot use it with the built-in voice mode
  • The voicemode MCP server supports custom endpoints, but it does not integrate with the spacebar push-to-talk — it requires typing a command to trigger

Proposed Solution

Add a configuration option (env var or settings.json) to specify a custom STT endpoint for the built-in voice mode:

{
  "voiceSTTBaseURL": "http://my-whisper-server:2022/v1"
}

Or via environment variable:

CLAUDE_VOICE_STT_BASE_URL=http://my-whisper-server:2022/v1

The endpoint just needs to be OpenAI-compatible (POST /v1/audio/transcriptions), which is what most local Whisper servers already expose.

Accessibility Impact

This is an accessibility issue, not just a feature request. For users with conditions like arthritis that make typing painful, voice input is a critical need. When the cloud STT is unreliable, those users are left without a viable input method. Being able to point at a reliable local server would make Claude Code genuinely usable for people with typing limitations.

Related: #34012 (voice mode does not auto-enable on startup despite voiceEnabled: true)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗