tanstack-hotkeys

v2026.09.24

TanStack Hotkeys for type-safe keyboard shortcuts with React hooks. Use when adding keyboard shortcuts, hotkey sequences, shortcut recording, key hold detection, or platform-aware shortcut display. Use for hotkeys, keyboard-shortcuts, shortcuts, key-binding, Mod key, hotkey-recorder, key-sequences.

GitHub
Install command
npx skhub add oakoss/tanstack-hotkeys
Markdown
SKILL.md

TanStack Hotkeys

Overview

TanStack Hotkeys is a type-safe keyboard shortcuts library for React with template-string bindings, cross-platform Mod key abstraction (Cmd on macOS, Ctrl on Windows/Linux), and SSR-friendly utilities. It provides hooks for single hotkeys, multi-key sequences, shortcut recording, and real-time key state tracking, plus platform-aware display formatting.

When to use: Adding keyboard shortcuts to React apps, recording user-defined hotkeys, detecting held modifier keys, displaying platform-specific shortcut labels, implementing Vim-style key sequences.

When NOT to use: Non-React apps without a wrapper (core package exists but React is the primary target), complex input handling that needs full keymap management (consider a dedicated keymap library).

Quick Reference

PatternAPIKey Points
Single hotkeyuseHotkeyMod abstracts Cmd/Ctrl; auto-prevents default on combos
Multi-key sequenceuseHotkeySequenceVim-style sequences like g g; configurable timeout
Record shortcutsuseHotkeyRecorderUser-defined shortcuts; start/stop/cancel recording
Detect key helduseKeyHoldBoolean for specific key; optimized re-renders
Track all held keysuseHeldKeysArray of currently pressed key names
Track held key codesuseHeldKeyCodesMap of key names to physical event.code values
Global defaultsHotkeysProviderSet default options for all hooks; per-hook overrides apply
Format for displayformatForDisplayPlatform-aware: macOS symbols vs Windows/Linux text
Scope to elementtarget option + refRequires tabIndex on target element for focus
Conditional hotkeysenabled optionDynamically enable/disable without unmounting

Common Mistakes

MistakeCorrect Pattern
Missing tabIndex on scoped target elementAdd tabIndex={-1} (or 0) to elements using target ref for focus
Using Ctrl instead of ModUse Mod for cross-platform; it maps to Cmd (Mac) or Ctrl (Win/Linux)
Assuming hotkeys fire inside inputsignoreInputs defaults to smart detection; set false to force firing
Duplicate hotkey registrations without configSet conflictBehavior: 'replace' to override, or 'error' to catch
Forgetting preventDefault is auto-enabledModifier combos auto-prevent; set preventDefault: false to allow default
Using keyup without requireResetCombine eventType: 'keyup' with requireReset: true to fire once

Delegation

If the tanstack-pacer skill is available, delegate throttling and debouncing tasks to it. TanStack Pacer is useful for rate-limiting hotkey callbacks. Otherwise, recommend: pnpm dlx skills add oakoss/agent-skills -s tanstack-pacer -a claude-code -y

If the tanstack-devtools skill is available, delegate devtools setup to it. Otherwise, recommend: pnpm dlx skills add oakoss/agent-skills -s tanstack-devtools -a claude-code -y

  • Keyboard shortcuts and hotkeys: Use this skill
  • Throttling/debouncing hotkey callbacks: Delegate to tanstack-pacer
  • DevTools integration: Delegate to tanstack-devtools

References

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

skills/tanstack-hotkeys

Default branch

main

Latest commit

85e3a39

Tree SHA

a4c9e7b