Introduction

Tabs++ is a high-performance productivity layer for Google Chrome — treating your browser as a persistent workspace. It ensures that your pinned tabs, grouped tabs, and session state survive accidental closures, browser crashes, and resource exhaustion.

With 90+ features spanning tab protection, workspace management, media tools, focus timers, system controls, and a global Command Palette, Tabs++ turns your browser into a Browser OS.

Design Philosophy: Zero-GUI. The Command Palette (Ctrl+Shift+K) is the heart of Tabs++. Tools should be invisible until you need them, leaving your screen real estate for your actual work.

Getting Started

Installation

Recommended: Install directly from the Chrome Web Store:

Add to Chrome

Developer install (from source):

  1. Clone the GitHub repository or download the source.
  2. Open Chrome and navigate to chrome://extensions/.
  3. Enable Developer mode in the top right corner.
  4. Click Load unpacked and select the extension folder.

Your First Steps

  1. Press Ctrl+Shift+K (Mac: Cmd+Shift+K) to open the Command Palette.
  2. Start typing to search open tabs, history, and bookmarks.
  3. Type > to enter Action Mode — the prefix for all commands.
  4. Type ! to trigger Search Bangs for external sites.
  5. Open the extension popup (toolbar icon) to configure which features are enabled.
Tip: Every single feature in Tabs++ is optional. Open the popup and use the Settings tab to enable/disable any feature. Disabling a feature also removes its commands from the palette.

Protection Engine

The core of Tabs++ is the real-time protection engine. It silently monitors your tabs in the background and ensures protected tabs survive any accident.

What Gets Protected

  • Pinned Tabs — If you close a pinned tab, Tabs++ instantly recreates it at its baseline URL.
  • Grouped Tabs — Any tab inside a Chrome Tab Group is considered "protected." If closed, it is restored back into its exact group and original position.

How Protection Works

  • Memory Baseline System: Tabs++ tracks the "ground truth" of your workspace in a high-speed background Map. This stores the URL, index, window ID, group ID, group title, and group color for every protected tab.
  • Deterministic Hibernation: Restored tabs are created and instantly "discarded." They appear in your tab strip but use zero CPU and zero RAM until you click them.
  • URL-First Reconciliation: After a browser restart, Chrome assigns brand-new Tab IDs. Tabs++ re-binds stored baselines to new Tab IDs by matching canonical URLs — so protection is fully preserved across restarts.
  • Startup Hibernate: On browser launch, all background tabs are automatically discarded to save RAM.
Atomic Restoration: Position integrity is maintained even during complex batch-move operations. The engine uses an Eviction Graveyard to track tabs in the process of being restored, preventing ghost tabs and infinite restoration loops.

Inheritance Protection

New tabs opened from protected (pinned/grouped) tabs are automatically ungrouped when they navigate to a different domain. This prevents your organized groups from being polluted by temporary navigation tabs.

Session Vault

While the protection engine handles real-time accidents, the Session Vault handles system-level failures and deliberate cleanups.

  • Tabs++ takes periodic snapshots of your workspace state to chrome.storage.local.
  • If Chrome fails to restore your sessions on startup, you can summon the Vault to revive everything.
  • When closing an entire window, all its protected tabs are bulk-saved to the vault.
  • When closing multiple tabs at once (batch close), they are archived to the vault instead of being individually restored.
  • When an entire group is deliberately closed, its tabs go to the vault.
> Restore Vault

You can also restore or clear the vault from the extension popup Settings tab.

Auto-Grouping

Tabs++ includes a background intelligence engine that automatically organizes high-frequency domains into themed groups as you browse. Enable it via the Smart Groups toggle in the popup.

Thematic Rules

CategoryColorExample Domains
AIGreenchatgpt.com, claude.ai, gemini.google.com, perplexity.ai, deepseek.com, grok.com, and all .ai domains
DevBluegithub.com, gitlab.com, stackoverflow.com, aws.amazon.com, vercel.com, netlify.com, npmjs.com, cursor.sh, leetcode.com
DesignPurplefigma.com, canva.com, dribbble.com, adobe.com, unsplash.com, fonts.google.com, spline.design
MediaRedyoutube.com, netflix.com, spotify.com, twitch.tv, vimeo.com, steampowered.com
NewsYellownytimes.com, bbc.com, theverge.com, techcrunch.com, wsj.com, medium.com, wikipedia.org
SocialCyanx.com, twitter.com, facebook.com, reddit.com, instagram.com, linkedin.com, discord.com, threads.net, bsky.app

