Skip to content

ambreenbibi/shortkeys

 
 

Repository files navigation

Shortkeys ⌨️

Custom keyboard shortcuts for your browser — 90+ built-in actions, shortcut packs, cloud sync, and more.

Chrome Web Store · Firefox Add-on · Website · Documentation · Support

Features

  • 90+ built-in actions — tabs, scrolling, navigation, video controls, page scripts, and more
  • Command palette — click the extension icon to search and trigger any shortcut
  • Shortcut packs — one-click install curated collections (Vim, Emacs, YouTube, etc.)
  • Cloud sync — shortcuts sync across devices via your browser account
  • Groups — organize shortcuts into collapsible, renamable sections
  • Custom JavaScript — run any code with a keyboard shortcut, with syntax-highlighted editor
  • Shortcut recorder — click Record and press keys, supports multi-key sequences
  • Conflict detection — warns when shortcuts clash with browser defaults
  • Live reload — save shortcuts and they update in all tabs instantly
  • Share via link — generate a URL to share shortcuts with anyone
  • Dark mode — settings page follows your system preference
  • Firefox support — full Firefox build included
  • Greasyfork import — paste a userscript URL to bind it to a shortcut

Getting Started

Install from the Chrome Web Store or Firefox Add-ons, or build from source:

npm install
npm run build          # Chrome → .output/chrome-mv3/
npm run build:firefox  # Firefox → .output/firefox-mv2/

Development

npm run dev            # Chrome dev mode with hot reload
npm run dev:firefox    # Firefox dev mode
npm test               # Run all 416 tests
npm run test:watch     # Watch mode
npm run test:coverage  # With coverage report
npm run build:site     # Build shortkeys.app community site

Architecture

Built with WXT (Vite-based browser extension framework), Vue 3, and TypeScript. See .github/copilot-instructions.md for detailed architecture docs.

src/
├── entrypoints/
│   ├── background.ts        # Service worker: messaging, storage sync, action dispatch
│   ├── content.ts           # Content script: Mousetrap bindings, cheat sheet, dark mode
│   ├── options/             # Options page (Vue 3 SPA)
│   └── popup/               # Command palette popup
├── actions/
│   └── action-handlers.ts   # Map-based action registry (96+ handlers)
├── components/              # Vue components (CodeEditor, SearchSelect, ShortcutRecorder)
├── packs/                   # Curated shortcut pack collections
└── utils/                   # Pure business logic (URL matching, conflicts, storage, snippets)

site/                        # shortkeys.app (Netlify)
tests/                       # 416 tests across 14 files

Support This Project

Shortkeys is free and open source. If you find it useful, consider supporting development:

Credits

About

A browser extension for custom keyboard shortcuts

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 66.5%
  • Vue 20.7%
  • HTML 12.7%
  • JavaScript 0.1%