https://github.com/crittermike/shortkeys
A browser extension for custom keyboard shortcuts
https://github.com/crittermike/shortkeys
chrome javascript webextension
Last synced: 4 days ago
JSON representation
A browser extension for custom keyboard shortcuts
- Host: GitHub
- URL: https://github.com/crittermike/shortkeys
- Owner: crittermike
- License: other
- Created: 2012-04-25T21:13:23.000Z (almost 14 years ago)
- Default Branch: master
- Last Pushed: 2026-03-08T16:20:33.000Z (9 days ago)
- Last Synced: 2026-03-08T19:41:45.895Z (9 days ago)
- Topics: chrome, javascript, webextension
- Language: TypeScript
- Homepage: https://www.shortkeys.app/
- Size: 4.61 MB
- Stars: 1,169
- Watchers: 25
- Forks: 176
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
Shortkeys
Custom keyboard shortcuts for your browser
A cross-browser extension for Chrome, Firefox, Edge, and Opera with 200,000+ Chrome users.
Chrome Web Store ยท Firefox Add-ons ยท Website ยท Issues
## Features
- โก **125+ built-in actions** across 11 categories: scrolling, tabs, navigation, video controls, search, bookmarks, windows, zooming, page tools, page scripts, and more
- ๐ **Command palette** - click the icon or set a shortcut to search and trigger any action
- ๐ฆ **9 curated shortcut packs** - one-click install for Vim, Emacs, YouTube, Productivity, Developer, Reading, Tab Manager, Keyboard Power, and Media Control
- โ๏ธ **Cloud sync** with automatic local fallback when data exceeds sync quota
- ๐ **Groups** - organize shortcuts into collapsible, renamable sections with bulk enable/disable
- ๐ **Macro chaining** - chain multiple actions into a single shortcut
- ๐ **Site filtering** - all sites, blocklist, or allowlist per shortcut
- ๐ฌ **Live reload** - shortcuts update in all tabs instantly, no page refresh needed
- ๐ **Shareable links** - generate a URL to share shortcuts or groups with anyone
- โจ๏ธ **Shortcut recorder** with multi-key sequence support (e.g. `g i`, `g h`)
- โ ๏ธ **Conflict detection** - platform-aware warnings for browser default clashes
- ๐ **Dark mode** following system preference
- ๐ **Userscript import** from Greasyfork and OpenUserJS
- ๐ง **Guided onboarding** wizard for new users
- โฉ๏ธ **Undo/redo** in the settings page
More screenshots
### Custom JavaScript editor

### Macro chaining

### Dark mode

## Install
Or build from source:
```bash
npm install
npm run build # Chrome โ .output/chrome-mv3/
npm run build:firefox # Firefox โ .output/firefox-mv2/
```
## Development
```bash
npm run dev # Chrome dev mode with hot reload
npm run dev:firefox # Firefox dev mode
npm test # Run all tests (722 tests across 25 files)
npm run test:watch # Watch mode
npm run test:coverage # With coverage report
```
## Project structure
```
src/
โโโ entrypoints/
โ โโโ background.ts # Service worker: messaging, action dispatch, storage sync
โ โโโ content.ts # Content script: Mousetrap key bindings, cheat sheet, dark mode
โ โโโ options/ # Options page (Vue 3 SPA)
โ โโโ popup/ # Command palette popup
โโโ actions/ # Action handlers and helpers
โโโ components/ # Vue components (CodeEditor, SearchSelect, ShortcutRecorder)
โโโ composables/ # Vue composables (useShortcuts)
โโโ packs/ # 9 curated shortcut pack collections
โโโ utils/ # Storage, URL matching, conflict detection, JS snippets
site/ # shortkeys.app (Astro SSG, deployed to Netlify)
tests/ # 722 tests across 25 files
marketing/ # Store listing copy, screenshot plans, promo assets
```
## Tech stack
- **WXT** - Vite-based browser extension framework
- **Vue 3** - Composition API with ``
- **TypeScript** throughout
- **Vitest** - 722 tests across 25 files
- **Mousetrap** - keyboard shortcut detection
- **CodeMirror 6** - JavaScript editor with syntax highlighting
- **Astro** - community website (shortkeys.app)
## Contributing
Pull requests are welcome. Please ensure all tests pass (`npm test`) before submitting. For bugs and feature requests, open a [GitHub issue](https://github.com/crittermike/shortkeys/issues).
## Support
Shortkeys is free and open source. If you find it useful, consider supporting development:
- โญ [Star this repo](https://github.com/crittermike/shortkeys)
- ๐ [Sponsor on GitHub](https://github.com/sponsors/crittermike)
- โ [Buy me a coffee](https://buymeacoffee.com/crittermike)
- ๐ [Leave a review](https://chromewebstore.google.com/detail/shortkeys-custom-keyboard/logpjaacgmcbpdkdchjiaagddngobkck/reviews)
## Credits and license
Icon by [Freepik](https://www.flaticon.com/authors/freepik) from [Flaticon](https://www.flaticon.com/).
Licensed under the [MIT License](LICENSE.md).