# ssleptsov/ninja-keys

Keyboard shortcuts interface for your website. Working with static HTML, Vanilla JS, Vue, React, Svelte.

Repository: https://github.com/ssleptsov/ninja-keys
Canonical: https://ross.abutalabs.com/products/ninja-keys
Homepage: https://ninja-keys-demo.vercel.app/
Language: TypeScript
License: MIT
License Family: permissive
Topics: web-components, lit-element, typescript, keyboard, hotkeys, shortcut, hotkey, vue, react, typescript-library, keyboard-shortcuts, svelte
Last push: 2024-07-14T19:25:36+00:00

## Health v2 (maintenance only)
Score: 32/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 1779, "days_push": 780, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1705, forks 69 (observed 2026-08-28T04:05:24.819185+00:00)

## What it is
Ninja Keys is a framework-agnostic web component (built with Lit Element) that adds a ⌘K/Ctrl+K command palette and keyboard shortcut interface to any website. It works with static HTML, Vanilla JS, Vue, React, Svelte, and SolidJS, supporting nested menus, theming, and auto-registered hotkeys.

## Use cases
- add a cmd+k command palette to my website
- keyboard shortcut navigation for a static site
- spotlight-style search dialog in react
- framework-agnostic command menu web component
- nested hotkey menu with dark mode
- add keyboard shortcuts to a vue app

## When to choose
- you need a ⌘K command palette that works across multiple frameworks or with no framework
- you want a plain web component without heavy dependencies
- you need nested menus, root search, and built-in theming out of the box

## When to avoid
- you are deep in a single framework ecosystem and prefer native integrations like kbar for React
- you need mobile-first touch navigation rather than keyboard-driven UI
- you require extensive accessibility auditing beyond what the component provides

## Facets
- artifact type: library
- maturity: stable
- function: ui-components, frontend-framework, search-engine, routing
- domain: web-development, frontend, developer-tools, accessibility
- platform: browser, cross-platform
- tags: web-components, lit-element, command-palette, keyboard-shortcuts, hotkeys, cmdk, spotlight-search, framework-agnostic, web-server

## Member repositories
- ssleptsov/ninja-keys (main) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:24.819185+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:37:33.188740+00:00, confidence not recorded.
  - readme: https://github.com/ssleptsov/ninja-keys (fetched 2026-08-28T04:05:24.819185+00:00, sha 94cccc916666)
  - homepage: https://ninja-keys-demo.vercel.app/ (fetched 2026-08-29T11:12:06.016015+00:00, sha 1db23cd26ca6)
  - registry_npm: https://registry.npmjs.org/ninja-keys (fetched 2026-08-29T11:12:06.025830+00:00, sha d1d2bb303d82)
- Data as of 2026-08-30T08:39:29.467469+00:00.
