Caps Lock voice dictation silently fails on macOS — missing speech-recognition entitlement in Claude Desktop binary
Environment
- macOS 26 (Tahoe)
- Latest Claude Desktop
Symptom
Pressing Caps Lock shows the orange overlay, but no audio is ever transcribed. Claude never appears in System Settings → Privacy & Security → Speech Recognition regardless of permission resets or reinstalls.
Root Cause
The Claude Desktop binary at /Applications/Claude.app is missing the com.apple.security.personal-information.speech-recognition entitlement. Without it, macOS silently denies speech recognition access — no TCC prompt is shown and no entry is created in the Speech Recognition pane.
Verification
Run:
codesign -d --entitlements - /Applications/Claude.app | grep -i speech
Returns no match. Present entitlements include device.audio-input, device.camera, device.bluetooth, device.usb, device.print, personal-information.location, personal-information.photos-library, and virtualization — but no speech-recognition entitlement.
Why the in-app mic still works
The in-app microphone button in the prompt box uses standard audio capture (device.audio-input, which IS present) and transcribes correctly. Only the Caps Lock quick entry path, which per Anthropic's own documentation specifically requires Speech Recognition permission, fails.
Troubleshooting already attempted (all had no effect)
- Granted Microphone and Accessibility permissions to Claude
- Confirmed macOS Voice Control is off
- Confirmed correct input device selected in Sound → Input
- Confirmed Caps Lock not remapped in Keyboard → Modifier Keys
- tccutil reset SpeechRecognition and tccutil reset Microphone + quit/relaunch
- Toggled voice shortcut off/on in Claude settings
Fix required
Add com.apple.security.personal-information.speech-recognition to the code-signing entitlements of the Claude Desktop macOS binary.
Reference
Similar entitlement regression previously affected Claude Code (anthropics/claude-code#33023).
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