When enabled, any new tab matching a rule is automatically added to an existing group or a new group is created. The group name matches the category (e.g., "Dev", "AI").

Auto-Collapse

When enabled, Tabs++ automatically collapses tab groups once all their tabs have been discarded (hibernated). This maximizes horizontal space in the tab strip while keeping your logical groups one click away.

Collapse triggers after the last active tab in a group is discarded. Groups that still have a loaded (non-discarded) tab remain expanded.

Enable via the Auto-Collapse toggle in the popup.

Organization Commands

All commands are accessible via the Action Engine (> prefix) in the Command Palette.

CommandDescription
> Magic OrganizeAuto-sort all tabs in the window into domain-based groups.
> DedupeClose all duplicate tabs in the current window.
> Gather StandalonePull all ungrouped tabs into a single "Standalone" group.
> Consolidate DomainGroup all tabs from the same hostname together.
> Merge Duplicate GroupsConsolidate groups that share the same name across windows.
> Extract GroupMove the current tab group into its own window.
> Group All TabsPut all unprotected tabs into one "Grouped Tabs" container.
> Ungroup AllFlatten all grouped tabs in the current window.
> Close Other TabsClose everything except the active tab.
> Clear UnprotectedRemove all unpinned and ungrouped tabs.
> Toggle PinPin or unpin the current tab.
> Toggle GroupGroup or ungroup the current tab.
> Toggle MuteMute or unmute the current tab.
> Duplicate TabClone the current tab.

Command Palette

The Command Palette is the central hub of Tabs++. Access your entire browser state via Ctrl + Shift + K (Win/Linux) or Cmd + Shift + K (Mac).

What It Searches

  • Open Tabs — All tabs across all windows, with fuzzy matching on title and URL.
  • Bookmarks — Your entire bookmark collection.
  • Browser History — Recently visited pages.
  • Recently Closed — Tabs and sessions you recently closed.
  • Actions — All Tabs++ commands and tools.
  • Google Suggestions — Live search suggestions from Google.
  • Saved Tab Sets — Your saved workspaces appear in search results.

Navigation

  • Arrow Up/Down — Navigate between results.
  • Enter — Activate the selected result (switch tab, open URL, execute action).
  • Escape — Close the palette or cancel a pending command prompt.
  • Shift+Click on a result in media mode — Toggle selection.
Tip: If you type a query and press Enter without selecting a result, Tabs++ will search Google for your query or navigate directly if it looks like a URL.

Action Engine (>)

Type > in the palette to enter Action Mode. This gives you access to 50+ system commands. Type part of a command name to filter — fuzzy matching is supported.

Performance Commands

CommandDescription
> Hibernate AllDiscard all background tabs across all windows to free RAM. Also bound to Ctrl+Shift+H.
> Hibernate WindowSleep all background tabs in the current window.
> Hibernate PinnedForce sleep on all pinned tabs.
> Hibernate CurrentPut the active tab to sleep immediately.
> Mute BackgroundSilence all audible tabs except the current one.
> Pause MediaStop all playing video and audio elements globally.

Focus Commands

CommandDescription
> Focus ViewEnter Reader Mode — clean, minimal reading interface.
> Zen FullscreenEnter fullscreen with all browser UI hidden.
> Split ViewTile current and previous tabs side by side.
> Start 25m PomodoroBegin a 25-minute focus session.
> Start 50m PomodoroBegin a 50-minute deep work session.
> Start 5m BreakBegin a 5-minute short break.
> Start 15m BreakBegin a 15-minute long break.
> Stop TimerCancel the active Pomodoro session.

Safety & Control

CommandDescription
> Snapshot SessionForce a manual backup of your current session to the Vault.
> Panic CloseClose all tabs opened in the last hour and wipe history.
> Hard ReloadBypass cache and force-refresh the page.
> Update Pinned URLLock the current pinned tab to its current URL (includes video timestamps on YouTube/Vimeo).
> Set Custom Baseline URLManually set a persistent URL for a protected tab.

Dynamic Commands

Some commands accept inline arguments directly in the palette:

