+ Register multi-key sequences (like Vim commands). Keys must be
+ pressed within the timeout window (default: 1000ms).
+
+
+
+
+
+
Vim-Style Commands
+
+
+
+
Sequence
+
Action
+
+
+
+
+
gg
+
Go to top
+
+
+
G (Shift+G)
+
Go to bottom
+
+
+
dd
+
Delete line
+
+
+
yy
+
Yank (copy) line
+
+
+
dw
+
Delete word
+
+
+
ciw
+
Change inner word
+
+
+
+
+
+
+
Fun Sequences
+
+
+
Konami Code (Partial)
+
↑↑↓↓
+ Use arrow keys within 1.5 seconds
+
+
+
Side to Side
+
←→←→
+ Arrow keys within 1.5 seconds
+
+
+
Spell It Out
+
+ hell
+ o
+
+ Type "hello" quickly
+
+
+
+
+ ${this.lastSequence
+ ? html`
+
+ Triggered: ${this.lastSequence}
+
+ `
+ : null}
+
+
+
Input handling
+
+ Sequences are not detected when typing in text inputs, textareas,
+ selects, or contenteditable elements. Button-type inputs (
+ type="button", submit,
+ reset) still receive sequences. Focus the input below
+ and try gg or hello
+ — nothing will trigger. Click outside to try again.
+
+ Last triggered:
+ ${formatForDisplay(this.lastHotkey)}
+
+ `
+ : null}
+
+
Press Escape to reset all counters
+
+
+
Scoped Keyboard Shortcuts
+
+ Shortcuts can be scoped to specific DOM elements using the
+ target option with HotkeyController. This
+ allows different shortcuts to work in different parts of your
+ application.
+
+ These shortcuts only work when the editor is focused. Notice
+ that
+ ${formatForDisplay('Mod+S')} here doesn't conflict
+ with the global
+ ${formatForDisplay('Mod+S')} shortcut.
+
+
+### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)
+
+
+
+# TanStack Hotkeys
+
+> [!NOTE]
+> TanStack Hotkeys is pre-alpha (prototyping phase). We are actively developing the library and are open to feedback and contributions.
+
+Type-safe keyboard shortcuts for the web. Template-string bindings, parsed objects, a cross-platform `Mod` key, a singleton Hotkey Manager, and utilities for cheatsheet UIs—built to stay SSR-friendly.
+
+- Type-safe bindings — template strings (`Mod+Shift+S`, `Escape`) or parsed objects for full control
+- Flexible options — `keydown`/`keyup`, `preventDefault`, `stopPropagation`, conditional enabled, `requireReset`
+- Cross-platform Mod — maps to Cmd on macOS and Ctrl on Windows/Linux
+- Batteries included — validation + matching, sequences (Vim-style), key-state tracking, recorder UI helpers, framework adapters, and devtools
+
+### Read the docs →
+
+
+
+> [!NOTE]
+> You may know **TanStack Hotkeys** by our adapter names, too!
+>
+> - [**React Hotkeys**](https://tanstack.com/hotkeys/latest/docs/framework/react/react-hotkeys)
+> - [**Preact Hotkeys**](https://tanstack.com/hotkeys/latest/docs/framework/preact/preact-hotkeys)
+> - [**Solid Hotkeys**](https://tanstack.com/hotkeys/latest/docs/framework/solid/reference)
+> - [**Angular Hotkeys**](https://tanstack.com/hotkeys/latest/docs/framework/angular/reference)
+> - [**Vue Hotkeys**](https://tanstack.com/hotkeys/latest/docs/framework/vue/reference)
+> - [**Lit Hotkeys**](https://tanstack.com/hotkeys/latest/docs/framework/lit/reference)
+> - Svelte Hotkeys – needs a contributor!
+
+## Get Involved
+
+- We welcome issues and pull requests!
+- Participate in [GitHub discussions](https://github.com/TanStack/hotkeys/discussions)
+- Chat with the community on [Discord](https://discord.com/invite/WrRKjPJ)
+- See [CONTRIBUTING.md](./CONTRIBUTING.md) for setup instructions
+
+## Partners
+
+
+We're looking for TanStack Hotkeys Partners to join our mission! Partner with us to push the boundaries of TanStack Hotkeys and build amazing things together.
+