Tab key captured by webview in v2.1.69, breaks global hotkey tools (e.g. Aqua Voice)
Summary
After updating Claude Code to v2.1.69, the Tab key no longer triggers global hotkey listeners (WH_KEYBOARD_LL) when the Claude Code window is focused.
Steps to reproduce
- Install Aqua Voice (voice-to-text tool that hooks Tab globally via WH_KEYBOARD_LL)
- Open Claude Code v2.1.69
- Click inside the input area (webview)
- Press Tab
Expected: Aqua Voice activates (starts recording)
Actual: Tab is silently consumed by the webview, Aqua Voice never sees the keypress
Environment
- Claude Code: v2.1.69
- OS: Windows 11 Pro (10.0.26200)
- Was working in v2.1.68 and earlier
Root cause analysis
Claude Code uses an Electron/Chromium webview for the input area. Starting from v2.1.69, the webview appears to capture Tab at a lower level before WH_KEYBOARD_LL hooks can see it. Tab is a special key in browser/webview context (focus traversal), so it gets intercepted before being forwarded to OS-level hooks.
Other keys (letters, Enter, etc.) still reach global hooks normally.
Workaround
Using Win+H (Windows built-in voice typing) as a fallback. Or using a different key (non-Tab) for Aqua Voice hotkey.
Impact
Any global hotkey tool that relies on WH_KEYBOARD_LL and uses Tab as a trigger key is broken when Claude Code is focused. This is a regression from v2.1.68.
Request
Please either:
- Forward Tab key events to OS-level hooks (like other keys), or
- Add a setting to disable Tab capture in the input webview
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