SyntaxDescription
> vol 80Set current tab volume to 80%.
> summon [name]Merge a saved set or group into the current window.
> replace [name]Swap the current workspace with a saved set.
> launch [name]Open a saved set in a new window.
> delete set [name]Delete a saved tab set.
> clean time 2hSet auto-archive threshold to 2 hours.
> hibernate time 30mSet auto-hibernate threshold to 30 minutes.

Search Bangs (!)

Skip the middleman. Type a ! prefix followed by the bang code to search external sites directly from the palette.

BangSiteBangSite
!gGoogle!ddgDuckDuckGo
!ytYouTube!wWikipedia
!ghGitHub!soStack Overflow
!rReddit!x / !twX (Twitter)
!mapsGoogle Maps!imgGoogle Images
!mdnMDN Web Docs!npmnpm Registry
!aAmazon!spSpotify
!gptChatGPT!pxPerplexity
!figFigma Community!canCanva
!pinPinterest

Usage: !yt lofi beats searches YouTube for "lofi beats". !gh tabsplusplus searches GitHub.

Tab Sets & Workspaces

Tab Sets let you save, launch, and swap entire workspaces — collections of protected tabs (pinned and grouped) with their group titles, colors, and positions preserved.

Save Commands

CommandDescription
> Save WorkspaceSave all protected (pinned + grouped) tabs in the current window.
> Save All TabsSave every tab in the window, including unprotected ones.
> Save GroupSave only the tabs in the current group.
> Stash GroupSave the current group and close all its tabs.
> Export SetsDownload all saved sets as a JSON backup file.

Load Commands

CommandDescription
> Launch [name]Open a saved set in a brand-new window. Uses a Window Launch Lock to prevent auto-grouping interference.
> Summon [name]Merge a saved set into the current window. Uses smart deduplication — won't create duplicate tabs.
> Replace [name]Swap the entire current workspace with a saved set. Old tabs are safely removed after the new ones load.
> Delete Set [name]Remove a saved set.

Workspace Types

  • Workspace Set: Saves only protected tabs (pinned and grouped).
  • Complete Set: Saves all tabs in the window, including unprotected ones.
  • Group Set: Saves only the tabs within a specific group.

Tab Sets are also manageable from the Sets tab in the extension popup, with Summon, Replace, and Delete buttons for each set. Import/Export is also available there.

Smart Palette Tools

The palette automatically detects math, units, colors, and text transformations. No prefix needed — just type and see the result. Press Enter to copy to clipboard.

Math Calculator

Type expressions like 25 * 4, 1024 / 8, or 3.14 + 2. Supports +, -, *, /.

Unit Converter

  • px ↔ rem: Type 32px to see rem value, or 2rem to see px value. Based on configurable root font size (default 16px).
  • Physical Units: Type 10in, 25cm, 6ft, 100mm, or 2m to see conversions to all other units.

Color Converter

Type any hex code like #ff0000 or #333 to instantly see the RGB and HSL values. Press Enter to copy.

Case Converter

SyntaxResult
slug My Page Titlemy-page-title
camel my component namemyComponentName
snake My Variablemy_variable
title hello worldHello World
upper quietQUIET
lower SHOUTINGshouting

Encoding Tools

SyntaxResult
base64 helloEncodes to Base64 (or decodes if input looks like Base64).
url hello worldURL-encodes (or decodes if input contains %).

Lorem Ipsum Generator

SyntaxResult
lorem 10Generates 10 words of Lorem Ipsum.
lorem pGenerates a full paragraph (~40 words).
lorem 5Generates 5 words.

Tab Volume Control

Set the perfect audio levels for music, videos, or any tab with audio — without hunting for the browser's native mixer.

Commands

CommandDescription
> Vol UpIncrease volume by +10%.
> Vol DownDecrease volume by -10%.
> Vol MaxSet volume to 100%.
> vol 75Set volume to exactly 75% (dynamic command).

Feedback

When the palette is closed, a slide-in on-page toast confirms your volume level. When the palette is open, the volume is shown directly in the input bar.

Enable via the Tab Volume Control toggle in the popup.

Media Extractor

A high-performance engine to scan, filter, and batch download images and videos from any page.

How To Use

  1. Open the Command Palette (Ctrl+Shift+K).
  2. Type > Extract Media and press Enter.
  3. The palette switches to Media Mode — a masonry grid of all detected images and videos.
  4. Click to select/deselect items. Use Enter to download all selected.

Smart Filtering

Type a query in the palette to filter results in real time using a hybrid natural-language parser:

FilterExampleEffect
Formatpng, jpg, webp, gifShow only images of that type.
Widthw > 1000, width >= 800Filter by image width in pixels.
Heighth < 500, height = 600Filter by image height in pixels.
Default dim> 800Defaults to width comparison.
Orientationlandscape, portrait, squareFilter by aspect ratio.
Keywordslogo, bannerMatch filename or alt text.
Combined>1000 png landscapeAll filters together.
Staggered Downloads: Tabs++ staggers downloads 150ms apart to prevent Chrome from silently dropping rapid-fire concurrent download requests. Handles 100+ assets reliably.

Enable via the Extract Media Assets toggle in the popup.

Picture-in-Picture Player

Pop out any video (YouTube, Twitch, Vimeo, Netflix, etc.) into a floating window that stays on top of all other windows.

> PiP

Or use the PiP Player card in the popup Tools tab. Enable via the autoPiP toggle.

Pomodoro Timer

Stay focused without leaving your browser. A minimalist, glassmorphic timer that syncs across every single tab.

Commands

CommandDuration
> Start 25m Pomodoro25-minute work session.
> Start 50m Pomodoro50-minute deep work session.
> Start 5m Break5-minute short break.
> Start 15m Break15-minute long break.
> Stop TimerCancel the active session.

Custom Duration

Type timer 10 (without the > prefix) in the palette to start a custom 10-minute timer.

Type > pomo 30 via the dynamic command system for a 30-minute custom Pomodoro.

Features

  • Desktop Notifications: Get notified when a session ends, even if Chrome is minimized.
  • Cross-Tab Sync: The timer pill appears in the bottom-right corner of every open tab. All tabs show the same countdown.
  • Click to Stop: Click the timer pill in any tab to cancel.
  • Auto-Transition: Work sessions end with a "Time for a break!" notification. Break sessions end with "Ready to start working again!"

Enable via the Pomodoro Timer toggle in the popup.

Focus View (Reader Mode)

Strip away ads, sidebars, and distractions with one click. Tabs++ renders a clean, high-contrast, monochromatic reading interface for any article.

> Focus View

Alias: > read, > reader.

Features

  • Smart Content Extraction: Heuristic-based detection finds the main article content and ignores navigation, ads, and sidebars.
  • Premium Typography: Serif body text at 21px, sans-serif headers, and optimized line spacing for comfortable reading.
  • Dark/Light Mode: Automatically follows your system preference.
  • Image Support: All article images are preserved and displayed at full width.
  • Close Button: A fixed close button in the top-right corner returns you to the original page.

Enable via the Focus View toggle in the popup.

Zen Fullscreen

Enter true fullscreen mode with all browser UI hidden — tabs, address bar, bookmarks bar, and window chrome.

> Zen Fullscreen

This is equivalent to the browser's native fullscreen (F11) but accessible directly from the palette.

Split View

Quickly tile the current tab and the previous tab side by side. The current window resizes to half its width on the left, and a new window opens with the same URL on the right.

> Split View

Color Eyedropper

Pick any color from anywhere on the screen. Tabs++ captures a screenshot, lets you click any pixel, and returns the Hex, RGB, and HSL values.

> Eyedropper

Alias: > color, > picker, > hex.

The palette closes, a screenshot is captured after a 350ms delay, and a crosshair cursor appears over the full-page image. Click to pick. Press Escape to cancel.

Enable via the Eyedropper toggle in the popup.

Full-Page Screenshot

Capture the entire scrollable page as a single PNG — including content below the fold and lazy-loaded images.

> Screenshot

The content script drives the capture loop: it scrolls down in viewport-sized increments, asks the service worker to capture each slice via captureVisibleTab, stitches them together on a canvas, and triggers a download.

Enable via the Full-Page Screenshot toggle in the popup.

Smart Converter & Math

The Command Palette doubles as a zero-UI calculator, unit converter, and color translator. No prefix needed — Tabs++ auto-detects what you're typing.

TypeExample InputExample Output
Arithmetic25 * 4100
Addition128 + 64192
Division1024 / 8128
px to rem32px2rem (at 16px base)
rem to px2rem32px (at 16px base)
Inches to cm10in25.4cm, 0.254m, 254mm, 0.8333ft
cm to inches30cm0.3m, 300mm, 11.811in, 0.9843ft
Feet to m6ft1.8288m, 182.88cm, etc.
Hex to RGB#ff0000rgb(255, 0, 0)
Hex to HSL#ff0000hsl(0, 100%, 50%)

