Shortkeys Shortkeys

Documentation

Learn how to install, configure, and master the Shortkeys browser extension to navigate the web at the speed of thought.

1. Getting Started

First, install the Shortkeys extension for your preferred browser:

Opening the Settings Page

Right-click the Shortkeys icon in your browser toolbar and select Options, or open the extension manager and click Shortkeys. On Chrome, you can navigate directly to:
chrome-extension://logpjaacgmcbpdkdchjiaagddngobkck/options.html

Creating your first shortcut

  1. Click the Add Shortcut button.
  2. Choose an action from the dropdown menu (e.g., "Scroll down").
  3. Click the Record button in the shortcut field.
  4. Press the physical keys on your keyboard you want to use (e.g., G). You can record multi-key sequences like G then G by simply pressing them in order.
  5. Click Save. Your shortcut is instantly active across all your open tabs!

Important: Refresh your tabs after installing

Shortkeys can only run on tabs that were opened (or refreshed) after the extension was installed. If your shortcuts aren't working, refresh the page first. This applies after initial install and after extension updates. Chrome doesn't allow extensions to inject into pages that were already loaded before installation.

2. Actions Reference

Shortkeys includes 12 categories of built-in actions you can assign to any key combo. The value shown is what appears in the action dropdown.

Scrolling

Note: You can enable "Smooth scrolling" in the global settings for a more fluid experience with these actions.

ActionDescription
topScroll to the top of the page
bottomScroll to the bottom of the page
scrolldownScroll down slightly
scrolldownmoreScroll down a large amount
pagedownScroll down one full page
scrollupScroll up slightly
scrollupmoreScroll up a large amount
pageupScroll up one full page
scrollrightScroll right slightly
scrollrightmoreScroll right a large amount
scrollleftScroll left slightly
scrollleftmoreScroll left a large amount
ActionDescription
backGo back in history
forwardGo forward in history
reloadReload the page
hardreloadHard reload (bypasses cache)
copyurlCopy URL to clipboard
copypagetitleCopy page title to clipboard
copytitleurlCopy title and URL to clipboard
copytitleurlmarkdownCopy as markdown link [title](url)
openclipboardurlOpen URL from clipboard in current tab
openclipboardurlnewtabOpen URL from clipboard in new tab
openurlNavigate to a specific URL
opensettingsOpen Shortkeys settings page
openextensionsOpen browser extensions page
openshortcutsOpen Chrome keyboard shortcuts page
urlupGo up one directory in URL path
urlrootGo to root URL
urlincIncrement URL path or hash
urldecDecrement URL path or hash
editurlEdit current URL in a dialog
nextpageGo to next page (pagination)
prevpageGo to previous page (pagination)

Bookmarks

ActionDescription
openbookmarkOpen bookmark (current tab)
openbookmarknewtabOpen bookmark in new tab
openbookmarkbackgroundtabOpen bookmark in background tab
openbookmarkbackgroundtabandcloseOpen in background tab and close current tab

Note: Use the "togglebookmark" action (in Miscellaneous) to add/remove the current page from bookmarks.

Tabs

Windows

ActionDescription
gototabJump to a tab by URL
gototabbytitleJump to a tab by title
gototabbyindexJump to a tab by index (1-based)
newtabOpen a new tab
newtabrightOpen a new tab to the right of current
closetabClose current tab
onlytabClose all other tabs
closelefttabsClose all tabs to the left
closerighttabsClose all tabs to the right
closeduplicatetabsClose duplicate tabs
clonetabDuplicate current tab
movetabtonewwindowMove tab to a new window
reopentabReopen last closed tab
nexttabNavigate to next tab
prevtabNavigate to previous tab
firsttabNavigate to first tab
lasttabNavigate to last tab
lastusedtabSwitch to last used tab
audibletabJump to the tab playing audio/video
togglepinPin or unpin current tab
togglemuteMute or unmute current tab
movetableftMove tab one position to the left
movetabrightMove tab one position to the right
movetabtofirstMove tab to first position
movetabtolastMove tab to last position
sorttabsSort all tabs alphabetically by title
discardtabSuspend tab to free memory
grouptabAdd tab to a new group (Chrome only)
ungrouptabRemove tab from its group (Chrome only)
ActionDescription
newwindowOpen new window
newprivatewindowOpen new incognito/private window
closewindowClose current window
fullscreenToggle browser fullscreen

Zooming

ActionDescription
zoominZoom in
zoomoutZoom out
zoomresetReset zoom to 100%

Miscellaneous

ActionDescription
javascriptRun custom JavaScript
macroRun a macro (chain of actions)
showlatestdownloadShow latest download in folder
cleardownloadsClear download history
viewsourceView page source
disableDo nothing (useful to block website/browser defaults)
triggerTrigger another Shortkeys shortcut
inserttextInsert predefined text into focused input field
printPrint the page
buttonnexttabClick a button and switch to the next tab
openappOpen a progressive web app
togglebookmarkAdd or remove current page from bookmarks
openincognitoOpen current URL in incognito window
capturescreenshotTake screenshot of visible area
capturefullsizescreenshotTake full-page screenshot (max 16,384px)
forcecapturefullsizescreenshotForce capture full-page screenshot (no size limit)
focusinputFocus first text input on page

