Manage all your browser tabs in one place
TabDog is an open-source Chrome extension that helps you manage tabs efficiently. Search, group by domain, save workspaces, browse history, and sync across devices — all from a single popup.
- Quick Search — Find any tab instantly by title, URL, or domain
- Domain Grouping — Automatically group tabs by website domain
- Smart Sorting — Sort tabs by last accessed time
- Recently Closed — Quickly reopen tabs closed within the last 30 minutes
- Tab Actions — Close individual tabs or all tabs in a domain group
- Save Tab Sets — Save your current tabs as a named workspace
- Custom URLs — Add extra URLs when creating a workspace
- Color Labels — Choose from 9 color options to organize workspaces
- Restore Modes — Add tabs to current window or replace all tabs
- Cloud Sync — Workspaces sync across devices when signed in
- Browse History — View browsing history from the last 7 days
- Search — Filter history by keyword
- Date Grouping — Entries grouped by Today, Yesterday, and older dates
- Google Sign-in — Sign in with Google for cloud sync
- Dark / Light Mode — Toggle theme or match system preference
- Keyboard Navigation — Navigate and manage tabs without touching your mouse
- Download or clone this repository
- Open
chrome://extensions/in Chrome (or your Chromium-based browser) - Enable "Developer mode" in the top right
- Click "Load unpacked" and select the
Extension/folder
TabDog works with any Chromium-based browser
Click the TabDog icon in your browser toolbar, or use the keyboard shortcut:
| Platform | Shortcut |
|---|---|
| macOS | Cmd + Shift + E |
| Windows/Linux | Ctrl + Shift + E |
| Key | Action |
|---|---|
↑ / ↓ |
Navigate through the list |
Enter |
Activate selected tab or expand group |
C |
Close selected tab |
Escape |
Return to search field |
Cmd/Ctrl + F |
Focus search field |
- Search: Type to filter tabs by title, URL, or domain
- Group by Domain: Click the grid icon to group/ungroup tabs by website
- Sort Order: Click the sort icon to toggle between newest and oldest first
- Close Tab: Hover over a tab and click the X button, or select it and press
C - Close All in Domain: Hover over a domain group header and click "Close All"
- Recently Closed: Scroll down on the Tabs page to see and reopen recently closed tabs
We welcome contributions from the community!
- Fork the repository
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/tabdog.git cd tabdog - Create a new branch for your feature or fix:
git checkout -b feature/your-feature-name
- Navigate to
chrome://extensions/in Chrome - Enable "Developer mode"
- Click "Load unpacked" and select the
Extension/folder - Make changes and click the refresh icon on the extension card to reload
Cloud sync features require a Firebase project. See Firebase Setup Guide for detailed instructions.
- Copy
Extension/config/firebase-config.example.jstofirebase-config.js - Fill in your Firebase project credentials
- Set up Firestore security rules from
Extension/config/firestore.rules
Extension/
├── manifest.json # Extension configuration (Manifest V3)
├── background.js # Service worker (sync, tab tracking)
├── popup/
│ ├── popup.html # Popup UI structure
│ ├── popup.css # Styles (light/dark mode)
│ └── popup.js # UI logic and interactions
├── services/
│ ├── auth.js # Google OAuth authentication
│ ├── firestore.js # Firestore REST API helpers
│ ├── sync.js # Cross-device tab sync
│ ├── device.js # Device registration
│ ├── workspace.js # Workspaces CRUD
│ ├── share.js # Tab sharing
│ ├── session-history.js # Session snapshots
│ └── tab-history.js # Tab history tracking
├── config/
│ ├── firebase-config.js # Firebase credentials (gitignored)
│ ├── firebase-config.example.js
│ └── firestore.rules # Firestore security rules
└── icons/ # Extension icons
- Make your changes with clear, descriptive commits
- Test your changes thoroughly
- Push to your fork:
git push origin feature/your-feature-name
- Open a Pull Request against the
mainbranch
Found a bug or have a feature request? Open an issue with:
- Clear description of the problem or suggestion
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Your browser and version
TabDog uses Firebase for authentication and cloud sync. When signed in:
- Your tab data, workspaces, and sessions are stored in Google Firestore
- Authentication is handled via Google OAuth through Chrome's identity API
- No third-party tracking or analytics
When not signed in, all data stays local in your browser.
See our Privacy Policy for more details.
MIT
Built for power users who refuse to let their browser slow them down.