Each result appears as an action in the palette — press Enter to copy it to your clipboard.

Enable via the Smart Converter toggle in the popup.

Utility Commands

CommandDescription
> Copy Markdown LinkCopy the current page as [Title](URL) to clipboard.
> Hard ReloadForce refresh bypassing the browser cache.
> Duplicate TabClone the current tab.
> Toggle PinPin or unpin the current tab.
> Toggle MuteMute or unmute the current tab.
> Toggle GroupGroup or ungroup the current tab.
> Export SetsDownload all saved tab sets as a JSON backup.

Tab Hibernation

Modern browsers consume gigabytes of RAM. Tabs++ solves this by forcing background tabs into a "Discarded" (hibernated) state. Restored tabs use zero CPU and zero RAM until you click to focus them.

Manual Hibernation

  • > Hibernate All — Discard all background tabs globally. Also bound to Ctrl+Shift+H.
  • > Hibernate Window — Sleep all background tabs in the current window.
  • > Hibernate Pinned — Force sleep on all pinned tabs.
  • > Hibernate Current — Sleep the active tab immediately.

Smart Auto-Hibernate

When enabled, Tabs++ automatically discards tabs that have been idle for a configurable duration (default: 1 hour). This runs on a periodic alarm and only affects unprotected, non-active tabs.

Configure the threshold: > hibernate time 30m or > hibernate time 2h.

Enable via the Smart Hibernate toggle in the popup.

Startup Hibernate

When Chrome starts, Tabs++ immediately discards all background tabs — so the browser opens light and fast.

Auto-Archive (Ruthless Clean)

To prevent tab sprawl, Tabs++ monitors unprotected (non-pinned, non-grouped) tabs. By default, any unprotected tab that hasn't been accessed for 12 hours is automatically closed and archived to the Session Vault.

  • Configurable: Adjust the threshold via > clean time 2h or > clean time 30m.
  • Protected Tabs Exempt: Pinned tabs and grouped tabs are never auto-closed.
  • Vault Integration: Closed tabs are saved to the vault so they can be restored later.

Enable via the Ruthless Clean toggle in the popup.

Transient Peek

Explore links without bloating your workspace. Shift+Click any link to open it in a centered popup overlay window.

  • The Peek window is a borderless popup sized at 85% of your current window.
  • While peeking, the parent page gets a subtle blur overlay.
  • If the content is useful, click the Promote to Workspace button in the bottom-right corner to move it back into your main window as a regular tab.
  • If not, simply close the Peek window — the parent page un-blurs automatically.

Smart Auto-Peek

Enable Cross-Domain Peek in the popup Settings tab to automatically open cross-domain links in peek windows. Auto-peek is smart — it skips navigational sites (search engines, social media, video, shopping) where peeking doesn't make sense. Reference sites like Wikipedia, MDN, and Stack Overflow still auto-peek normally.

  • Type > peek block site to disable auto-peek on the current site.
  • Type > peek unblock site to re-enable auto-peek on the current site.
  • Shift+Click always peeks regardless of auto-peek or blocklist.

New Tab Page

Tabs++ replaces the standard Chrome New Tab Page with a minimalist, premium dashboard.

Features

  • Clock & Date: Large, clean time display with weekday and full date.
  • Dynamic Backgrounds: Choose from 4 designs — Mesh Blobs, Complex SVG Blobs, Grid Mask, or Grid Focal Point. Each reacts to your chosen accent color.
  • Accent Color Picker: Click the color dot in the bottom-left to change the primary accent hue. The background design adapts dynamically.
  • Full Palette Integration: The search input at the center of the NTP is the full Tabs++ Command Palette. Search tabs, history, bookmarks, or trigger actions — directly from the new tab page.
  • Auto-Focus: The NTP automatically focuses the search input on load, so you can start typing immediately.

Default NTP Toggle

Enable the Default NTP card in the popup Tools tab to redirect new tabs to your chosen search engine homepage instead of the Tabs++ dashboard. The redirect is instant with zero visual flash. All extension features (palette, PiP, peek, etc.) continue to work on normal pages.

Search Engine

Type > search engine in the palette to pick from 5 engines: Google, DuckDuckGo, Bing, Brave, and Perplexity. All search queries, suggestions, and raw Enter searches use your chosen engine. The NTP redirect (when enabled) also opens your chosen engine's homepage.

