Tab Manager Pro is a free, open-source Manifest V3 browser extension and tab manager for Chrome, Edge, Brave, and Firefox. It groups tabs by domain, closes duplicate tabs, saves workspace sessions, snoozes distracting tabs, and auto-hibernates inactive tabs to reduce memory usage. Everything runs locally inside your browser: no accounts, analytics, or remote requests.
If you are searching for a Chrome tab manager, a duplicate tab closer, a tab session manager, or a lightweight memory saver extension, Tab Manager Pro covers those workflows in one popup.
Choose your path:
| I want to… | Start here |
|---|---|
| Install and use the extension | Quick start · Installation · FAQ |
| Understand how it works | Architecture · Project structure |
| Change or test the code | Development · Manual test checklist · Contributing |
| Product | Free, open-source tab manager browser extension |
| Browsers | Chrome, Edge, Brave (service worker), and Firefox 142+ (event page) |
| Core jobs | Group tabs, close duplicate tabs, save tab sessions, snooze tabs, hibernate idle tabs |
| Storage | Synced settings; local workspaces, undo history, and snooze queue |
| Permissions | tabs, tabGroups, storage, alarms, contextMenus; no host permissions |
| Network | Fully offline; no telemetry, accounts, analytics, or remote assets |
| License | MIT |
Follow Installation. Chrome, Edge, and Brave load the folder as an unpacked extension; Firefox loads manifest.json as a temporary add-on.
Click the extensions puzzle piece, pin Tab Manager Pro, then open it. The popup shows every open tab in the current window or across all windows, depending on your scope setting.
Click Clean Duplicates. The extension keeps the tab selected by your preservation rule, closes the rest, and records the batch. Click Undo in the popup to restore up to 30 cleanup batches.
Open Settings > Workspaces, name the session, and click Save. The workspace stores every eligible tab so you can close the window and restore the set later.
In Settings > Automation & Cleanup, choose a duplicate matching rule, enable the smart cleanup badge, set an idle threshold for auto-hibernation, and optionally enable workspace auto-backup.
Too many open tabs slow down your browser, hide the tab you actually need, and consume memory. Tab Manager Pro gives you one place to group tabs, remove duplicate tabs safely (with undo), save a workspace before closing a project, snooze a tab until later, and put idle tabs to sleep through the browser’s native discard API.
The extension is built with vanilla JavaScript and no runtime build step. Settings sync through your browser profile, while workspaces and undo history stay in local storage.
| Task | Manual browser tabs | Tab Manager Pro |
|---|---|---|
| Group similar tabs | Drag tabs into groups one by one | One click by domain, subdomain, or custom rules |
| Find duplicate tabs | Inspect every URL manually | Configurable matching, preview count, and toolbar badge |
| Undo a cleanup | Reopen closed tabs from history | Up to 30 undo batches |
| Save a project | Bookmarks or scattered notes | Named workspace with JSON export and import |
| Defer a tab | Leave it open | Snooze with automatic restore |
| Free memory | Close tabs and lose state | Discard idle tabs that reload on click |
| Protect important tabs | Remember not to touch them | Pinned, muted, audible, and domain exclusions |
| Popup: light mode | Popup: dark mode |
|---|---|
![]() |
![]() |




