Snapshot and restore your browser tabs instantly. Works in incognito.
SnapTabs is a Chrome extension that saves your open tabs as sessions — including tab groups, pinned tabs, and incognito tabs — so you can close everything and restore them later.
Alt+Shift+S to snapshot all tabs instantly| Main View | Settings |
|---|---|
git clone https://github.com/rc22-rahul/SnapTabs.git
cd snaptabs
npm install
npm run build
Then load the extension in Chrome:
chrome://extensions.output/chrome-mv3 directorynpm run dev # Start dev server with hot reload
npm run build # Production build
npm run zip # Package for distribution
npm test # Run unit tests
npm run test:watch # Run unit tests in watch mode
npm run test:coverage # Run unit tests with coverage
npm run test:e2e # Run E2E tests (requires build first)
npm run test:e2e:debug # Run E2E tests in debug mode
Popup (Svelte UI) ──sendMessage──► Background (Service Worker)
│
Chrome APIs
(tabs, windows,
storage, tabGroups)
All tab-creating operations go through the background service worker. The popup sends messages and receives responses — it never calls chrome.tabs.create() directly, because the popup closes the instant Chrome creates or focuses a tab.
Data is stored locally using chrome.storage.local (persistent) and chrome.storage.session (ephemeral). Nothing is sent to external servers.
src/
├── assets/ # SVG icon source
├── components/ # Svelte UI components
├── entrypoints/
│ ├── background.ts # Service worker (message handler, events)
│ └── popup/ # Extension popup (Svelte app)
├── lib/
│ ├── types.ts # Interfaces, constants, helpers
│ ├── storage.ts # Chrome storage CRUD
│ └── tabs.ts # Tab capture/restore logic
└── public/
└── icon/ # Extension icons (16, 32, 48, 128 PNG)
tests/ # Unit tests (Vitest)
├── setup.ts # Chrome API mocks
├── types.test.ts
├── storage.test.ts
└── tabs.test.ts
e2e/ # E2E tests (Playwright)
├── playwright.config.ts
├── fixtures/ # Browser + extension launch fixture
├── helpers/ # Storage seeding utilities
└── tests/ # Test specs (9 files, 54 tests)
| Permission | Why |
|---|---|
tabs |
Query and create tabs for snapshot and restore |
tabGroups |
Read and recreate tab group names, colors, and state |
storage |
Persist sessions and settings locally |
contextMenus |
Right-click "Save all tabs" option |
See CONTRIBUTING.md.
SnapTabs stores all data locally on your device. No data is sent to external servers. See PRIVACY.md for details.