Focus Guard

Focus Guard prevents new tabs from accidentally "inheriting" the protected state of their parent. If you open a link from a grouped or pinned tab, Tabs++ ensures the result is a standalone tab, keeping your core workspace clean.

When Focus Guard NTP is enabled: if you close an active tab, Tabs++ redirects focus to a clean New Tab Page instead of jumping to the nearest tab. This prevents accidentally re-focusing a previously hibernated protected tab.

Enable via the Focus Guard toggle in the popup.

Keyboard Shortcuts

ShortcutPlatformAction
Ctrl+Shift+KWindows / LinuxToggle the Command Palette.
Cmd+Shift+KmacOSToggle the Command Palette.
Ctrl+Shift+HWindows / LinuxHibernate all background tabs globally.
Cmd+Shift+HmacOSHibernate all background tabs globally.

Palette Navigation

KeyAction
>Enter Action Mode (command prefix).
!Enter Bang Mode (external search prefix).
Arrow Up/DownNavigate result list.
EnterActivate selected result or copy smart tool output.
EscapeClose palette or cancel pending command.
Shift+ClickOpen link in Peek window (on any page).
Customizing Shortcuts: You can remap both shortcuts at chrome://extensions/shortcuts.

Advanced Workspace Logic

Eviction Graveyard

When moving dozens of tabs at once, Chrome can trigger race conditions. The Eviction Graveyard is a race-condition buffer that tracks tabs in the process of being restored or moved, preventing "ghost" tabs or infinite restoration loops.

Group Closure Tracker

When closing tabs individually, Tabs++ must distinguish between "user is closing one tab" and "user is closing the entire group." The Group Closure Tracker counts how many tabs from a group are closed within a 250ms window. If all tabs are closed (deliberate full-group close), the tabs go to the vault. If only one is closed, it gets restored.

Window Launch Lock

When launching a Tab Set into a new window, Tabs++ uses a Window Launch Lock that suppresses the auto-grouping engine for all tabs in that window. This prevents the auto-grouping engine from racing against the set's own grouping logic.

Ghost Group Prevention

When closing or replacing a workspace, Tabs++ manually disassembles every tab group before closing the tabs. This prevents Chrome's native "Restore Tab Group" feature from saving redundant duplicates to history.

Recreation Registry

When restoring a tab into a group, Tabs++ uses a Recreation Registry to cache group-creation promises. This prevents duplicate API calls when multiple tabs are being restored into the same group simultaneously.

Baseline Reconciliation

After a browser restart, Chrome assigns new Tab IDs but retains the same URLs. Tabs++ performs a URL-First Reconciliation pass: for each stored baseline whose old Tab ID no longer exists, it checks whether any living tab shares the same canonical URL. If yes, the baseline is re-bound to the new Tab ID — protection is fully preserved across restarts.

Privacy & Data Integrity

Tabs++ is built for local-first privacy. Your browsing habits stay on your machine.

  • No Syncing: Your Workspace Sets, Group Baselines, and Vault snapshots are stored locally using chrome.storage.local. They are never uploaded to any cloud service.
  • No Tracking: Tabs++ does not include analytics, telemetry, or any third-party data collection.
  • Search Isolation: Search suggestions use the public Google Suggest API via HTTPS. No account data or authentication is shared.
  • History Access: The palette searches your local Chrome History for convenience, but this data never leaves your browser context.
  • No External Servers: Tabs++ communicates with no external servers other than the Google Suggest API (for palette search suggestions).

Technical Architecture

ManifestV3 (Service Worker)
BackgroundService worker (background.js) — event-driven, modular imports
Content ScriptInjected into all pages (content.js) — renders Command Palette UI via Shadow DOM
New Tab PageOverrides Chrome NTP (ntp.html, ntp.js, ntp.css)
PopupExtension toolbar popup (popup.html, popup.js)
StateCentral reactive state module (state.js) — Maps, Sets, and sync helpers
ServicestabService, paletteService, setService, peekService, pomoService
Storagechrome.storage.local — baselines, settings, vault, tab sets, NTP preferences
Sync StrategyDebounced writes (2-second buffer) to avoid storage thrashing
ThreadingEvent-driven triggers for chrome.tabs.onCreated, onUpdated, onRemoved
Permissionstabs, storage, tabGroups, history, bookmarks, sessions, alarms, browsingData, scripting, notifications, downloads