A cross-browser tab manager for Chrome, Firefox, and Edge. Save, organize, and restore your tab sessions, with optional cloud sync (end-to-end encrypted) and AI-powered grouping (coming soon).
Install: Chrome Web Store (Edge, Brave, Vivaldi and Arc install it from there too).
- Node.js 24 (CI and store builds run on Node 24 — see
.github/workflows/) - pnpm (
npm i -g pnpm) — seepackageManagerinpackage.jsonfor the exact pinned version
git clone https://github.com/lbragile/TabMerger.git
cd TabMerger
pnpm installCopy environment files and fill in your keys:
cp .env.example .env.local
cp packages/extension/.env.example packages/extension/.env.local
cp packages/web/.env.example packages/web/.env.localBrowser extension (Chrome, with HMR):
pnpm dev:extensionThen load packages/extension/.output/chrome-mv3-dev/ as an unpacked extension in chrome://extensions.
Firefox:
pnpm dev:extension:firefoxWeb app (Next.js):
pnpm dev:webOpens at http://localhost:3000.
Both at once:
pnpm devpnpm build:extension # Chrome MV3 build in packages/extension/.output/
pnpm build:web # Next.js production build in packages/web/.next/
pnpm zip # Chrome/Firefox/Edge store zips in packages/extension/.output/pnpm lint # ESLint across extension + web
pnpm type-check # TypeScript check across all packages
pnpm test # Vitest unit tests (extension, web, shared)
pnpm test:e2e # Playwright E2E (web app)
pnpm test:visual # Playwright visual regression (extension + web)
pnpm scan-secrets # Check staged files for API keys / PIISee CLAUDE.md for the full command reference, including extension-specific integration/E2E
test commands.
TabMerger/
packages/
extension/ # WXT browser extension (React 18, Tailwind, shadcn/ui, Zustand, TanStack Query)
web/ # Next.js 15 marketing site + dashboard (Supabase, Stripe, Claude AI)
shared/ # Shared TypeScript types and constants
demo/ # Remotion + Playwright walkthrough-video pipeline (dev tooling, not shipped)
supabase/ # Database migrations and RLS policies
docs/ # Architecture, feature roadmap, and integration guides
scripts/ # Dev tooling (secret scanning, setup helpers)
.github/ # CI/CD workflows (ci.yml, publish.yml, deploy-web.yml)
.claude/ # AI agent definitions for development
See docs/ for architecture, the release process, and other design notes.
| Tier | Price | Features |
|---|---|---|
| Free | $0 | 5 groups · 50 tabs · local storage |
| Pro | $3.99/mo | Unlimited groups + tabs · end-to-end encrypted cloud sync · sessions |
| Pro AI | $7.99/mo | Pro + AI grouping · smart naming · tab previews — coming soon, not yet purchasable |
main is the default branch; every push runs the full CI gate suite but does not
cut a release. Releases (via semantic-release) are currently cut only from the beta
branch, publishing prerelease builds to a private Chrome Web Store beta listing. See
docs/PUBLISHING.md and docs/RELEASE_SANITY_CHECK.md.
See .github/CONTRIBUTING.md for the contribution workflow and
commit message conventions, and docs/ for architecture decisions, roadmap, and
integration guides.
Before committing, the pre-commit hook scans for secrets and API keys. Run it manually:
pnpm scan-secretsCopyright (c) 2020-2026 Lior Bragilevsky. All rights reserved. You may read and review this code, and contributions are welcome (see CONTRIBUTING); copying, reusing, or redistributing it requires written permission. See LICENSE.md (PolyForm Strict 1.0.0 plus the terms above it). Using the TabMerger extension itself is covered by the Terms of Service.