Skip to content

binfalse/tab-zero

Repository files navigation

Tab Zero

Filter, hunt, and kill open tabs. Get to zero.

Tab Zero is a browser extension for Chrome and Firefox that brings inbox-zero discipline to your tab bar. Every open tab is a micro-decision you postponed — Tab Zero helps you find and eliminate them fast.

Tab Zero icon


Features

  • Live badge on the toolbar icon shows window tabs / total tabs at a glance, updating automatically as you open and close tabs
  • Instant full-text filter — type anything (jira, github.com, window 2) and the list narrows in real time, with matches highlighted
  • Filter by window — restrict the list to a specific browser window via the dropdown
  • Match count — always shows how many tabs match the current filter
  • Jump to tab — click a result (or the button) to switch directly to that tab and window
  • Close individual tabs button per row, without leaving the popup
  • Close all matching — one click to bulk-close every tab that matches the current filter
  • Works in Chrome and Firefox

Installation

Chrome

  1. Download the latest tab-zero-extension.zip from the Releases page
  2. Unzip it
  3. Go to chrome://extensions
  4. Enable Developer mode (toggle in the top-right corner)
  5. Click Load unpacked and select the tab-zero-extension/ folder

Firefox

  1. Download tab-zero-extension.zip from the Releases page
  2. Go to about:debugging#/runtime/this-firefox
  3. Click Load Temporary Add-on
  4. Select the zip file (or any file inside the unzipped folder)

Note: Firefox 128 or later is required for Manifest V3 support. Temporary add-ons are removed when Firefox restarts. For a permanent install, the extension must be signed via addons.mozilla.org.


Development

Prerequisites

  • Node.js 20+
  • npm

Setup

git clone https://github.com/your-username/tab-zero.git
cd tab-zero
npm install

Available commands

npm test        # run the Jest unit test suite
npm run lint    # lint with ESLint
npm run lint:fix  # auto-fix lint issues
npm run package # build tab-zero-extension.zip

Project structure

tab-zero-extension/   # the browser extension
  manifest.json
  background.js       # service worker — keeps the badge in sync
  popup.html / .css / .js   # the popup UI
  lib/
    utils.js          # pure functions shared between extension and tests
  icons/              # 16 · 32 · 48 · 128 px PNGs
tests/
  utils.test.js       # escapeHtml, highlight
  filter.test.js      # filterTabs (title, URL, window label)
  background.test.js  # formatBadgeText, formatBadgeTitle
.github/
  workflows/
    ci.yml            # lint → test → package artifact on every push

CI

Every push triggers a GitHub Actions pipeline that lints the source, runs the full test suite, and publishes a release:

  • Branch push → updates the rolling Latest Build pre-release with a fresh zip, so there is always a ready-to-install build on the Releases page
  • Version tag (v1.0.0, v1.2.3, …) → creates a proper versioned GitHub Release with auto-generated release notes

To cut a release, just push a tag: git tag v1.0.0 && git push --tags.


Contributing

Pull requests are welcome. Please make sure npm test and npm run lint both pass before opening a PR.


Built with Claude

This extension was developed with Claude by Anthropic — the code, tests, CI pipeline, and this README were all produced in a single collaborative session using Claude's Cowork mode.


License

MIT — © Martin Scharm

About

Filter, hunt, and kill open tabs.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors