A Chrome extension that provides a Raycast-style command palette for instantly searching and switching between open browser tabs across all windows.
- Instant Tab Search - Fuzzy search across all open tabs by title or URL
- Cross-Window Support - Find and switch to tabs in any Chrome window
- Keyboard-First Navigation - Full keyboard control for power users
- Tab Management - Close tabs directly from the palette without switching to them
- Smart Sorting - Tabs sorted by last accessed; search results sorted by relevance
- Minimal Design - Clean, dark interface inspired by Raycast
- Clone or download this repository
- Open Chrome and navigate to
chrome://extensions/ - Enable Developer mode (toggle in top right)
- Click Load unpacked and select the project directory
- Press
Cmd+E(Mac) orCtrl+E(Windows/Linux) to open Tab Portal
| Shortcut | Action |
|---|---|
Cmd/Ctrl+E |
Open Tab Portal |
↑ / ↓ |
Navigate tabs |
Ctrl+K / Ctrl+J |
Navigate up/down (vim-style) |
Enter |
Switch to selected tab |
Ctrl+Delete or Ctrl+Backspace |
Close selected tab |
Esc |
Close palette |
Tab Portal injects a modal overlay into the current page when triggered. On restricted pages (like chrome:// URLs or the Chrome Web Store), it falls back to opening a popup window.
The search algorithm matches characters in sequence (not necessarily adjacent), with scoring bonuses for:
- Consecutive character matches
- Matches at word boundaries (start of words, after
-,_,.,/) - Shorter strings (prefers more precise matches)
- Default view: Tabs sorted by last accessed time (most recent first)
- Search results: Tabs sorted by fuzzy match score (best matches first)
tabportal/
├── manifest.json # Extension configuration
├── background.js # Service worker for shortcuts and tab queries
├── content.js # Injected modal UI
├── content.css # Modal styles
├── popup.html # Fallback popup for restricted pages
├── popup.js # Popup logic
└── icons/ # Extension icons
tabs- Query and manage browser tabsscripting- Inject content scripts<all_urls>- Inject into any webpage (required for the overlay)
- Chrome (Manifest V3)
- Edge (Chromium-based)
MIT