Which tab is eating your memory?

MemTab puts a traffic light on every tab's favicon. Green while a tab is healthy, red when it isn't — so a leaking tab announces itself instead of hiding behind thirty others.

Free and MIT licensed · No tracking, no analytics, no network requests

See it

Pick a style and a palette. These are the extension's real shapes — the geometry is taken from its renderer when this page is built.

Style
Colours
Light
DocsAnalyticsEditor
DocsAnalyticsEditor
DocsAnalyticsEditor
DocsAnalyticsEditor
Dark
DocsAnalyticsEditor
DocsAnalyticsEditor
DocsAnalyticsEditor
DocsAnalyticsEditor

In the extension these live on a settings page with a two-handle threshold slider, per-level colour pickers with hex entry, and a preview against your real tab strip.

Built to stay out of the way

Your favicon, respected

Most versions of this idea replace the site's icon with a coloured square, and every tab starts looking the same. MemTab draws around the real favicon instead, at a resolution Chrome won't turn blocky.

Thresholds that are yours

Set the warning and high marks in megabytes, or as a share of your device's heap limit so the same setting means the same thing on every machine you sync to.

Any colours you like

Stoplight by default. One click for a colour-blind-safe palette, or pick your own hex values. The Bar style encodes the level by length too, so it reads with no colour perception at all.

Always visible, never noisy

Every tab shows its level — green included, so you know it's working. Prefer quiet? One toggle marks only the tabs that need attention. Hysteresis stops a tab on a boundary from flickering, and any site can be skipped entirely.

Nothing leaves your machine

No analytics, no telemetry, no network requests at all — not even to fetch a favicon. No build step either, so the source you read is the code that runs.

Actually open source

MIT licensed, no dependencies, 65 tests and a lint that checks the things a normal linter can't. Read it in an afternoon.

What it actually measures

Worth knowing before you install, because the number is narrower than "how much memory this tab uses".

MemTab reads performance.memory — the only per-page memory figure a Chrome extension can get on the stable channel. It reports the JavaScript heap of the renderer process serving a site.

  • It isn't the tab's total memory. The DOM, images, decoded bitmaps, canvas and the compositor are all excluded — usually most of what a tab really costs. Real usage is typically two to four times higher.
  • Tabs on the same site share one reading. Chrome puts them in one renderer process with one heap, so ten GitHub tabs show the same number.
  • Background tabs update slowly. Chrome throttles hidden tabs to about one timer tick per minute, and may freeze or unload them entirely.

So: MemTab is a good leak detector for the tab you're on. Watch one walk from green to red over an afternoon and you've found something. For triaging forty background tabs, Chrome's own Task Manager (Shift + Esc) reads the real per-process figure and MemTab doesn't try to replace it.

Install

Not on the Chrome Web Store yet. Loading it unpacked takes about a minute.

  1. Get the code

    git clone https://github.com/councilOfNine/memtab.git
  2. Open the extensions page

    Go to chrome://extensions and turn on Developer mode in the top right.

  3. Load it

    Click Load unpacked and select the src/ folder. That folder is the extension — there's no build step.

  4. Set your thresholds

    Click the MemTab icon, then Settings. Tabs that were already open need one reload.

Open the repository

Questions

Does this slow my browser down?

Reading the memory figure is a single property access, and the default is once every five seconds per visible tab. Background tabs poll far less often. The interval is configurable, with a one-second floor — anything tighter costs more than it measures and makes Chrome more likely to freeze the tab.

Why does it need access to every site?

Because it has to run on whatever page you're looking at, and it changes that page's favicon. That access is used for exactly two things: reading the memory figure, and injecting into tabs that were already open when you installed it. It never reads page content and never sends anything anywhere.

Nothing happens on some pages.

Chrome forbids extensions from running on chrome:// pages, the Web Store, the PDF viewer and other extensions' pages. Some sites also have a security policy that blocks generated favicons — there MemTab shows a small dot in the page corner instead. Click the toolbar icon and it will tell you which case you're in.

Will it work in Edge, Brave or Arc?

It should — they're all Chromium, and MemTab uses nothing exotic. It's only tested in Chrome, so if you hit something odd in another browser please open an issue.

Firefox or Safari?

Not currently. performance.memory is Chromium-only, so there's no equivalent number to read. Safari and Firefox deliberately don't expose one.