Repository: https://github.com/stevensouza/tab-manager-chrome-ext
This Chrome extension helps you manage browser tabs with features like search, filtering, sorting, group organization, duplicate detection, pin/mute controls, and age-based visual indicators. Version 1.0 was built from scratch in less than one hour using Claude Codeβdespite having no prior experience with Chrome extension development and no defined requirements at the start. By iterating on ideas in real-time and letting the development process evolve organically, Claude Code helped transform initial concepts into a functional extension. This demonstrates what AI-assisted development can enable: going from zero knowledge to a working product in under 60 minutes.
Important Context: I created this extension as a learning experiment with no prior Chrome extension development experience. It has worked well for my personal use, but I can't speak to the code quality or whether it follows Chrome extension best practices. The good news: the extension only accesses tab metadata (titles, URLs, and group names) and does not read or modify any website content or other browser dataβit cannot change anything you've typed, stored, or browsed. See the Permissions section below for technical details. Use at your own discretion, and feel free to use as-is or modify it however you like.
Created by: Steve Souza using Claude Code (01/26) Status: Experimental learning project
- Features
- Browser Compatibility
- UI Preview
- Installation
- Usage
- Permissions
- File Structure
- Technical Details
- Known Limitations
- Development
- Changelog
- License
- Support
Tested and confirmed working:
- Google Chrome (primary target β Manifest V3)
- Brave β Chromium-based; load via
brave://extensions/, customize keystrokes atbrave://extensions/shortcuts
Should work but unverified. All are Chromium-based and use the same chrome.* extension APIs this extension relies on (tabs, tabGroups, sessions, storage, history, commands):
- Microsoft Edge (load via
edge://extensions/) - Vivaldi
- Opera
- Arc
Not supported:
- Firefox β uses a different extension engine. While Firefox supports Manifest V3 in general, this extension relies on
chrome.tabGroupsandchrome.sessions, which have limited or no parity in Firefox. A Firefox port would require code changes. - Safari β Apple's Safari Web Extensions model is different; this extension would need to be ported.
If you successfully run this in any of the unverified Chromium browsers, an issue or PR confirming would be welcome.
Toggle between current and previous tab:
- Windows/Linux:
Ctrl+Shift+Up - Mac:
ββ§β(Cmd+Shift+Up)
Navigate to older tab (by last accessed):
- Windows/Linux:
Ctrl+Shift+Left - Mac:
ββ§β(Cmd+Shift+Left)
Navigate to newer tab (by last accessed):
- Windows/Linux:
Ctrl+Shift+Right - Mac:
ββ§β(Cmd+Shift+Right)
Go to Quick Pick slot 1 (v2.7, renamed v2.8) β jumps to the tab saved to slot 1, or reopens it by URL if closed:
- Windows/Linux:
Ctrl+Shift+1 - Mac:
ββ§1(Cmd+Shift+1)
Go to Quick Pick slots 2β5 (v2.8) β same behavior, slots 2β5. Unbound by default because Chrome only allows 4 default keystrokes per extension and the budget is full. Assign keys once at chrome://extensions/shortcuts and they work permanently.
Customizable - Change shortcuts at chrome://extensions/shortcuts
- 5 numbered slots holding a URL each. Save via the π button on any tab row, pick slot 1β5.
- Keystroke jumps to the slot. If the tab is open, it activates (and focuses the right window). If the tab is closed, it reopens at the saved URL.
- Picker color states. Empty slots show a green border, slots holding another tab show red, and the slot holding this tab is solid blue with a β β clear it via the explicit Γ.
- Picks chip. A "Picks" filter chip in the top row narrows the open-tab list to just the tabs currently saved to a Quick Pick slot.
- Fully dynamic. Save CNN to slot 1 today, overwrite with GitHub tomorrow β no config files. Silent overwrite, with a toast confirming the action.
- Cross-device sync via
chrome.storage.sync. - Why only slot 1 has a default keystroke? Chrome reserves
Cmd+1βCmd+9for built-in tab switching, and manifests can only ship 4 default keystrokes per extension (3 are used by the navigation shortcuts above). Slot 1 ships with a working default; slots 2β5 need a one-time keystroke binding atchrome://extensions/shortcuts.
- Star any tab - Hover to see β button, click to save site as favorite
- Full-URL matching - Stores exact URL (bookmark-style), not just domain
- Find or open - Unopened favorites appear grayed out at bottom of popup, click to open
- Cross-device sync - Favorites stored in
chrome.storage.sync - Smart visibility - Favorites disappear from bottom section when the site is open
- Always visible - Row of pill buttons below search box
- 6 filter types - Dupes, Audio, Pinned, Faves, Stale, Picks (v2.8)
- Single-select default - Clicking one chip deselects others
- [Any | All] mode toggle - Segmented button to combine multiple filters with AND logic
- Clean results - Recently closed and favorites sections hidden when filtering (Quick Pick section stays visible β it's independent of the chip filter)
- Accordion groups - Click any group header to collapse/expand its tabs
- Chevron indicator - βΌ (expanded) / βΆ (collapsed) on group headers
- Collapse/Expand All - Button on search row to toggle all groups at once
- [Groups | All] toggle - Segmented control to switch between grouped and flat views
- Search clear button - X button inside search box for quick clearing
- State persisted - Collapse state and view mode saved to localStorage
- Real-time search - Filter tabs by title or URL
- Group name search - Search by tab group names
- Search auto-expand - Collapsed groups auto-expand when they contain search matches
- Clear Filters - One-click button to reset all filters, chips, and sorting
- Tab count badge - Shows total tab count in extension icon
- Group organization - Visual display of Chrome's native tab groups with matching colors
- Tab counts - Shows number of tabs in each group
- Active tab indicator - Highlights currently active tab with blue border
- Pin/Unpin tabs - Click π/π button to toggle pin state without switching tabs
- Mute/Unmute tabs - Click π/π/π button to toggle audio without switching tabs
- 10 sort options - Groups (AβZ) + Recent First (default), Browser Tab Order, Title (AβZ, ZβA), URL (AβZ, ZβA), Age (Newest/Oldest), Most/Least Visited
- Smart default - Groups alphabetically, tabs by most recent first within each group
- Groups view - Sorts tabs within each group
- All view - Sorts all tabs together in a flat list with group badges
- Persistent preferences - Remembers your sort choice and view mode across sessions
- Session history - Track last 25 closed tabs with Chrome sessions API
- Group restoration - Tabs restore to their original group if it still exists
- Group badges - Colored badges show which group the tab will restore to
- Inline toggle - Section header with Show/Hide button (no separate controls needed)
- Click to restore - Click any closed tab or restore button (βΆ) to reopen
- Search integration - Search works on closed tabs (filter by title/URL)
- Smart fallback - If original group deleted, tab opens ungrouped
- Always last - Recently closed section appears after all groups and ungrouped tabs
- Individual tab close - Hover over any tab to see close button
- Close entire groups - Hover over group header to close all tabs in group (confirms if >5 tabs)
- Close duplicates - Button appears only when duplicates exist, removes extras keeping one of each URL
- Respects active filters (search, group, duplicate filter)
- Keeps active tab if it's a duplicate, otherwise keeps first tab
- Visual badges - Shows "2Γ", "3Γ", etc. for duplicate URLs
- Smart filtering - Filter to show only tabs with duplicates
- Filter-aware closing - Close duplicates only from current view/filters
- Visit count badges - Shows total visits from browser history (blue badge)
- Most Visited sort - Sort tabs by frequency of visits
- Least Visited sort - Find rarely-used tabs for cleanup
- Smart thresholds - Only shows badges for 10+ visits to reduce clutter
- Favicons - Website icons displayed next to tab names
- Color-coded groups - Matches Chrome's tab group colors (blue, red, yellow, green, pink, purple, cyan, orange, grey)
- Age-based color coding - Tab borders indicate last access time:
- π’ Green: β€ 2 hours (recently accessed)
- π‘ Yellow: β€ 24 hours (accessed hours ago)
- π Orange: β€ 1 week (days old)
- π΄ Red: > 1 week (very old tabs)
- Hover effects - Clean UI with smooth transitions
- Interactive badges - Pin, mute, and close buttons with tactile feedback (scale animations)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Tab Manager 3 groups Β· 12 tabs βΉοΈ β
β β
β [π Search tabs and groups... β] [βΌ] [Groups | All] β
β β
β [Dupes] [Audio] [Pinned] [Faves] [Stale] [Picks] [Any|All] β
β β
β [Sort: Groups AβZ + Recent βΌ] [Clear Filters] [Close Dupes] β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β βΌ π΅ Work (5) [Γ]β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β πππ GitHub - Pull Requests [42] [β] [π1] [Γ] β
β β π§ Gmail - Inbox [2Γ] [89] π [β
] [π] [Γ] β
β β π Google Sheets - Q1 Data [156] [β] [π] [Γ] β
β β π§ Gmail - Inbox [2Γ] [89] [β] [π] [Γ] β
β β π Notion - Projects [β] [π2] [Γ] β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β βΆ π’ Research (4) [Γ]β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β (collapsed β tabs hidden) β
β β
β Ungrouped Tabs (3) β
β β π΅π YouTube - Music [β] [π] [Γ] β
β β π Amazon - Shopping Cart [2Γ] [β] [π] [Γ] β
β β π Amazon - Shopping Cart [2Γ] [β] [π] [Γ] β
β β
β π Quick Pick Cmd+Shift+1 jumps to slot 1 Β· 2β5 userβ¦ β
β β [1] π GitHub - Pull Requests [Γ] β
β β [2] π Notion - Projects [Γ] β
β β [3] Empty β save a tab via π button β
β β [4] Empty β save a tab, then assign a keyβ¦ β
β β [5] Empty β save a tab, then assign a keyβ¦ β
β β
β Recently Closed (3) [Show βΎ] β
β β π° CNN News Article π΅Work 5m ago [βΆ] β
β β π Stack Overflow Question 2h ago [βΆ] β
β β π§ Gmail - Old Email π’Research 1d ago [βΆ] β
β β
β β Favorite Sites (1) β
β β π GitHub Open β [Γ] β
β β
β β <2h β <24h β <1w β >1w β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Tab Manager 3 groups Β· 12 tabs βΉοΈ β
β β
β [π Search tabs and groups... β] [Groups | All] β
β active β β
β [Dupes] [Audio] [Pinned] [Faves] [Stale] [Picks] [Any|All] β
β β
β [Sort: Title (AβZ) βΌ] [Clear Filters] β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β π Amazon - Shopping Cart π [2Γ] [β] [π] [Γ] β
β π Amazon - Shopping Cart π [2Γ] [β] [π] [Γ] β
β π§ Gmail - Inbox π΅Work [2Γ] [β
] [π] [Γ] β
β π§ Gmail - Inbox π΅Work [2Γ] [β] [π] [Γ] β
β π GitHub - Pull Requests π΅Work [β] [π1] [Γ] β
β π Google Sheets - Q1 Data π΅Work [β] [π] [Γ] β
β π° Medium - Web Dev π’Research [β] [π] [Γ] β
β π Notion - Projects π΅Work [β] [π2] [Γ] β
β π Stack Overflow - Async π’Research [3Γ] [β] [π] [Γ] β
β π Stack Overflow - Async π’Research [3Γ] [β] [π] [Γ] β
β π Wikipedia - React π’Research [β] [π] [Γ] β
β π΅ YouTube - Music π [β] [π] [Γ] β
β β
β β <2h β <24h β <1w β >1w β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- [Dupes] [Audio] [Pinned] [Faves] [Stale] [Picks] - Filter chips (click to filter, always visible). Picks (v2.8) shows only tabs saved to a Quick Pick slot.
- [Any | All] - Mode toggle: single-select vs. AND combine for chips
- [Groups | All] - View toggle: grouped with headers vs. flat sorted list
- [βΌ] button - Collapse/expand all groups (hidden in All view)
- βΌ/βΆ on group headers - Expanded/collapsed group (click to toggle)
- β - Dotted indent rail (visual grouping for tabs under headers)
- π in search box - Magnifying glass icon
- β in search box - Clear search text (appears when typing)
- [Show βΎ] / [Hide β΄] - Toggle recently closed tabs visibility
- Open β - Hover label on favorite sites (click to open)
- π΅π’π΄π‘ - Group color badges (in recently closed and All view)
- π - Ungrouped tab badge (gray, appears in All view)
- [Γ] - Close button (appears on hover for open tabs / favorite sites)
- [βΆ] - Restore button (always visible for closed tabs)
- [β] - Add to favorites (appears on hover)
- [β ] - Already favorited (click to remove)
- [π] / [π1]β¦[π5] - Quick Pick button (v2.8): empty bookmark or saved-to-slot N. Click to open the picker.
- [2Γ][3Γ] - Duplicate count badge (orange, current tabs only)
- [42][156] - Visit count badge (blue, total visits from browser history)
- 5m ago, 2h ago, 1d ago - Time since tab was closed (recently closed section)
- [Close Dupes] - Only visible when duplicates exist
- π - Pinned tab indicator (clickable toggle)
- π - Muted tab (clickable toggle)
- π - Playing audio (clickable to mute)
- π - Silent tab, mute button (appears on hover)
- Blue left border - Active tab indicator
- β <2h β <24h β <1w β >1w - Age color key (green/yellow/orange/red)
- Grayed out (grey) - Recently closed tab (not currently open)
- Grayed out (gold border) - Favorite site not currently open
- Favicon emojis - Website icons (ππ§ππππ°π΅π)
- βΉοΈ - Info icon (click to see help modal with attribution)
-
Download/Clone this folder to your computer
-
Open Chrome Extensions:
- Navigate to
chrome://extensions/ - Or Menu β More Tools β Extensions
- Navigate to
-
Enable Developer Mode:
- Toggle "Developer mode" in the top-right corner
-
Load Extension:
- Click "Load unpacked"
- Select the
tab-manager-chrome-extfolder - Extension icon appears in toolbar
-
Pin Extension (Optional):
- Click puzzle icon π§© in Chrome toolbar
- Find "Tab Manager"
- Click pin icon π to keep visible
View Tabs:
- Click extension icon to open popup
- See all tabs organized by groups
- Total tab groups and total tabs displayed at top
Search Tabs:
- Type in search box to filter tabs by title, URL, or group name
- Results update in real-time
Close Tabs:
- Hover over any tab to see Γ button
- Click Γ to close that specific tab
- Hover over group header to close entire group
Activate Tab:
- Click any tab in the list to switch to it
- Switches window focus if tab is in another window
Quick Filters (always visible below search box):
- Dupes - Show only tabs with duplicate URLs
- Audio - Show only tabs playing or muting audio
- Pinned - Show only pinned tabs
- Faves - Show only favorited sites (open + unopened grayed out)
- Stale - Show only tabs not accessed in over a week
Single-select (Any, default): Clicking one chip deselects others. AND mode (All): Click "All" in the mode toggle to combine multiple filters.
When chips are active, recently closed and favorites sections are hidden for a clean filtered view.
Add Favorites:
- Hover over any tab to see the β star button
- Click β to save the site as a favorite (stores domain only)
- Star changes to β to indicate it's favorited
View Unopened Favorites:
- Favorites not currently open appear grayed out at the bottom (gold border)
- Click to open the site in a new tab
- Section automatically hides when the site is open
Remove Favorites:
- Hover over a grayed-out favorite and click Γ to remove
View Duplicates:
- Orange badges (e.g., "2Γ") appear on duplicate tabs
- Click "Duplicates" chip to filter view
- Click again to show all tabs
Close Duplicates:
- "Close Dupes" button appears in the action row when duplicates exist
- Click to remove duplicate tabs, keeping one copy of each URL
- Preferentially keeps the active tab
- Respects all active filters (search, group, chips)
Filters work together (AND logic when "All" mode is selected):
- Search + Dupes chip β Shows duplicates matching search
- Multiple chips + Search β All conditions must match
View Recently Closed:
- Recently Closed section header always visible (when closed tabs exist)
- Click "Show βΎ" to expand, "Hide β΄" to collapse
- Section appears at bottom (after ungrouped tabs)
Restore Tabs:
- Click any closed tab to restore it
- Click the restore button (βΆ) on the right
- Tab opens in original group if group still exists
- If group was deleted, tab opens ungrouped
Features:
- Colored badges show which group tab will restore to
- Time badges show when tab was closed (5m ago, 2h ago, etc.)
- Search works on closed tabs (filter by title or URL)
- Tracks last 25 closed tabs (Chrome API limit)
- Toggle state persists (stays on/off across sessions)
Required permissions:
- Read tab information (
tabs) - To access tab titles, URLs, and metadata - View and manage your tab groups (
tabGroups) - To read and display tab group information - Read your browsing history (
history) - To show visit counts from browser history (data never leaves your browser) - Access recently closed tabs (
sessions) - To track and restore recently closed tabs - Store data (
storage) - Group metadata for closed tabs (local), favorite sites synced across devices (sync)
No website content access - Extension does not read or modify webpage content.
tab-manager-chrome-ext/
βββ manifest.json # Extension configuration
βββ background.js # Badge counter + group metadata tracking for closed tabs
βββ popup.html # Popup UI structure
βββ popup.js # Main logic (search, filter chips, sort, favorites, duplicates, recently closed)
βββ styles.css # Styling (includes filter chips, favorites, interactive buttons, age colors)
βββ icons/ # Extension icons (16, 32, 48, 128px)
βββ CLAUDE.md # Development guide for Claude Code
βββ README.md # This file
- Manifest Version: 3 (latest Chrome extension standard)
- Permissions:
tabs,tabGroups,history,sessions,storage - No external dependencies
- Pure JavaScript (no frameworks)
- Service Worker for background badge updates + group metadata tracking
- Chrome APIs:
chrome.tabs,chrome.tabGroups,chrome.sessions,chrome.storage.local,chrome.storage.sync,chrome.history,chrome.action,chrome.windows
- Cannot close special Chrome pages (
chrome://,chrome-extension://) - Favicon may not load for some websites (shows π placeholder)
- Extension popup closes when clicking tabs (Chrome behavior)
Built with:
- Chrome Extensions Manifest V3
- Vanilla JavaScript
- Chrome APIs:
chrome.tabs,chrome.tabGroups,chrome.sessions,chrome.storage.local,chrome.storage.sync,chrome.history,chrome.action,chrome.windows
Key Implementation Details:
- Background service worker tracks group metadata for closed tabs
- Group info stored in
chrome.storage.local(sessions API doesn't include groups) - Timestamp matching algorithm pairs session data with group metadata
- Smart caching prevents group info loss during tab close sequence
Code comments indicate:
- Created by Steve Souza with Claude Code
- Experimental learning project
- Can be removed at any time
Version 2.8 (2026-05-02)
- π RENAME: "Pinned Tab Slots" β Quick Pick. Switched the user-facing emoji from π β π to remove collision with Chrome's native tab pin (still surfaced via the
π/πstatus badge and the "Pinned" filter chip β those keep their vocabulary). - π’ NEW: Slot count expanded 2 β 5. Slot 1 keeps default
Cmd+Shift+1; slots 2β5 are user-assigned atchrome://extensions/shortcuts. - π¨ NEW: Picker colors are now semantic β green border = empty/available, red border = taken by another tab, solid blue + β = this tab. The current-slot button has an explicit
Γto clear (body click is a no-op). - πͺ§ NEW: Toast confirmation on save and clear (single instance, ~1.8 s).
- π NEW: "Picks" filter chip β narrows the open-tab list to tabs saved to a Quick Pick slot. Persisted to localStorage with the other chip states.
- ποΈ CHANGE: Quick Pick section is now always visible (no longer hidden when chip filters are active).
- βΏ A11y: Picker buttons have descriptive
aria-labels ("Slot 3, empty" / "Slot 1, currently saved as β¦" / "Slot 2, this tab is saved here"). - π‘ Per-tab π tooltip mentions the keystroke for slot 1 and points to
chrome://extensions/shortcutsfor slots 2β5. - π Storage shape unchanged (
pinnedSlots["1".."5"]inchrome.storage.sync); v2.7 entries continue to work β no migration needed.
Version 2.7 (2026-05-02)
- π NEW: Pinned Tab Slots β 2 numbered slots (1, 2) that hold a URL. Press the slot's keystroke to jump to that tab, or reopen by URL if it was closed. (Renamed to "Quick Pick" in v2.8.)
- β¨οΈ NEW: Keyboard shortcut
Cmd+Shift+1(Mac) /Ctrl+Shift+1(Win/Linux) jumps to slot 1 by default. - β¨οΈ NEW: Slot 2 is unbound by default (Chrome's 4-default-keystroke limit) β assign a key once at
chrome://extensions/shortcuts. - π¨ NEW: π button on each tab row opens a 1/2 picker to pin to a slot. Silent overwrite when re-pinning.
- π¨ NEW: "Pinned Slots" section in the popup shows both slots; click a row to jump to its tab.
- π DOCS: Added Browser Compatibility section β Chrome and Brave verified, other Chromium browsers (Edge, Vivaldi, Opera, Arc) likely work, Firefox and Safari not supported.
Version 2.6 (2026-02-06)
- π¨ REDESIGN: Compact 1-row header (title left, "N groups Β· N tabs βΉοΈ" right)
- π¨ REDESIGN: Removed collapsible controls β sort, chips, and actions always visible
- π NEW: Search box magnifying glass icon
- π·οΈ NEW: Shortened chip labels (Dupes, Audio, Pinned, Faves, Stale)
- π·οΈ NEW: Segmented [Any | All] mode toggle replaces AND checkbox
- β NEW: Close Dupes button only appears when duplicates exist (saves space)
- βΆ NEW: Recently Closed inline section header with Show/Hide toggle
- π¨ NEW: Dotted indent rail on ALL sections (groups, ungrouped, recently closed, favorites)
- β NEW: "Open β" hover label on favorite sites
- π¨ NEW: Age color key footer (β<2h β<24h β<1w β>1w) replaces text footer
- βΉοΈ Attribution moved to help modal
- π¨ 8px border-radius, 4px age borders, tighter spacing throughout
- π§Ή REMOVED: Collapsible controls section and toggle button
- π§Ή REMOVED: Separate "Show Recently Closed" button
- π§Ή REMOVED: AND checkbox (replaced by mode toggle)
- π§Ή REMOVED: Text footer (replaced by age key)
Version 2.5 (2026-02-06)
- π NEW: Search clear X button β clears search text in one click
- π NEW: Accordion collapse/expand for tab groups β click group header, chevron indicator, state persisted
- π NEW: Collapse/Expand All button on search row
- π NEW: Segmented [Groups | All] view toggle β replaces hidden "Sort globally" checkbox
- π NEW: Tooltips on Groups/All toggle buttons
- π Search auto-expands collapsed groups containing matching tabs
- πΎ Collapse state and view mode persisted to localStorage
Version 2.4 (2026-01-31)
- β NEW: Favorite Sites - star any tab to save as favorite, unopened favorites shown grayed out at bottom
- β NEW: Domain-level matching - stores origin only, ignores paths/session IDs (e.g., Gmail β
https://mail.google.com) - β NEW: Cross-device sync for favorites via
chrome.storage.sync - π·οΈ NEW: Filter chips row - Duplicates, Audio, Pinned, Favorites, Stale (1w+) - always visible above search
- π·οΈ NEW: Single-select chip mode by default, AND checkbox to combine multiple
- π·οΈ NEW: Tooltips on all chips explaining what they filter
- π§Ή REMOVED: "Show Only Duplicates" button (replaced by Duplicates chip)
- π§Ή REMOVED: Separate Favorites toggle button (section shows automatically)
- π FIXED: Filter chips now properly filter displayed tabs (shared
tabMatchesFilters()) - π FIXED: Recently closed and favorites sections now render in global sort mode
- π¨ Gold/amber theme for favorite sites section (distinguishes from grey recently closed)
- π¨ Clean chip pill styling with active state highlighting
- β‘ Recently closed and favorites sections auto-hide when chip filters active
Version 2.3 (2026-01-30)
- β¨οΈ NEW: Keyboard shortcuts for tab navigation
- β¨οΈ NEW: Toggle between current/previous tab (Ctrl+Shift+Up / Cmd+Shift+Up)
- β¨οΈ NEW: Navigate through tabs by recency (Ctrl+Shift+Left/Right)
- βΉοΈ NEW: Clickable help modal with keyboard shortcuts and color legend
- βΉοΈ IMPROVED: Removed confusing tooltip delay on info icon
- π¨ User-configurable shortcuts via chrome://extensions/shortcuts
- π Each tab appears once in navigation (sorted by last accessed time)
- πͺ Window-scoped navigation (commands only affect focused window)
Version 2.2 (2025-01-27)
- β¨ NEW: Recently Closed Tabs feature - track and restore last 25 closed tabs
- β¨ NEW: Group restoration - closed tabs restore to their original group
- β¨ NEW: Colored group badges on closed tabs showing restoration target
- β¨ NEW: Enhanced default sorting - Groups (AβZ) + Recent First
- β¨ NEW: Click entire closed tab row or restore button (βΆ) to reopen
- π NEW: Added "sessions" permission to access recently closed tabs
- π NEW: Added "storage" permission to save group metadata for closed tabs
- π¨ Grayed out styling for closed tabs distinguishes from open tabs
- π¨ Time badges show when tab was closed (5m ago, 2h ago, 1d ago)
- πΎ Toggle state for recently closed section persists via localStorage
- β‘ Search filter works on recently closed tabs
- π‘οΈ Smart fallback: if group deleted, tab opens ungrouped
- π Recently Closed section always appears LAST (after ungrouped tabs)
- π§ Groups now sorted alphabetically by default for easier navigation
- π§ Within groups, tabs sorted by most recent first (intuitive default)
Version 2.1 (2025-01-27)
- β¨ NEW: Visit count badges showing total visits from browser history
- β¨ NEW: "Most Visited First" sort option
- β¨ NEW: "Least Visited First" sort option (find tabs to close)
- β¨ NEW: Collapsible controls - hide/show filters & sort with toggle button
- β¨ NEW: Wider popup (550px) - more space for tab titles
- π NEW: Added "history" permission to read visit counts
- π Visit badges only show for tabs with 10+ visits (reduces clutter)
- π¨ Blue visit badges visually distinct from orange duplicate badges
- π¨ Compact stats - tab/group counts on single line
- πΎ Collapsible state persists via localStorage
- β‘ Search box always visible with auto-focus
Version 2.0 (2025-01-26)
- β¨ NEW: Interactive pin/unpin toggle buttons (π/π)
- β¨ NEW: Interactive mute/unmute toggle buttons (π/π/π)
- β¨ NEW: 7 sort options (Title, URL, Age, Default)
- β¨ NEW: Global sorting mode with group badges
- β¨ NEW: Clear Filters button (one-click reset)
- β¨ NEW: localStorage persistence for sort preferences
- β¨ NEW: Age-based color coding (π’π‘π π΄ borders)
- π¨ Improved UI with hover animations and tactile feedback
- π Fixed tab click handlers to exclude action buttons
Version 1.0 (2025-01-26)
- Initial release (built in <1 hour!)
- Search and filter functionality
- Tab groups with color coding
- Duplicate detection and management
- Close individual tabs and groups
- Favicon display
- Active tab highlighting
- Filter-aware duplicate closing
- Removed website content permissions
This is an experimental learning project. Feel free to use, modify, or remove as needed.
This extension was created as a learning experiment and is not officially supported. Use at your own discretion.
Created by Steve Souza & Claude Code (01/26) Experimental Project