Video Controls

Controls the largest playing HTML5 video on the current page.

ActionDescription
videoplaypauseToggle video playback (play/pause)
videomuteToggle video audio (mute/unmute)
videofullscreenToggle video fullscreen mode
videospeedupSpeed up video by 0.25x
videospeeddownSlow down video by 0.25x
videospeedresetReset video speed to 1x
videoskipforwardSkip forward 10 seconds
videoskipbackSkip back 10 seconds

Search Providers

Searches the currently highlighted text on the page using the specified provider.

ActionDescription
searchgoogleSearch selected text on Google
searchyoutubeSearch selected text on YouTube
searchwikipediaSearch selected text on Wikipedia
searchgithubSearch selected text on GitHub

Page Tools

ActionDescription
showcheatsheetShow an overlay of all active shortcuts
toggledarkmodeToggle an inverted color dark mode on the current site
ActionDescription
linkhintsDisplay letter hints over all links. Type the letters to click.
linkhintsnewDisplay letter hints over links. Clicked links open in new tab.

Page Scripts

These are 24 pre-built JavaScript snippets you can assign to any shortcut.

Dark mode

Reader mode

Hide sticky headers & banners

Increase text size

Highlight all links

Make page editable

Copy all links on page

Word count

Extract email addresses

Export table to CSV

Show QR code for this page

Remove all images

Show image sizes

Show page outline

Reading progress bar

Show layout grid

Clear site storage

Show performance metrics

Log all events

Pretty print JSON

Picture-in-Picture

Set video speed (2x)

List all image URLs

Show audio volume

3. Shortcut Packs

Shortcut packs are curated collections of shortcuts you can install with a single click. They let you adopt popular keyboard navigation styles without configuring them manually.

  • Available packs: Vim, Emacs, YouTube, Productivity, Developer, Reading, Tab Manager, Keyboard Power, and Media Control.
  • How to install: Open Shortkeys Settings, click Browse Packs, or visit shortkeys.app/packs directly.
  • Packs are imported as Groups. Once installed, you can freely edit, reassign keys, or delete shortcuts you don't need.

4. Groups

Organize your shortcuts into folders. Ungrouped shortcuts live in the My Shortcuts default group.

  • Creating: Click the icon next to "Add Group" in the header.
  • Renaming: Click directly on the group name to edit it.
  • Collapse/Expand: Click the chevron on the group header to hide shortcuts.
  • Enable/Disable: Use the toggle switch on the group header to disable all shortcuts inside it at once.
  • Moving: Drag and drop the handle icon on a shortcut to move it between groups.
  • Delete: Click the trash icon on the group header. Warning: This deletes all shortcuts inside the group.
  • Sharing: Click the share icon on the group header to export just that group.

5. Macros

Macros allow you to chain multiple actions into a single keyboard shortcut.

  • How to create: Add a new shortcut, and choose the Run a macro action.
  • Click "Add Step" to add actions to the chain.
  • You can optionally add Delays (in milliseconds) between steps for precise timing, which is useful when waiting for a page navigation to complete.
  • Example use cases:
    • Open a specific tab and immediately run a JavaScript snippet.
    • Scroll down, wait 500ms, and take a screenshot.
    • Duplicate current tab and move it to a new window.

6. Site Filtering

Control exactly where your shortcuts are active. Open the advanced settings for a shortcut to configure filtering. There are three modes:

  • All sites: The shortcut works everywhere.
  • All sites except... (Blocklist): Works everywhere EXCEPT the listed sites. Useful if a shortcut conflicts with a specific website's native hotkeys (e.g., block Gmail or GitHub).
  • Only on specific sites (Allowlist): Shortcut ONLY works on the listed sites.

URL Patterns: Enter one pattern per line. Supports wildcards (*). Examples:
*.google.com/*
github.com/*/pulls

7. Custom JavaScript

Run your own code via keyboard shortcuts for infinite possibilities.

  • Choose Run JavaScript as the action.
  • Write code in the built-in CodeMirror editor (features syntax highlighting and One Dark theme).
  • Code runs directly in the page context (MAIN world), meaning it has full access to the page's DOM and window object.
  • Example: document.body.style.background = 'red';
  • If you need inspiration, check out the built-in "Page Scripts" and modify them.

Content Security Policy (CSP) Note

On sites with strict CSP (like Twitter or GitHub), inline script execution may be blocked by the browser. If your script fails silently, try testing it with the "Test" button which bypasses CSP using the debugger API.

8. Command Palette

Don't want to memorize all your shortcuts? The command palette lets you search and trigger them.

  • Click the Shortkeys extension icon in your browser toolbar to open the palette.
  • Tip: Assign a global hotkey to open the extension popup via chrome://extensions/shortcuts for instant access.
  • It shows a searchable list of all your active shortcuts, their labels, and keys.
  • Use the arrow keys to navigate and press Enter to execute.
  • Use the Quick-add button to create a new shortcut directly from the palette.

