Shortkeys
Custom keyboard shortcuts for your browser
A browser extension for Chrome, Edge, and Opera with 200,000+ Chrome users. Firefox distribution is currently blocked.
Chrome Web Store · Firefox status · 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 - search saved shortcuts and run unassigned, zero-config actions without creating shortcuts. Quick-add opens settings when an action needs parameters.
- 📦 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, with separate URLs, text, and other settings for each step
- 🌐 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
|
Chrome |
Firefox status |
Edge |
Opera |
Firefox v5.0.1 was rejected by Mozilla for remote code execution and missing data-transmission consent. The AMO API currently lists only v2.0.20 (2017), and users report installation failures (#864, #982). A successful source build is not a signed, approved Firefox release.
The Firefox source build targets desktop Firefox 153+ using Manifest V3. Custom JavaScript, JavaScript macros, and bookmarklets use Firefox's native user-script API: enable the optional permission, review and install each script, and reinstall after editing its code or website scope. Removing a script disables execution without deleting its editable code. Remote userscript URL loading is unavailable in Firefox. Optional data transmission requires Firefox's built-in consent and stops when that consent is revoked.
Or build from source for development:
npm install
npm run build # Chrome → .output/chrome-mv3/
npm run build:firefox # Firefox 153+ → .output/firefox-mv3/
Development
npm run dev # Chrome dev mode with hot reload
npm run dev:firefox # Firefox dev mode
npm run typecheck # TypeScript and Vue checks
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.
Use Node 22, the version used in CI. Release preparation and browser signing requirements are documented in RELEASING.md.
Support
Shortkeys is free and open source. If you find it useful, consider supporting development:
Credits and license
Icon by Freepik from Flaticon.
Licensed under the MIT License.