About this tool
What does it show?
Live keyboard event data: key, code, keyCode, which, modifiers and location — the debugging lens for shortcuts, game input, IME behavior and layout quirks.
How to use it
- Focus the page and press keys to inspect events.
- Compare code (physical key) vs key (produced character).
- Copy values straight into your handlers.
Examples
- Why Ctrl+ß fires differently across layouts.
- Distinguishing left vs right modifiers via location.
- Verifying preventDefault targets in a shortcut system.
Important limitations
- keyCode/which are legacy: prefer e.key and e.code in new code.
- Layouts and IMEs transform input — test target locales, not just yours.
- Browsers reserve some combos (Ctrl+W); pages cannot see them.
Privacy
Key events are read locally and never transmitted. (Keylogging is exactly why you should only trust pages like this with test keystrokes.)
Frequently asked questions
key vs code?
key = what it types (layout-dependent), code = which physical key (layout-independent).
Why 229 everywhere?
IME composition in progress — wait for compositionend for the final value.
Deprecated keyCode?
Still works, still discouraged — migrate to key/code.