Auto-close tabs you stopped using, in Firefox and Edge.
A Firefox and Edge extension that groups, closes or unloads tabs you haven’t used for a while. Each tab counts down on its icon; sites you revisit get more time.
- Platform
- Firefox · Edge
- Version
- 1.4
- Data collected
- None
- Role
- Everything
Expiring next
The problem
Tabs pile up because closing them feels risky: what if you still need that one? So they stay, the browser gets slow, and the one tab you want is a pixel wide. TabTTL turns "close it or keep it" into a decision you make once, as a rule, instead of forty times a day.
Use it to
- Keep a research session with dozens of tabs from slowing your browser down.
- Give docs and dashboards you check all day more time than one-off search results.
- Keep pinned tabs and anything playing music or video while the rest expires.
- Let tabs close without worrying: anything tidied up comes back with one click for seven days.
What it does
Live countdown on the icon
The elapsed part of each favicon turns grey like a clock wipe. Or pick a ring, pie, bar or time badge.
Learns your habits
Sites you keep returning to get more time, computed from how long you stay away. Only ever longer, never shorter.
Never loses what matters
Active, pinned and playing tabs never expire. Countdowns pause while you are idle, locked or in another app.
Auto-grouping
Tabs are grouped by site, colored to match the site’s icon. Custom groups bundle several domains under one name.
Undo, always
“Recently tidied up” brings any expired tab back with one click, for seven days.
Private by design
No account, no analytics, no network calls. Statistics are counts on your device, never which tabs.
One alarm, not one timer per tab
Manifest V3 background scripts can be shut down at any time, so in-memory timers are useless. TabTTL keeps every tab's deadline in storage and points a single alarms entry at the earliest expiry, plus a one-minute safety sweep. When the browser wakes the background, it expires what is due and re-aims the alarm.
Drawing on someone else's favicon
A content script disables the page's own <link rel="icon"> elements (it renames them, so they can be restored exactly), draws the original icon on a 32 px canvas and paints the countdown on top. A MutationObserver catches pages that swap their icon for unread counters. Redraws are keyed, so an unchanged frame never costs a PNG encode.
Adaptive lifetimes
For each site, TabTTL keeps the last 20 "time away before coming back" observations from 30 days. Once there are three, it takes the 75th percentile, adds 25 % margin and caps it at four hours. It never goes below your default, and explicit rules always win.
Tested against a fake clock
The core runs against a fake clock and a fake browser API in Vitest, and Playwright drives real Firefox and Chromium builds through the expiry flows.