Skip to content

Repository files navigation

TabZen

A local-first tab workspace manager for Chrome. Save messy browser sessions, sort them into color-coded spaces, and free up RAM, all without sending a single byte to any server.

License: MIT Platform: Chrome Manifest V3 Built with React Storage: local only

TabZen dashboard — schematic preview, tab titles and URLs blurred for privacy

What it is

TabZen turns the new-tab page and the Chrome side panel into a calm place to manage open tabs. Instead of hoarding 60 live tabs across windows, you snapshot a set of them into a session, file sessions into spaces (Dev, Media, Work, and so on), and reopen them later in one click. Tabs you are not using can be put to sleep to reclaim memory, and the ones you care about can be locked so they never get closed by accident.

It is a personal productivity tool, built from scratch, with one hard rule: your data never leaves your machine. There is no account, no sync server, and no network request. Everything lives in chrome.storage.local, and you can export or import all of it as a single JSON file at any time.

Features

Spaces and sessions

  • Color-coded spaces to separate contexts (work, media, learning, personal).
  • Save the current window as a session in one action.
  • Save by existing Chrome tab groups, keeping each group as its own session.
  • Save and close everything at once to clear the window without losing it.
  • Sessions hold named groups of tabs; drag tabs between groups, sessions, and spaces.

Sorting

  • Smart auto-classify files open tabs into the right space using a local keyword heuristic (no AI service, no network).
  • Sort by domain buckets a noisy window into one session per site.
  • Duplicate detection prevents saving the same URL into a session twice.

Tab memory tools

  • Put idle tabs to sleep, or suspend all background tabs at once, with an estimate of the RAM reclaimed.
  • Merge duplicate open tabs and keep only one.
  • Lock important tabs to protect them from being closed or suspended.

Views

  • Now: live list of open tabs plus your saved spaces and sessions.
  • Stats: weekly metrics and a 7x24 activity heatmap, built from a local event log.
  • Archive: sessions you have not touched in a while move here automatically and can be restored.
  • Command palette on ⌘K / Ctrl+K for fast navigation.
  • Seven themes, from warm dark to OLED black to paper light.

Your data, your control

  • Export all spaces, sessions, and settings to a timestamped JSON backup.
  • Import a backup to restore everything on a new machine.

Surfaces

TabZen shows up in four places, all backed by the same data:

Surface What you get
New tab The full dashboard replaces the default new-tab page
Side panel The dashboard docked beside any page
Toolbar popup A compact quick-save panel
Context menu Right-click to open TabZen in the side panel

Install (load unpacked)

TabZen is a Vite-built extension, so you build it once and load the output folder.

git clone https://github.com/karpovantonme/tabzen.git
cd tabzen
npm install
npm run build      # produces the loadable extension in dist/

Then in Chrome:

  1. Open chrome://extensions.
  2. Turn on Developer mode (top right).
  3. Click Load unpacked and select the dist/ folder.
  4. Open a new tab, or pin TabZen and click the icon.

To update after pulling changes, run npm run build again and hit the reload icon on the extension card.

Develop

npm run dev        # Vite dev server for fast UI iteration
npm run build      # bundle into dist/ for loading into Chrome
npm run preview    # preview the production build

The UI runs in a normal browser tab during npm run dev. The Chrome APIs (tabs, storage, tab groups, side panel) are guarded, so the app degrades gracefully outside the extension context, which keeps iteration fast. Reload the unpacked extension to test the real Chrome integrations.

Privacy

TabZen requests only the permissions it needs to do its job, and nothing that touches the network:

Permission Why
tabs Read and act on open tabs (save, close, focus, sleep)
storage Persist your spaces and sessions in chrome.storage.local
tabGroups Save sessions grouped by your existing Chrome tab groups
sidePanel Show the dashboard in Chrome's side panel
contextMenus Right-click entry to open the side panel

There are no host permissions, no fetch calls, and no analytics. The "stats" you see are computed locally from an event log that also stays in local storage.

Tech

  • React 19 with hooks
  • Zustand for state, persisted to chrome.storage.local
  • Vite 8 build, two entry points (dashboard and popup)
  • Tailwind CSS v4 with a CSS-variable theme system
  • nanoid for ids
  • Chrome Manifest V3, service worker background script

Status

Personal project, currently at extension version 0.2.0. It is used daily and built entirely by hand. Issues and ideas are welcome.

A note on language

The interface is currently in Russian. The codebase, this README, and all docs are in English, and the architecture is ready for full i18n.

License

MIT © 2026 Anton Karpov

Author

Built by Anton Karpov. Website: karpovanton.com

About

TabZen — a local-first tab workspace manager for Chrome (Manifest V3). Spaces, sessions, smart local sorting, tab memory tools. No servers, no tracking.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages