DEV Community

Misbah Bagwan
Misbah Bagwan

Posted on Fully Autonomous

Tab Debt: Make Room for What Matters

Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady Submission 🦥

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady

What I Built
Tab Debt is an AI-assisted Chrome extension that helps clean up inactive and duplicate browser tabs without forcing users to decide manually what to keep.

Many of us keep dozens of Chrome tabs open “just in case.” Over time, those tabs consume browser resources, occupy screen space, increase cognitive load, and distract us from the task we are currently trying to complete.

The hardest part is not closing a tab. It is deciding whether the tab might become important later.

Tab Debt gives users a safer way to let go:

Users can protect important URLs from cleanup.
The extension scans open tabs across Chrome windows.
Duplicate tabs are detected and removed.
Inactive tabs can be cleaned up.
Before closing tabs, the extension generates a short AI summary for each one.
The summaries are saved as reusable notes.
A JSON ledger of cleaned tabs is downloaded for future reference.
Users can reopen a saved tab whenever they need it again.
The goal is simple: reduce tab clutter while preserving the context users are afraid to lose.

Demo

The project is a Chrome extension, so the recommended demo is a screenshot showing :

Several duplicate and inactive tabs open.
Important URLs added to the protected list.
The Clean my tabs button being used.
Duplicate or stale tabs being removed.
AI-generated tab summaries appearing in the saved notes section.
The exported tab ledger being downloaded.
Code
The source code is available in the Tab Debt GitHub repository.

Before tab cleaning :-

After tab cleaning :-

Important parts of the implementation include:

  1. Main dashboard
  2. Tab cleanup logic
  3. Protected-tab filtering
  4. Background cleanup service
  5. Gemma summarization integration
  6. Chrome extension manifest
  7. Storage utilities

Code
GitHub: https://github.com/Farkhanda-Dalal/TAB_DEBT

How I Built It
Tab Debt is built as a Manifest V3 Chrome extension using:

  1. React
  2. TypeScript
  3. Vite
  4. Chrome Extensions APIs
  5. Chrome Storage API
  6. Chrome Tabs API
  7. Chrome Scripting API
  8. Chrome Downloads API
  9. Gemma 2 2B IT
  10. Hugging Face Inference API

The interface is built with React and TypeScript. Vite provides the development and build workflow, while the Chrome Manifest V3 service worker handles the cleanup operation in the background.

The extension works in the following way:

  • The user adds important URLs to an “untouchable” list.
  • The background service queries open Chrome tabs.
  • Active tabs, protected URLs, extension pages, and tabs without usable URLs are excluded.
  • Remaining tabs are grouped by URL to identify duplicates.
  • Inactive or duplicate tabs are selected for cleanup.
  • The extension extracts a limited amount of visible page text.
  • The page title and extracted text are sent to Gemma.
  • Gemma produces a concise one-sentence summary.
  • The summary and original URL are stored as a saved note.
  • The tab is closed and a JSON ledger is downloaded so the user can recover the cleaned-up context.
  • We chose open-source and open-weight tools because the project is fundamentally about user control and reducing unnecessary complexity. React, TypeScript, Vite, and the Chrome extension platform provided a lightweight foundation. Gemma gave us a compact language model capable of summarizing pages without requiring us to build a model from scratch.

Why Open Innovation Matters
This is a problem many of our friends and teammates struggle with. We keep tabs open because we are afraid that closing one means losing an important idea, reference, task, or piece of research.

The result is a browser full of unfinished decisions.

Open innovation made it possible to combine several accessible technologies into a focused tool:

  • An open web extension platform for controlling browser tabs.
  • Open-source frontend tooling for building a lightweight interface.
  • An open-weight AI model for generating summaries.
  • Local browser storage for keeping protected URLs and saved notes.
  • A transparent JSON ledger that users can inspect and keep themselves.
  • A closed API could provide summarization, but open innovation gives us more flexibility over how the complete workflow is designed. We can decide what data is sent for summarization, how much page content is extracted, how protected tabs are handled, and how users recover their information after cleanup.

Most importantly, the user is not forced to choose between keeping every tab open and losing everything. Tab Debt preserves a lightweight memory of the tab before closing it.

The Lazy Payoff
Suppose a user has 20 tabs to review and spends approximately 3–4 minutes thinking through each tab:

20 tabs × 3 minutes = 60 minutes
20 tabs × 4 minutes = 80 minutes
That means manually deciding what to keep can consume approximately 1–1.3 hours.

With Tab Debt, the user can maintain a protected list, click one button, and let the cleanup service identify duplicates and inactive tabs. If the cleanup takes approximately 1–2 minutes, the estimated saving is:

58–79 minutes saved
Approximately 97.5%–98.3% less decision time

For a general estimate, Tab Debt can reduce the manual tab-review effort by roughly 95%–98%, depending on the number of tabs and how long the user normally spends evaluating each one.

The extension currently measures tabs scanned, duplicates closed, and protected tabs skipped. It reduces tab count and browser clutter, Therefore, the RAM benefit should be described as an expected reduction in browser resource pressure rather than a measured number.

Built by
Farkhanda · Dev: @7farkhanda
Misbah · Dev: @misbah_bagwan

Prize Categories
Gemma

Top comments (1)

Collapse
 
7farkhanda profile image
Farkhanda Dalal •

Had a blast building this with you.