9. Cloud Sync

Your shortcuts stay with you, automatically.

  • Shortkeys utilizes chrome.storage.sync to sync your configuration to your Google Account.
  • No extra account or setup is needed. It works across all Chrome instances where you are signed in.
  • Fallback: Chrome limits sync storage to 100KB. If your data (like large custom JavaScript actions) exceeds this limit, Shortkeys automatically and transparently falls back to local storage so you never lose data.
  • On Firefox, it utilizes Firefox Sync.

10. Sharing

Easily back up or share your configurations.

  • Export: Go to Settings → Export tab. You can copy the raw JSON configuration.
  • Share Links: Click "Generate Share Link" to create a unique shortkeys.app/share#... URL. Anyone with the extension installed can click this link to instantly preview and import your shortcuts.
  • Group Sharing: You can export or share individual groups by clicking the share icon on the group header.
  • Import: Paste valid JSON into the Import tab to restore a backup.

11. Browser Shortcuts (Global)

By design, Chrome does not allow extensions to inject scripts into restricted pages like chrome:// pages, the New Tab page, or the Chrome Web Store. Standard shortcuts will not work there.

The Solution: Shortkeys registers 85 named commands with the browser. Each one appears as an item on Chrome's built-in keyboard shortcuts page, where you can assign a key combo directly.

  • Navigate to chrome://extensions/shortcuts in your URL bar.
  • Find the Shortkeys section.
  • You'll see named commands like "TABS: New tab", "TABS: Close tab", "SCROLLING: Scroll down", "VIDEO: Play/pause", etc.
  • Click any command's shortcut field and press your desired key combo. Chrome assigns it immediately.
  • These shortcuts are handled natively by Chrome and work on any page, including chrome:// pages and the Chrome Web Store.

Limitations: Browser shortcuts require at least one modifier key (Ctrl, Alt, or Cmd), so single-key or vim-style shortcuts (like j/k) are not supported. You also can't use advanced Shortkeys features like site filtering, macros, or custom JavaScript with browser shortcuts.

12. Conflict Detection

Shortkeys prevents you from accidentally breaking your workflow.

  • Platform-aware: It knows if you are on Mac (using Cmd) or Windows/Linux (using Ctrl).
  • If you assign a combo like Ctrl + T, Shortkeys will warn you that it conflicts with the browser's default "New Tab" action.
  • Duplicate shortcuts (the same key combo assigned twice) are flagged.
  • Warnings appear in the stats bar at the top of the settings page and inline on the shortcut card.
  • Note: You can still save and use conflicting shortcuts; the warning is purely informational.

13. Userscript Import

Bring powerful scripts directly into Shortkeys without needing a separate manager like Tampermonkey.

  • Choose Import Userscript in the Add menu.
  • Paste a URL from Greasyfork or OpenUserJS.
  • Shortkeys will fetch the script, parse its metadata, and bind it to your chosen keyboard shortcut.
  • Unlike standard userscripts that run automatically on page load, Shortkeys runs them only when you press the shortcut.

14. FAQ / Troubleshooting

Shortcuts don't work on chrome:// pages or the New Tab page

Chrome strictly prevents extensions from running on its internal pages and the Chrome Web Store. To use actions like "Close tab" on these pages, use Browser Shortcuts instead.

Shortcuts stopped working after an update

When the extension updates in the background, existing tabs might lose the connection to the content script. Simply refresh the open tabs to restore functionality.

Custom JavaScript doesn't work on some sites

Sites with strict Content Security Policies (CSP) block injected scripts. Try using the debugger-based "Test" button in the editor, or map a built-in action via Browser Shortcuts which bypasses page-level CSP.

My shortcuts conflict with website shortcuts (e.g. Gmail/GitHub)

Use the Site Filtering feature to add the domain to your Blocklist, so Shortkeys won't override the site's native hotkeys.

Shortcuts don't trigger when I'm typing in text inputs

By default, Shortkeys disabled shortcuts while you are focused in an <input>, <textarea>, or contenteditable element to avoid typing interference. You can check the "Active in text fields" box on any individual shortcut to override this.

How do I use multi-key sequences like vim?

Click the Record button, press the first key (e.g., G), release it, and press the second key (e.g., I). The recorder captures the sequence perfectly as g i.

How do I back up my shortcuts?

Use the Export tab in settings to copy your JSON config. Cloud Sync also automatically backs them up to your Google account.

15. Browser Compatibility

Shortkeys is built to run on modern web browsers.

  • Chrome: Full support (Manifest V3). All features available.
  • Firefox: Full support (Manifest V2). Built natively for Firefox. Note that some Chrome-specific APIs are unavailable (tab grouping, debugger API testing, showing specific downloads).
  • Edge: Full support. Install directly from the Chrome Web Store.
  • Opera: Full support. Install directly from Opera Add-ons.