[FEATURE] VS Code extension: allow voice dictation in Remote - WSL windows (mic is available via WSLg)
Problem Statement
In the VS Code extension the voice dictation mic button is hidden in every Remote window, including Remote - WSL. The gate is a hard-coded vscode.env.remoteName check, not a capability probe:
isSpeechToTextEnabled(){
if(K$.env.remoteName) return !1; // hides the button for "wsl" too
if(this.authManager.getAuthStatus()?.authMethod!=="claudeai") return !1;
return PW$() // native module OR rec/arecord on PATH
}
WSL is not like SSH or Codespaces: the "remote" is the same machine, and WSLg exposes the host microphone inside the distro (PulseAudio socket at /mnt/wslg/PulseServer). Everything after that early return already handles this case: PW$() finds rec, and capture falls back from audio-capture.node to rec -q --buffer 1024 -t raw -r 16000 -e signed -b 16 -c 1 -.
Result today: people who do all their development in WSL (the recommended setup on Windows) cannot use dictation in the panel at all.
Proposed Solution
Any of these would work:
- Exempt WSL:
if (remoteName && remoteName !== "wsl") return false; - Or drop the
remoteNamecheck and rely on the capability probe that already exists (PW$()), showing the existing "no recording backend" tooltip when it fails. - Or add a setting such as
claudeCode.voice.allowRemotefor users who know their remote has a microphone.
Evidence that the rest of the path works (extension 2.1.283, anthropic.claude-code-2.1.283-linux-x64):
recin the distro captures the WSLg mic with the default driver (2 s test, peak amplitude 0.11, no env vars).- The terminal CLI's
/voice tapin the same WSL window transcribes Turkish correctly ("Dictation language: tr"). - Removing only that early return from the local extension copy and reloading the window: the mic button appears, Ctrl+D records, live interim text shows, and Turkish transcripts land in the prompt. I dictated several messages this way.
Alternative Solutions
- Patching the local extension bundle: works, but is lost on every extension update.
- Using the terminal CLI with
/voiceinside the WSL window: works, but not the panel UX. - Windows-side dictation into the panel (Win+H): works, but does not use Claude's speech model.
Additional Context
- Windows 11 + WSL2 (kernel 6.6.87.2-microsoft-standard-WSL2), Ubuntu 26.04, WSLg enabled
- Auth: claude.ai
sox+libsox-fmt-pulseinstalled in the distro (the docs could mention these for the WSL CLI path)- Related but different: #42700 is about Remote Control (phone) sessions, not Remote - WSL windows.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