Token导航 LogoToken导航TokenDH.com
前端设计需要联网github未标认证来源可访问许可证需确认审计通过

tanstack-hotkeys-guidetanstack 热键指南

Agent Skill

tanstack-hotkeys-guide 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

192

周安装

8

GitHub Stars

17

下载量

64
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:tanstack-hotkeys-guide(tanstack 热键指南)
来源仓库:https://github.com/vcode-sh/vibe-tools
仓库路径:skills/tanstack-hotkeys-guide
安装命令:
npx skills add https://github.com/vcode-sh/vibe-tools --skill tanstack-hotkeys-guide
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/vcode-sh/vibe-tools --skill tanstack-hotkeys-guide

简介

tanstack-hotkeys-guide 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装使用。
  • 安装前需确认权限范围、维护状态,以及是否触发联网、命令执行或文件读写。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Purpose

TanStack Hotkeys is a type-safe, framework-agnostic library for handling keyboard shortcuts. It provides React hooks for registering hotkeys, multi-key sequences, recording custom shortcuts, tracking key state, and platform-aware display formatting. The library uses event.key as its primary API with event.code fallback for letter/digit keys. Currently in alpha -- API may change.

When NOT to use: For a single shortcut listener, a plain addEventListener('keydown',...) may suffice. Reach for TanStack Hotkeys when you need multiple shortcuts, cross-platform Mod handling, sequences, recording, or key-state tracking.

Instructions

  • Always use Mod instead of platform-specific Meta or Control for cross-platform shortcuts
  • Import from @tanstack/react-hotkeys for React projects (it re-exports everything from @tanstack/hotkeys)
  • Import from @tanstack/hotkeys only for vanilla JS without React
  • Prefer the string form ('Mod+S') over RawHotkey objects unless the hotkey is dynamic or built programmatically
  • Always add tabIndex={0} to elements used as target refs -- they must be focusable to receive keyboard events
  • When building shortcut customization UIs, combine useHotkeyRecorder with formatForDisplay for recording and display
  • The recorder auto-converts platform keys to portable Mod format -- do not manually convert recorded hotkeys
  • Do NOT combine Mod with Control or Mod with Meta -- these create duplicate modifiers on one platform
  • Avoid Alt+letter shortcuts for cross-platform apps -- macOS produces special characters with Option+letter
  • Avoid Shift+number and Shift+punctuation shortcuts -- results are keyboard-layout-dependent
  • Warn the user that TanStack Hotkeys is in alpha when recommending it for production use
  • Default preventDefault: true and stopPropagation: true are intentional -- override explicitly only when needed
  • Use conflictBehavior: 'allow' for intentional duplicate hotkeys, not to silence bugs

Installation

npm install @tanstack/react-hotkeys

The React package re-exports everything from @tanstack/hotkeys. No separate core install needed. For vanilla JS only, install @tanstack/hotkeys directly.

Optional devtools:

npm install @tanstack/react-devtools @tanstack/react-hotkeys-devtools

Quick Start

import { useHotkey } from '@tanstack/react-hotkeys'

function App() {
  useHotkey('Mod+S', () => saveDocument())
  return <div>Press Cmd+S (Mac) or Ctrl+S (Windows) to save</div>
}

Mod resolves to Meta (Cmd) on macOS and Control on Windows/Linux.

React Hooks Reference

useHotkey(hotkey, callback, options?)

Register a keyboard shortcut. Auto-syncs callback every render (no stale closures). Auto-unregisters on unmount.

useHotkey('Mod+S', (event, { hotkey, parsedHotkey }) => {
  save()
})

Accept a string ('Mod+S') or RawHotkey object ({key: 'S', mod: true}).

useHotkeySequence(sequence, callback, options?)

Register Vim-style multi-key sequences. Each step can include modifiers.

useHotkeySequence(['G', 'G'], () => scrollToTop())
useHotkeySequence(['Mod+K', 'Mod+C'], () => commentSelection())

Options: {timeout: 1000, enabled: true}.

useHotkeyRecorder(options)

Record custom keyboard shortcuts for settings UIs. Auto-converts to portable Mod format.

const { isRecording, recordedHotkey, startRecording, stopRecording, cancelRecording } =
  useHotkeyRecorder({ onRecord: (hotkey) => setShortcut(hotkey) })

Options: {onRecord, onCancel?, onClear?}. Escape cancels. Backspace/Delete clears.

useHeldKeys()

Return a reactive string[] of currently held key names.

useHeldKeyCodes()

Return a reactive Record<string, string> mapping key names to event.code values.

useKeyHold(key)

Return boolean for a specific key's hold state. Only re-renders when that key changes.

const isShiftHeld = useKeyHold('Shift')

useDefaultHotkeysOptions()

Return the current default options from HotkeysProvider context.

useHotkeysContext()

Return the full hotkeys context value, or null if outside a provider.

HotkeysProvider

Wrap the app to set global default options. Per-hook options override provider defaults.

import { HotkeysProvider } from '@tanstack/react-hotkeys'

