Tabitha

Save. Manage. Restore.

Save your open tabs with one click. Get them back whenever you want — everything at once, one window, or just one tab.

Chrome Web Store Soon Firefox Add-ons Soon Build it now Source on GitHub

v0.1.0 · ALPHA The session database is still changing shape. Export your sessions from Settings → Backup before you update.

Tabitha 4 sessions · 187 tabs
figma
  • Design system audit

    4 windows· 118 tabs· 2 hr· work
  • Figma plugin research

    2 windows· 41 tabs· 1 day· work
  • Tax documents 2025

    1 window· 22 tabs· 3 day· personal
  • Autosave

    3 windows· 6 tabs· 5 min· autosave
Design system audit 4 windows · 118 tabs
Window 1 · 34 tabs
Type scale — first principles rsms.me
Design Tokens Community Group w3.org
Optical sizing in variable fonts fonts.google.com
Window 2 · 29 tabs
Contrast ratios that actually pass webaim.org
HSL custom properties, revisited css-tricks.com
CtrlK Command palette · 8 commands

Hover a session row — the restore, rename, tag and delete actions appear exactly where the extension puts them.

What it does

Save. Manage. Restore. Stay in flow.

Save

Every open window and tab, under a name you choose — or on a timer you never touch.

Manage

Colour-coded tags, sorting, and one search that reads session names and tab titles together.

Restore

The whole session, a single window, or one tab out of the middle of it.

Stay in flow

Pick up in the same windows, in the same order, where you left.

Restore tabs unloaded

118 tabs back
without 118 page loads

Restoring a big session normally means every tab fetching at once. Tabitha puts each tab back as a stub that carries the real title, URL and icon — the page itself loads the first time you click it.

Sessions are meant to hold hundreds of tabs, so the list view never keeps window data in memory. It reads titles and counts; the actual windows are only pulled out of IndexedDB for the one session you open.

Design system audit Restoring…
Window 1 · 34 tabs
Window 2 · 29 tabs
Window 3 · 31 tabs
Window 4 · 24 tabs
Loaded Waiting for a click

Hands stay on the keyboard

Eight keys, no menu diving

Ctrl K opens a palette with save, duplicate, delete, delete all, export, theme, full view and settings. The rest are single keys.

CtrlK Open the command palette
S Save the current session
R Rename the selected session
F Focus the search box
C Show the current session
E Select the next session
D Select the previous session
Del Delete the selected session

Where your tabs live

Nothing is sent
anywhere

There is no account, no sync server, and no analytics. Sessions sit in your browser's own IndexedDB; settings sit in storage.local. The only way data leaves is a file you export yourself.

  • Export as .tab (compressed) or .tab.json (plain JSON you can read).
  • Keep pages out with match patterns, and leave pinned tabs out of saves.
  • Five shared permissions — tabs, storage, unlimitedStorage, alarms, contextMenus — plus cookies on Firefox, system.display and favicon on Chromium.
  • MIT licensed. Read every line before you load it.

Load it unpacked

Three steps, about a minute

No store listing yet, so you build it yourself. Node 22 and npm are the only requirements.

Clone and install

git clone https://github.com/MithunWijayasiri/Tabitha.git
cd Tabitha
npm install

Build for your browser

npm run build      # Chrome, Edge, Opera → dist/
npm run build:ff   # Firefox → dist/

Point the browser at dist/

Chrome, Edge, Opera — open chrome://extensions, turn on Developer mode, click Load unpacked, pick dist/.

Firefox — open about:debugging, click This Firefox, then Load Temporary Add-on, pick any file in dist/.

Or let web-ext open a clean profile with it already loaded: npm run open / npm run open:ff.

Chrome Firefox Edge Opera