TabMerger is a cross-browser extension that stores your tabs in a single place to save memory usage and increase your productivity.
See the codeEach badge links to its listing. The stable badges show the version that is live on that store right now; a newer release can still be in the store's review and appears once the store publishes it. Users, ratings and review counts are read live from each store (for Edge and the Firefox review count, from the public JSON their listing pages use), so they can trail the listing by a few hours of caching. The beta badges show the latest beta release on GitHub, which the Chrome Web Store may still be reviewing. The beta is invite-only: its Chrome listing opens only for members of the tester group, Edge installs that same Chrome beta, and the Firefox beta is installed from the beta guide.
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), Firefox Add-ons, Microsoft Edge Add-ons.
.github/workflows/)npm i -g pnpm) — see packageManager in package.json for the exact pinned versiongit clone https://github.com/lbragile/TabMerger.git
cd TabMerger
pnpm install
Copy 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.local
Browser extension (Chrome, with HMR):
pnpm dev:extension
Then load packages/extension/.output/chrome-mv3-dev/ as an unpacked extension in chrome://extensions.
Firefox:
pnpm dev:extension:firefox
Web app (Next.js):
pnpm dev:web
Opens at http://localhost:3000.
Both at once:
pnpm dev
pnpm 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 / PII
See CLAUDE.md for the full command reference, including extension-specific integration/E2E
test commands. CI runs the extension's visual regression as an informational (non-blocking) check
against Linux baselines; see docs/VISUAL_REGRESSION.md for how to regenerate them.
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.
main is the default branch; every push runs the full CI gate suite. Releases are cut by
semantic-release: stable versions from main (to the public store listings, after a
maintainer approval) and prereleases from the beta branch (to a private Chrome Web Store
beta listing). See
docs/PUBLISHING.md and docs/RELEASE_SANITY_CHECK.md.
See ACCESSIBILITY.md for what we aim for, the known limitations, and how to
report an accessibility barrier.
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-secrets
Copyright (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.
75 followers · starred Nov 2021
TabMerger is a cross-browser extension that stores your tabs in a single place to save memory usage and increase your productivity.
See the codeEach badge links to its listing. The stable badges show the version that is live on that store right now; a newer release can still be in the store's review and appears once the store publishes it. Users, ratings and review counts are read live from each store (for Edge and the Firefox review count, from the public JSON their listing pages use), so they can trail the listing by a few hours of caching. The beta badges show the latest beta release on GitHub, which the Chrome Web Store may still be reviewing. The beta is invite-only: its Chrome listing opens only for members of the tester group, Edge installs that same Chrome beta, and the Firefox beta is installed from the beta guide.
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), Firefox Add-ons, Microsoft Edge Add-ons.
.github/workflows/)npm i -g pnpm) — see packageManager in package.json for the exact pinned versiongit clone https://github.com/lbragile/TabMerger.git
cd TabMerger
pnpm install
Copy 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.local
Browser extension (Chrome, with HMR):
pnpm dev:extension
Then load packages/extension/.output/chrome-mv3-dev/ as an unpacked extension in chrome://extensions.
Firefox:
pnpm dev:extension:firefox
Web app (Next.js):
pnpm dev:web
Opens at http://localhost:3000.
Both at once:
pnpm dev
pnpm 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 / PII
See CLAUDE.md for the full command reference, including extension-specific integration/E2E
test commands. CI runs the extension's visual regression as an informational (non-blocking) check
against Linux baselines; see docs/VISUAL_REGRESSION.md for how to regenerate them.
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.
main is the default branch; every push runs the full CI gate suite. Releases are cut by
semantic-release: stable versions from main (to the public store listings, after a
maintainer approval) and prereleases from the beta branch (to a private Chrome Web Store
beta listing). See
docs/PUBLISHING.md and docs/RELEASE_SANITY_CHECK.md.
See ACCESSIBILITY.md for what we aim for, the known limitations, and how to
report an accessibility barrier.
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-secrets
Copyright (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.
75 followers · starred Nov 2021