<HotkeysProvider defaultOptions={{
  hotkey: { preventDefault: true },
  hotkeySequence: { timeout: 1500 },
  hotkeyRecorder: { onCancel: () => console.log('cancelled') },
}}>
  <App />
</HotkeysProvider>

Hotkey String Format

  • Modifiers: Control, Alt, Shift, Meta
  • Cross-platform: Mod (Cmd on Mac, Ctrl on Windows/Linux)
  • Format: Modifier+Modifier+Key -- e.g., 'Mod+Shift+S'
  • Single keys: 'Escape', 'Enter', 'F1', 'ArrowUp', 'A', '1', '/'
  • RawHotkey alternative: {key: 'S', mod: true, shift: true}
  • Mod+Control and Mod+Meta combinations are NOT allowed (would duplicate modifiers)

useHotkey Options

OptionDefaultDescription
enabledtrueWhether the hotkey is active
preventDefaulttrueCall event.preventDefault()
stopPropagationtrueCall event.stopPropagation()
eventType'keydown''keydown' or 'keyup'
requireResetfalseFire only once per key press
ignoreInputssmartfalse for Mod+key and Escape; true for single keys and Shift/Alt combos
targetdocumentDOM element, document, window, or React ref
conflictBehavior'warn''warn', 'error', 'replace', or 'allow'
platformautoOverride: 'mac', 'windows', 'linux'

Smart ignoreInputs default: Mod+key shortcuts and Escape fire in text inputs. Single keys and Shift/Alt combos are ignored. Button-type inputs (type="button/submit/reset") are NOT ignored -- shortcuts work on them.

Display Formatting

import { formatForDisplay, formatWithLabels, formatKeyForDebuggingDisplay } from '@tanstack/react-hotkeys'

formatForDisplay('Mod+S')        // Mac: "⌘S"         Windows: "Ctrl+S"
formatWithLabels('Mod+S')        // Mac: "Cmd+S"      Windows: "Ctrl+S"
formatKeyForDebuggingDisplay('Meta') // Mac: "⌘ Mod (Cmd)"

Options: {platform: 'mac' | 'windows' | 'linux'}.

Core Utilities (Vanilla JS)

Use these without React:

import {
  parseHotkey, normalizeHotkey, validateHotkey,
  createHotkeyHandler, createMultiHotkeyHandler, createSequenceMatcher,
  getHotkeyManager, getKeyStateTracker, getSequenceManager,
} from '@tanstack/hotkeys'
  • parseHotkey('Mod+S') -- return ParsedHotkey object
  • normalizeHotkey('cmd+s') -- return canonical form 'Meta+S'
  • validateHotkey('Alt+A') -- return {valid, warnings, errors}
  • createHotkeyHandler('Mod+S', callback) -- return event handler function
  • createMultiHotkeyHandler({'Mod+S': save, 'Mod+Z': undo}) -- return single event handler
  • createSequenceMatcher(['G', 'G'], {timeout: 500}) -- return {match(), reset(), getProgress()}

Key Rules and Gotchas

  • Library is in ALPHA -- API may change
  • Mod is the recommended way to write cross-platform shortcuts
  • Default preventDefault: true and stopPropagation: true -- override explicitly if needed
  • When using target with a ref, ensure the element has tabIndex for focus
  • macOS may swallow keyup events for non-modifier keys when a modifier is held -- library handles this
  • Window blur auto-clears all held keys to prevent "stuck" keys
  • conflictBehavior: 'warn' is default -- logs duplicates during development
  • event.key is primary. event.code is fallback for letter/digit keys when event.key produces special characters (macOS Option+letter, Shift+number)
  • Alt+letter on macOS may produce special characters. validateHotkey warns about this
  • Shift+number and Shift+punctuation produce layout-dependent characters (Shift+1 → !) -- avoid these combos; use Mod+number instead
  • SSR: detectPlatform() defaults to 'linux' when navigator is undefined -- Mod resolves to Control during server rendering
  • Canonical modifier order in normalized strings: Control → Alt → Shift → Meta

Devtools Setup

import { TanStackDevtools } from '@tanstack/react-devtools'
import { hotkeysDevtoolsPlugin } from '@tanstack/react-hotkeys-devtools'

function App() {
  return (
    <div>
      <TanStackDevtools plugins={[hotkeysDevtoolsPlugin()]} />
    </div>
  )
}

Devtools are no-op in production by default. Use /production import path for production debugging:

import { hotkeysDevtoolsPlugin } from '@tanstack/react-hotkeys-devtools/production'

Reference Files

  • references/api-reference.md -- Full API surface with types and interfaces. Read when you need exact type signatures, constructor parameters, or constant values.
  • references/patterns.md -- 25 usage patterns with complete code examples. Read when generating component code, building UIs with hotkeys, or choosing between implementation approaches.
  • references/troubleshooting.md -- Platform quirks, common issues, and solutions. Read when debugging hotkey issues, when the user reports unexpected behavior, or when working with macOS/SSR edge cases.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

37.97%
按下载量换算24

Claude

27.66%
按下载量换算18

Cursor

18.14%
按下载量换算12

Gemini CLI

9.76%
按下载量换算6

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills