Customizable keyboard shortcuts for navigating tabs in Chrome and Edge. Local-only, no tracking.
See the codeOpen-source tab navigation with customizable keyboard shortcuts.
A small Manifest V3 extension with these defaults:
| Action | macOS | Windows / Linux |
|---|---|---|
| Previous tab | Command + Shift + Up | Ctrl + Shift + Up |
| Next tab | Command + Shift + Down | Ctrl + Shift + Down |
Tab navigation wraps around and stays within the current window, including pinned tabs. First-tab and last-tab commands are also available; assign their keys in browser settings.
chrome://extensions; in Edge open edge://extensions.TabHop folder next to this README (the folder containing manifest.json).Install separately in each browser. Keep the folder on disk. After editing its files, click Reload on the extension card.
Open chrome://extensions/shortcuts or edge://extensions/shortcuts. Find TabHop, then edit a command’s keys. Keep its scope In Chrome / In Microsoft Edge, where available.
If a default is unassigned, another extension may already own it. Remove that conflicting assignment and assign it to TabHop. If the shortcut editor will not accept the arrow combination, clear the other extension’s conflict and reinstall this extension to reapply its manifest defaults.
This adds alternate tab-navigation shortcuts; existing browser shortcuts still work. An extension cannot freely rewrite all built-in browser bindings. Some browser and operating-system shortcuts have priority, and assigned keys still require a real keyboard check on your machine. These combinations can replace their usual text-selection behavior while the browser is focused.
The extension uses browser commands instead of injecting page key listeners. No website access, browsing-history permission, external libraries, analytics, or network requests are used. Private windows require enabling the extension’s incognito / InPrivate access separately.
Run node --test tests/background.test.cjs from this directory. Tests exercise navigation and command-queue behavior with a mocked browser API; they do not validate macOS keyboard dispatch or installation in Chrome / Edge.
See store/SUBMISSION.md for upload files and remaining publisher steps. The installable ZIP is dist/TabHop-1.0.0.zip. Privacy and support contact: jackwalkerlabs@gmail.com.
Rebuild the ZIP with python3 scripts/package.py. No external packages are needed for packaging or unit tests. To regenerate visual assets, install the development-only sharp and playwright packages, then run node scripts/icons.cjs and node scripts/render-and-check.cjs (macOS with Edge installed by default). BROWSER_EXECUTABLE can select a compatible Chromium executable. These dependencies are not shipped in the extension. Browser validation creates an isolated temporary profile.
Navigation unit tests and an isolated Edge popup/command-registration check pass. The automated Chrome loading attempt was inconclusive, and synthetic headless key presses do not verify physical keyboard routing. Windows/Linux have not been tested. See validation details.
See CONTRIBUTING.md for development and pull-request guidance. Licensed under the MIT License. Security reports: SECURITY.md.
Privacy policy: https://tabhop.jackwalkerlabs.workers.dev/privacy
The privacy page is served as static assets on Cloudflare Workers. To redeploy, authenticate with wrangler login and run wrangler deploy from the repository root. Only store/site is uploaded as website content. Credentials are never committed.
2 commits
JavaScript
51.5%
HTML
35.5%
Python
8.1%
CSS
4.9%
Customizable keyboard shortcuts for navigating tabs in Chrome and Edge. Local-only, no tracking.
See the codeOpen-source tab navigation with customizable keyboard shortcuts.
A small Manifest V3 extension with these defaults:
| Action | macOS | Windows / Linux |
|---|---|---|
| Previous tab | Command + Shift + Up | Ctrl + Shift + Up |
| Next tab | Command + Shift + Down | Ctrl + Shift + Down |
Tab navigation wraps around and stays within the current window, including pinned tabs. First-tab and last-tab commands are also available; assign their keys in browser settings.
chrome://extensions; in Edge open edge://extensions.TabHop folder next to this README (the folder containing manifest.json).Install separately in each browser. Keep the folder on disk. After editing its files, click Reload on the extension card.
Open chrome://extensions/shortcuts or edge://extensions/shortcuts. Find TabHop, then edit a command’s keys. Keep its scope In Chrome / In Microsoft Edge, where available.
If a default is unassigned, another extension may already own it. Remove that conflicting assignment and assign it to TabHop. If the shortcut editor will not accept the arrow combination, clear the other extension’s conflict and reinstall this extension to reapply its manifest defaults.
This adds alternate tab-navigation shortcuts; existing browser shortcuts still work. An extension cannot freely rewrite all built-in browser bindings. Some browser and operating-system shortcuts have priority, and assigned keys still require a real keyboard check on your machine. These combinations can replace their usual text-selection behavior while the browser is focused.
The extension uses browser commands instead of injecting page key listeners. No website access, browsing-history permission, external libraries, analytics, or network requests are used. Private windows require enabling the extension’s incognito / InPrivate access separately.
Run node --test tests/background.test.cjs from this directory. Tests exercise navigation and command-queue behavior with a mocked browser API; they do not validate macOS keyboard dispatch or installation in Chrome / Edge.
See store/SUBMISSION.md for upload files and remaining publisher steps. The installable ZIP is dist/TabHop-1.0.0.zip. Privacy and support contact: jackwalkerlabs@gmail.com.
Rebuild the ZIP with python3 scripts/package.py. No external packages are needed for packaging or unit tests. To regenerate visual assets, install the development-only sharp and playwright packages, then run node scripts/icons.cjs and node scripts/render-and-check.cjs (macOS with Edge installed by default). BROWSER_EXECUTABLE can select a compatible Chromium executable. These dependencies are not shipped in the extension. Browser validation creates an isolated temporary profile.
Navigation unit tests and an isolated Edge popup/command-registration check pass. The automated Chrome loading attempt was inconclusive, and synthetic headless key presses do not verify physical keyboard routing. Windows/Linux have not been tested. See validation details.
See CONTRIBUTING.md for development and pull-request guidance. Licensed under the MIT License. Security reports: SECURITY.md.
Privacy policy: https://tabhop.jackwalkerlabs.workers.dev/privacy
The privacy page is served as static assets on Cloudflare Workers. To redeploy, authenticate with wrangler login and run wrangler deploy from the repository root. Only store/site is uploaded as website content. Credentials are never committed.
2 commits
JavaScript
51.5%
HTML
35.5%
Python
8.1%
CSS
4.9%