![Tab Tamer](https://cdn.slatesource.com/3/8/5/38523d40-46c4-44fc-8595-1fa9da1c8d12.webp)

# Tab Tamer

- [Made in Slatesource](https://slatesource.com/@steph/tab-tamer)
- By [Steph](https://slatesource.com/@steph)
- Created on Jul 20, 2026

## TabTab TamerTamer

I had 90 tabstabs openopen and no intentionintention of readingreading any of them. So I builtbuilt the thingthing that closescloses them for you and tellstells you what you lostlost. TwoTwo eveningsevenings, oneone weekendweekend morningmorning, and it has been runningrunning everever sincesince withoutwithout me touchingtouching it.

![Gallery image 1](https://cdn.slatesource.com/c/9/a/c9a8ac64-51ce-4b9b-9e59-6c50ec5bcc65.webp)

![Gallery image 2](https://cdn.slatesource.com/4/f/1/4f1f24a7-8f38-4198-9239-4eeae3a2369b.webp)

![Gallery image 3](https://cdn.slatesource.com/5/3/8/538ca51e-37e3-4928-a46c-eb1e17a00073.webp)

javascript

1

2

3

4

5

```
const stale = tabs.filter(t => now - t.lastAccessed > WEEK)
const grouped = Object.groupBy(stale, t => new URL(t.url).hostname)
await archive.write(grouped)
await Promise.all(stale.map(t => browser.tabs.remove(t.id)))
```

[The API this is built on](https://developer.chrome.com/docs/extensions/reference/api/tabs?utm_source=slatesource)

# What should it learn to do next?

Log in to vote