[BUG] /voice fails on Windows - audio-capture.node path hardcoded to CI build machine

Resolved 💬 5 comments Opened Mar 5, 2026 by spiveym Closed Mar 5, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

The /voice command fails on Windows with "Voice recording requires the native audio module, which could not be loaded."

It seems as though the audio-capture.node native module path is hardcoded to the CI build machine path (D:/a/claude-cli-internal/claude-cli-internal/vendor/audio-capture/x64-win32/audio-capture.node) and therefore the module is not bundled with or extracted from the binary.

What Should Happen?

Voice recording should work on Windows. The native audio-capture.node module should either be bundled and extracted at runtime, shipped alongside the binary, or resolved relative to the executable.

Error Messages/Logs

Voice recording requires the native audio module, which could not be loaded.

Steps to Reproduce

  1. Install Claude Code 2.1.69 Windows binary
  2. Run claude in any terminal
  3. Type /voice
  4. Observe the error

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.69 (Claude Code)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

Root cause analysis from binary inspection:

The dd$() function in the bundled code attempts to load:
path.join(
  path.dirname("file:///D:/a/claude-cli-internal/claude-cli-internal/vendor/audio-capture-src/index.ts"),
  "..", "audio-capture", "x64-win32", "audio-capture.node"
)

This resolves to D:\a\claude-cli-internal\...\audio-capture.node - a GitHub Actions runner path that doesn't exist on user machines.

The code checks for AUDIO_CAPTURE_NODE_PATH env var as an override, but there's no .node file shipped to point to. Unlike the image-processor.node which appears embedded in the binary, audio-capture.node is not bundled.

View original on GitHub ↗

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