Ctrl+Tab, reimagined. Switch between browser tabs the way you switch between apps — with visual previews and most-recently-used ordering.
Website · Download · Setup Guide
- Visual tab previews — See thumbnails, favicons, and titles as you cycle through tabs
- Most recently used order — Tabs ordered by recency, not position. One Ctrl+Tab instantly jumps to your last tab
- Copy URL shortcut — Press Cmd+Shift+C to copy the current tab's URL to your clipboard with a confirmation toast
- Customizable shortcuts — Remap both the tab switcher and copy URL shortcuts to any key combination
- Native performance — A lightweight macOS companion app intercepts shortcuts at the system level
- Multi-browser support — Chrome, Brave, Edge, Arc, Vivaldi, Opera, and any Chromium-based browser
- Auto-updates — The native app updates itself automatically via Sparkle
Hold Ctrl and press Tab to bring up the visual switcher. Keep holding Ctrl and press Tab repeatedly to cycle through your tabs. Release Ctrl to switch to the selected tab.
Press Cmd+Shift+C to instantly copy the active tab's URL to your clipboard.
Works exactly like macOS app switching (Cmd+Tab), but for your browser tabs.
Tab Switcher requires two components: a browser extension and a native macOS app.
- Download or clone this repository
- Open Chrome and go to
chrome://extensions - Enable Developer mode (toggle in top right)
- Click Load unpacked and select this folder
- Note the Extension ID shown (you'll need this later)
Download the macOS app from tabswitcher.app.
- Open the DMG and drag Tab Switcher to Applications
- Open Tab Switcher from Applications
- Grant Accessibility permission when prompted
- Click Enable for your browser
- Enter the Extension ID from step 1.5 and click Save
If not prompted automatically:
- Open System Settings > Privacy & Security > Accessibility
- Enable the toggle next to Tab Switcher
| Shortcut | Action |
|---|---|
| Ctrl+Tab | Open switcher, cycle forward |
| Ctrl+Shift+Tab | Cycle backward |
| Cmd+Shift+C | Copy current tab URL |
| Alt+W | Quick switch to last tab (no UI) |
All shortcuts can be customized in the app's setup window.
- macOS 14.0 or later
- Any Chromium-based browser (Chrome, Brave, Edge, Arc, Vivaldi, Opera, etc.)
- Accessibility permissions for the native app
Tab Switcher operates entirely locally. No data is collected, stored, or transmitted. See our Privacy Policy.
The extension files are in the root directory. Load unpacked in Chrome.
cd native-host
swift build -c releaseThe built binary will be at native-host/.build/release/tab-switcher. To create a full app bundle with the Sparkle framework embedded:
cd native-host
./build.shThe app bundle will be at dist/Tab Switcher.app. Code signing and notarization require a valid Apple Developer ID certificate and are optional for local development:
./build.sh --sign # build + code sign
./build.sh --sign --notarize # build + sign + notarize├── manifest.json # Chrome extension manifest
├── mainsw.js # Extension service worker
├── popup.html/js # Extension popup UI
├── icon*.png # Extension icons
├── native-host/
│ ├── Package.swift # Swift package definition
│ ├── Sources/
│ │ └── tab-switcher/
│ │ └── main.swift # Native macOS app
│ ├── build.sh # Build + sign + notarize script
│ ├── install.sh # Install native messaging host
│ └── uninstall.sh # Uninstall native messaging host
└── docs/ # Website (GitHub Pages)
├── index.html
├── setup.html
└── privacy.html
Extension shows "Not connected":
- Make sure the Tab Switcher app is running
- Check that you've granted Accessibility permissions
- Verify the Extension ID was entered correctly
Ctrl+Tab doesn't work:
- Verify Accessibility permissions are enabled
- Make sure the browser window is focused
For more help, visit the Setup Guide.
MIT License — see LICENSE