lbragile/TabMerger

TabMerger is a cross-browser extension that stores your tabs in a single place to save memory usage and increase your productivity.

TypeScript

190

739 commits

updated Oct 17, 2026

See the code

See what people are saying

SourceMessageScoreDate

GitHub - lbragile/TabMerger: TabMerger is a cross-browser extension that stores your tabs in a single place to save memory usage and increase your productivity. (r/coolgithubprojects)

1

Oct 17, 2026

TabMerger v3 – A cross browser extension to organize and save tab groups (r/webdev)

I'm sharing [**TabMerger**](https://tabmerger.com/), a browser extension I originally built to make managing lots of open tabs easier. I've recently rewritten it from the ground up and am actively working on it. # Why I Built It When you have dozens or even hundreds of open tabs, keeping everything…

1

Oct 17, 2026

Does a source-available license discourage GitHub contributions/engagement? (r/github)

I maintain an open-source project ([TabMerger](https://github.com/lbragile/Tabmerger)) under a [source-available license](https://github.com/lbragile/TabMerger/blob/main/LICENSE.md) rather than a traditional OSI-approved open-source license, and I’m starting to wonder whether this is discouraging…

1

Oct 17, 2026

How long to 500 Stars? 👀 (r/github)

https://preview.redd.it/r159qfh24yvh1.png?width=800&format=png&auto=webp&s=76f5556606dd98b63aeb781bbb157b72e7fbdc5b [https://github.com/lbragile/TabMerger](https://github.com/lbragile/TabMerger)

0

Oct 17, 2026

README

TabMerger

CI Coverage Latest release semantic-release: conventional commits License: source-available GitHub stars Last commit

Chrome Web Store
Chrome
Firefox Add-ons
Firefox
Microsoft Edge Add-ons
Edge
StableStable version on the Chrome Web StoreStable version on Firefox Add-onsStable version on Microsoft Edge Add-ons
BetaBeta version on the Chrome Web StoreBeta version for FirefoxBeta version for Edge (the Chrome Web Store beta)
UsersChrome Web Store usersFirefox Add-ons usersMicrosoft Edge Add-ons users
RatingChrome Web Store ratingFirefox Add-ons ratingMicrosoft Edge Add-ons rating
ReviewsChrome Web Store review countFirefox Add-ons review countMicrosoft Edge Add-ons review count

Each 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.


Star History

Star History Chart

Getting started

Prerequisites

  • Node.js 24 (CI and store builds run on Node 24 — see .github/workflows/)
  • pnpm (npm i -g pnpm) — see packageManager in package.json for the exact pinned version

Install

git 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

Run

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

Build for production

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/

Quality checks

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.


Project structure

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.


Releases and branches

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.


Accessibility

See ACCESSIBILITY.md for what we aim for, the known limitations, and how to report an accessibility barrier.


Contributing

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

License

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.

chrome-extension
edge-extension
firefox-extension
tab-management

lbragile/TabMerger

TabMerger is a cross-browser extension that stores your tabs in a single place to save memory usage and increase your productivity.

TypeScript

190

739 commits

updated Oct 17, 2026

See the code

See what people are saying

SourceMessageScoreDate

GitHub - lbragile/TabMerger: TabMerger is a cross-browser extension that stores your tabs in a single place to save memory usage and increase your productivity. (r/coolgithubprojects)

1

Oct 17, 2026

TabMerger v3 – A cross browser extension to organize and save tab groups (r/webdev)

I'm sharing [**TabMerger**](https://tabmerger.com/), a browser extension I originally built to make managing lots of open tabs easier. I've recently rewritten it from the ground up and am actively working on it. # Why I Built It When you have dozens or even hundreds of open tabs, keeping everything…

1

Oct 17, 2026

Does a source-available license discourage GitHub contributions/engagement? (r/github)

I maintain an open-source project ([TabMerger](https://github.com/lbragile/Tabmerger)) under a [source-available license](https://github.com/lbragile/TabMerger/blob/main/LICENSE.md) rather than a traditional OSI-approved open-source license, and I’m starting to wonder whether this is discouraging…

1

Oct 17, 2026

How long to 500 Stars? 👀 (r/github)

https://preview.redd.it/r159qfh24yvh1.png?width=800&format=png&auto=webp&s=76f5556606dd98b63aeb781bbb157b72e7fbdc5b [https://github.com/lbragile/TabMerger](https://github.com/lbragile/TabMerger)

0

Oct 17, 2026

README

TabMerger

CI Coverage Latest release semantic-release: conventional commits License: source-available GitHub stars Last commit

Chrome Web Store
Chrome
Firefox Add-ons
Firefox
Microsoft Edge Add-ons
Edge
StableStable version on the Chrome Web StoreStable version on Firefox Add-onsStable version on Microsoft Edge Add-ons
BetaBeta version on the Chrome Web StoreBeta version for FirefoxBeta version for Edge (the Chrome Web Store beta)
UsersChrome Web Store usersFirefox Add-ons usersMicrosoft Edge Add-ons users
RatingChrome Web Store ratingFirefox Add-ons ratingMicrosoft Edge Add-ons rating
ReviewsChrome Web Store review countFirefox Add-ons review countMicrosoft Edge Add-ons review count

Each 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.


Star History

Star History Chart

Getting started

Prerequisites

  • Node.js 24 (CI and store builds run on Node 24 — see .github/workflows/)
  • pnpm (npm i -g pnpm) — see packageManager in package.json for the exact pinned version

Install

git 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

Run

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

Build for production

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/

Quality checks

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.


Project structure

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.


Releases and branches

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.


Accessibility

See ACCESSIBILITY.md for what we aim for, the known limitations, and how to report an accessibility barrier.


Contributing

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

License

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.

chrome-extension
edge-extension
firefox-extension
tab-management

Significant stargazers

Justin de Vesine

75 followers · starred Nov 2021