Docs
CodeRabbit
Cloudflare
AG Grid
SerpAPI
Netlify
OpenRouter
Neon
WorkOS
Clerk
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
CodeRabbit
Cloudflare
AG Grid
SerpAPI
Netlify
OpenRouter
Neon
WorkOS
Clerk
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
Hotkeys API Reference
App Hotkeys API Reference
Key hold & held keys API Reference
Hotkey Recorder API Reference
Normalization & format API Reference
Normalization & format API Reference

matchesKeyboardEvent

ts
function matchesKeyboardEvent(
   event, 
   chord, 
   platform?): boolean;
function matchesKeyboardEvent(
   event, 
   chord, 
   platform?): boolean;

Defined in: match.ts:52

Checks if a KeyboardEvent matches a hotkey.

Physical bindings such as Mod+[KeyS] match event.code exactly. Logical bindings use event.key, with a fallback to code for letter keys, digit keys (0-9), and punctuation keys when key produces special characters (e.g., macOS Option+letter, Shift+number, or Option+punctuation). Letter keys are matched case-insensitively.

Also handles "dead key" events where event.key is 'Dead' instead of the expected character. This commonly occurs on macOS with Option+letter combinations (e.g., Option+E, Option+I, Option+U, Option+N) and on Windows/Linux with international keyboard layouts. In these cases, event.code is used to determine the physical key.

Parameters

event

KeyboardEvent

The KeyboardEvent to check

chord

| HotkeyChord | ParsedHotkeyChord

The chord string or parsed chord to match against

platform?

"mac" | "windows" | "linux"

The target platform for resolving 'Mod' (defaults to auto-detection)

Returns

boolean

True if the event matches the chord

Example

ts
document.addEventListener('keydown', (event) => {
  if (matchesKeyboardEvent(event, 'Mod+S')) {
    event.preventDefault()
    handleSave()
  }
})
document.addEventListener('keydown', (event) => {
  if (matchesKeyboardEvent(event, 'Mod+S')) {
    event.preventDefault()
    handleSave()
  }
})