github.com => Work.Try it: open the popup and click Group. Change the strategy in Settings > Advanced.
Try it: click Clean Duplicates in the popup, then click Undo to restore the batch.
Try it: click Zen Mode in the popup before a meeting, then restore the workspace afterward.
Try it: Settings > Workspaces, enter a name, and click Save.
Try it: Settings > Automation & Cleanup, enable Auto-Hibernation, and set the idle threshold.
Try it: click the clock icon on any popup row.
| Shortcut | Action |
|---|---|
Ctrl + Shift + G |
Group tabs using the current grouping strategy |
Ctrl + Shift + D |
Close duplicate tabs using the current rules |
Ctrl + Shift + U |
Undo the last duplicate cleanup |
You can remap shortcuts in your browser:
chrome://extensions/shortcutsabout:addons > gear icon > Manage Extension ShortcutsClone the repository:
git clone https://github.com/sandeshPatel06/tab-manager-pro.git
chrome://extensionsedge://extensionstab-manager-pro directory.After changing source files, click the reload icon on the extension card. If the popup reports that it could not load tabs, reload the extension and reopen the popup so the service worker starts again.
Requires Firefox 142 or newer because the manifest targets Manifest V3 with the Firefox event-page fallback.
about:debugging#/runtime/this-firefox.manifest.json inside the project directory.For a permanent install, package the directory and load it through about:addons or publish it on addons.mozilla.org.
Open the settings page from the gear icon in the popup, or right-click the extension icon and choose Options.
Duplicate cleanup, Zen Mode, and the toolbar badge all follow the configured operation scope and exclusion rules.
The extension has no runtime dependencies and no build step. Popup and settings pages are plain HTML and CSS with ES2022 JavaScript loaded as classic scripts.
popup.html + popup.js ──────┐
options.html + options.js ──┴── runtime.sendMessage ──> background.js
├── tabs / tabGroups
├── storage.sync / storage.local
└── alarms / contextMenus
background.js owns the message router, alarms, context menus, storage, tab grouping, duplicate planning, workspaces, snooze, and discard.browserAPI wrapper that prefers the promise-based browser namespace and falls back to chrome.background.scripts and background.service_worker, so Chrome uses a service worker while Firefox runs an event page.| Storage area | Key | Contents |
|---|---|---|
storage.sync |
settings |
Sort order, scope, matching rules, exclusions, automation preferences |
storage.local |
workspaces |
Named session snapshots with tab URLs and titles |
storage.local |
undoStack |
Up to 30 duplicate-cleanup batches |
storage.local |
snoozedTabs |
Pending snooze entries and restore timestamps |
| Path | Purpose |
|---|---|
manifest.json |
Manifest V3 definition, permissions, commands, and dual background declaration |
background.js |
Service worker / event page: messaging, tab operations, storage, alarms |
popup.html, popup.js, styles.css |
Toolbar popup UI and interaction logic |
options.html, options.js, options.css |
Full-page settings dashboard |
icons/ |
Toolbar and store icons |
screenshots/ |
README screenshots captured from the real UI |
scripts/capture-screenshots.mjs |
Playwright script that regenerates the screenshots |
package.json |
Dev-only tooling; the extension itself has no runtime dependencies |
LICENSE |
MIT license text |
chrome://extensions and enable Developer mode.Debugging tips:
chrome.storage.sync.clear() and chrome.storage.local.clear() in the service worker console to reset settings and saved sessions.about:debugging.node --check background.js
node --check popup.js
node --check options.js
node --check scripts/capture-screenshots.mjs
The screenshots in this README are generated from the actual extension UI with Playwright:
npm install
npx playwright install chromium
npm run screenshots
The script launches Chromium with the unpacked extension, opens demo tabs, seeds settings and workspaces into a temporary browser profile, captures the popup and each settings page, and deletes the temporary profile afterward. It does not touch your daily browser profile. Set HEADED=1 to watch the capture:
HEADED=1 npm run screenshots
Output files are written to screenshots/:
| File | View |
|---|---|
popup.png |
Popup in light mode |
popup-dark.png |
Popup in dark mode |
options.png |
General settings |
automation.png |
Automation and memory saver |
workspaces.png |
Workspace manager |
advanced.png |
Advanced grouping and exclusions |
| Area | What to verify |
|---|---|
| Grouping | Group by domain, subdomain, and custom rule; collapse and expand from Settings |
| Duplicates | Each matching mode, each preservation rule, and exclusion rules leave protected tabs open |
| Undo | Cleanup batches restore tab URLs, pinned state, and reach the 30-batch limit correctly |
| Workspaces | Save from current and all-window scope; restore, delete, export, and import JSON |
| Snooze | Snoozed tab closes immediately and reopens when the alarm fires; queue survives restart |
| Auto-hibernation | Idle tabs discard, remain in the tab bar, and reload on selection; pinned and audible tabs stay active |
| Scope | Current-window and all-window actions touch only the expected tabs |
| Firefox | Temporary add-on loads, promise-based APIs resolve, and the background event page stays alive |
manifest.json and package.json.Create a zip containing only runtime files:
zip -r tab-manager-pro-2.1.0.zip manifest.json background.js popup.html popup.js options.html options.js styles.css icons LICENSE README.md
Do not include node_modules/, .git/, or local browser profiles in the package. The screenshot script is development tooling and is not required at runtime.
| Permission | Why it is needed |
|---|---|
tabs |
Query, move, group, discard, snooze, and close tabs. |
tabGroups |
Create tab groups, set titles and colors, and collapse or expand them. |
storage |
Sync settings and store workspaces, undo history, and snoozed tabs locally. |
alarms |
Schedule snooze reminders, auto-hibernation scans, cleanup badge scans, and optional backups. |
contextMenus |
Add the right-click duplicate cleanup action. |
Tab Manager Pro requests no host permissions and does not read page content.
Open the Tab Manager Pro popup and click Clean Duplicates, or right-click a page and choose Close all duplicates of this tab. Choose a matching rule and preservation rule in Settings first. Every cleanup can be undone for up to 30 batches.
Yes. The manifest includes a Firefox event-page fallback and the code uses the promise-based WebExtension API. Firefox 142 or newer is required by the included manifest settings.
Yes. Styles, icons, and scripts ship with the extension, and the interface uses your system font. There are no analytics, remote fonts, CDN assets, or network requests.
Enable Auto-Hibernation under Automation & Cleanup and set an idle threshold. Inactive tabs are discarded using the browser’s native discard API; they remain visible in the tab bar and reload when selected.
Settings use synchronized browser storage. Workspaces, snoozed tabs, and undo history use local storage. Use Export All on the Workspaces page to create a JSON backup you can import elsewhere.
Reload the extension from chrome://extensions (or about:debugging in Firefox) and reopen the popup. This restarts the background service worker. If it persists, inspect the service worker console for errors before opening an issue.
Yes. Tab Manager Pro is released under the MIT License.
A tab manager extension is a browser add-on that helps you organize, search, and clean up open tabs. Tab Manager Pro combines tab grouping, duplicate tab removal, workspace sessions, tab snooze, and memory-saving tab hibernation in a single extension instead of five separate tools.
Yes. Choose a grouping strategy by base domain, subdomain, or custom domain-to-label rules, then click Group in the popup. Tab Manager Pro creates native browser tab groups and can collapse or expand them from the settings page.
Built-in browser tab groups only organize tabs. Tab Manager Pro adds duplicate detection with undo, saved workspace sessions with JSON import/export, tab snooze, idle-tab hibernation, exclusion rules, and a duplicate-count badge while still using native tab groups.
No. Tab Manager Pro requests no host permissions and injects no content scripts. It uses the tabs permission for open-tab metadata such as title and URL, and all data stays in your browser.
Tab Manager Pro does not collect, transmit, sell, or share data. It has no server component, no analytics, and no advertising. All tab data stays inside your browser profile. The only optional network-adjacent behavior is your browser’s own sync service for synchronized settings.
Contributions are welcome.
browserAPI wrapper for cross-browser calls.textContent or DOM APIs rather than string-built HTML.For bug reports, include your browser version, reproduction steps, and any service worker or popup console errors.
MIT License. See LICENSE for the full text.
Copyright (c) 2026 Sandesh Patel.