<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anshuman</title>
    <description>The latest articles on DEV Community by Anshuman (@solusops).</description>
    <link>https://dev.to/solusops</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4196413%2Fb215ea08-b664-425d-95c4-d14f06990a10.png</url>
      <title>DEV Community: Anshuman</title>
      <link>https://dev.to/solusops</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/solusops"/>
    <language>en</language>
    <item>
      <title>Get rid of Tab-Hell</title>
      <dc:creator>Anshuman</dc:creator>
      <pubDate>Tue, 27 Oct 2026 11:01:33 +0000</pubDate>
      <link>https://dev.to/solusops/get-rid-of-tab-hell-5946</link>
      <guid>https://dev.to/solusops/get-rid-of-tab-hell-5946</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;During my undergraduate years, I accumulated more than &lt;strong&gt;1,000 browser tabs&lt;/strong&gt;. Research papers, GitHub repositories, documentation, tutorials, and articles I was absolutely going to read later.&lt;/p&gt;

&lt;p&gt;Then browser crashes wiped out most of the collection.&lt;/p&gt;

&lt;p&gt;Naturally, I started collecting tabs again.&lt;/p&gt;

&lt;p&gt;The problem was familiar: opening a page was easy. Deciding where to put it, finding it again, and turning a pile of tabs into something useful required an afternoon I kept postponing.&lt;/p&gt;

&lt;p&gt;I wanted to ask my existing AI agent:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Group my research tabs by project. Keep the papers separate from tutorials.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And, when I changed my mind:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Get rid of certain topics. Download a group for later. Revert everything.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That became &lt;strong&gt;Fast-Tabber&lt;/strong&gt;, an open-source Chrome toolkit that gives Codex, OpenCode, Claude Code, and other MCP-compatible agents browser-management tools.&lt;/p&gt;

&lt;p&gt;It handles both open tabs and bookmarks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Group, move, reorder, and activate tabs using Chrome's native operations.&lt;/li&gt;
&lt;li&gt;Search titles, URLs, and cached page text.&lt;/li&gt;
&lt;li&gt;Create and organize bookmark folders, rename entries, and find duplicate URLs.&lt;/li&gt;
&lt;li&gt;Save and reopen tab collections, or save selected tabs as bookmarks.&lt;/li&gt;
&lt;li&gt;Export open tabs, specific groups, bookmark folders, or selected links as TXT or CSV.&lt;/li&gt;
&lt;li&gt;Inspect selected pages through text, links, accessibility information, and screenshots.&lt;/li&gt;
&lt;li&gt;Undo supported changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Grouping keeps the tabs open. Closing tabs or deleting bookmarks requires confirmation. Bookmark operations have their own explicit scope, so a request to tidy tabs does not become permission to reorganize someone's saved links.&lt;/p&gt;

&lt;p&gt;Everything starts in the agent you already use. The Chrome extension also has a small export popup for downloading links directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/4O_hYN37g4g" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The repository README includes the latest launch walkthrough, covering grouping, a targeted move and undo, content search, bookmarks, and CSV export.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/solusops" rel="noopener noreferrer"&gt;
        solusops
      &lt;/a&gt; / &lt;a href="https://github.com/solusops/Fast-Tabber" rel="noopener noreferrer"&gt;
        Fast-Tabber
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Open Source MCP Toolkit that lets AI agents control, search, and organize your browser tabs and bookmarks through natural-language instructions.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Fast-Tabber&lt;/h1&gt;
&lt;/div&gt;

  
    
    &lt;span class="m-1"&gt;fast-tabber-launch.mp4&lt;/span&gt;
  

  

  


&lt;p&gt;Manage Chrome tabs and bookmarks through the AI agent you already use.&lt;/p&gt;
&lt;p&gt;Group tabs by project, find a page from its content, save a collection, organize bookmarks, or export selected links. Fast-Tabber connects Chrome to Codex, OpenCode, Claude Code, and other MCP-compatible agents.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Installation&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;1. Add the Chrome extension&lt;/h3&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Download the &lt;strong&gt;fast-tabber-extension ZIP&lt;/strong&gt; from the &lt;a href="https://github.com/solusops/Fast-Tabber/releases/latest" rel="noopener noreferrer"&gt;latest release&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Extract it into a folder you will keep on your computer.&lt;/li&gt;
&lt;li&gt;Open &lt;code&gt;chrome://extensions&lt;/code&gt; in Chrome and turn on &lt;strong&gt;Developer mode&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Load unpacked&lt;/strong&gt; and select the extracted folder containing &lt;code&gt;manifest.json&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Pin &lt;strong&gt;Fast-Tabber&lt;/strong&gt; to your toolbar for quick access to exports and bookmark permissions.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Keep the extracted folder in place while the extension is installed.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;2. Connect your agent&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;On Windows, install &lt;a href="https://nodejs.org/" rel="nofollow noopener noreferrer"&gt;Node.js 22 or later&lt;/a&gt; and run:&lt;/p&gt;
&lt;div class="highlight highlight-source-powershell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npx &lt;span class="pl-k"&gt;-&lt;/span&gt;y fast&lt;span class="pl-k"&gt;-&lt;/span&gt;tabber&lt;span class="pl-k"&gt;-&lt;/span&gt;toolkit&lt;span class="pl-smi"&gt;@latest&lt;/span&gt; setup&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Choose &lt;strong&gt;Codex&lt;/strong&gt;, &lt;strong&gt;OpenCode&lt;/strong&gt;, or &lt;strong&gt;Claude Code&lt;/strong&gt; when prompted. For…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/solusops/Fast-Tabber" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Fast-Tabber is MIT-licensed. Installation starts with loading the Chrome extension, then connecting your agent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;npx&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;fast-tabber-toolkit&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;latest&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;setup&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The installer supports Windows and lets you choose Codex, OpenCode, Claude Code, or another MCP client. The &lt;a href="https://github.com/solusops/Fast-Tabber#installation" rel="noopener noreferrer"&gt;README&lt;/a&gt; covers extension installation and pairing.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The difficult part was giving an agent useful access to a large browser collection without filling its context with every page.&lt;/p&gt;

&lt;p&gt;The architecture has four parts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;existing agent&lt;/strong&gt; interprets the request and decides what belongs where.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP server&lt;/strong&gt; provides search, local selections, and bulk operations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chrome extension&lt;/strong&gt; executes native tab and bookmark actions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt; stores metadata, cached page text, saved collections, and undo history.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I experimented with local embedding models and a separate generative model inside the toolkit. Eventually, I removed those dependencies. The connected agent already supplied reasoning; putting another model behind the browser tools provided no meaningful improvement.&lt;/p&gt;

&lt;p&gt;The current toolkit has no mandatory model runtime, embedding pipeline. The agent searches, inspects relevant resources, chooses categories, and sends exact assignments to the browser tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Read a page once, reuse its text
&lt;/h3&gt;

&lt;p&gt;Fast-Tabber captures a bounded representation of the first page, including meaningful headings and page text, and caches it locally. It does not follow links or crawl an entire website.&lt;/p&gt;

&lt;p&gt;Search uses SQLite FTS5 with BM25 ranking across titles, URLs, and indexed content. This helps when the detail I remember is inside a page rather than its title. It is keyword-based retrieval; the connected agent supplies the interpretation.&lt;/p&gt;

&lt;p&gt;Cached content can be reused across searches and reopened URLs. A refresh is available when I want a new copy. Individual extraction failures are reported separately, so one inaccessible page does not have to stop the rest of an indexing job.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep large selections local
&lt;/h3&gt;

&lt;p&gt;If a search finds hundreds of resources, the agent should not need hundreds of IDs just to move them.&lt;/p&gt;

&lt;p&gt;Fast-Tabber can keep that selection locally and return a count with a few matches. The agent can combine selections, intersect them, exclude results, and apply one bulk operation to the resulting collection.&lt;/p&gt;

&lt;p&gt;Full listings remain available through pagination or export. Routine organization can work with compact results instead of dumping the browser into chat.&lt;/p&gt;

&lt;h3&gt;
  
  
  Check the browser, not just the request
&lt;/h3&gt;

&lt;p&gt;The toolkit verifies browser mutations against Chrome's resulting state. Supported changes are recorded for undo, allowing the agent to restore an earlier organization.&lt;/p&gt;

&lt;p&gt;Long indexing jobs also expose status and progress. That matters because some MCP clients display progress notifications while others need the agent to check job status.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;My browser collection contains years of interests, projects, and unfinished research. I want control over both the data and the software handling it.&lt;/p&gt;

&lt;p&gt;OpenCode provides an open-source agent harness for this workflow. MCP makes the browser tools reusable across agents, while the extension and local cache remain the same. The model can be chosen at the agent layer instead of being built into Fast-Tabber.&lt;/p&gt;

&lt;p&gt;That also makes the toolkit easier to inspect and change. You can easily review what page information is collected, adapt a browser operation, or add support for another agent without rebuilding a separate chat application.&lt;br&gt;
Bulk indexing and storage stay on the user's computer. An agent using a local model can keep inference on-device, depending on its other integrations.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;I used to postpone browser cleanup because it meant reviewing pages individually, copying URLs, creating folders, moving tabs, and trying not to lose anything useful.&lt;/p&gt;

&lt;p&gt;Fast-Tabber lets me work on the collection through a conversation. I can ask for an initial organization, inspect a group, move a few pages, save the useful set, and export its links.&lt;/p&gt;

&lt;p&gt;The useful part is being able to keep refining it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Keep the tutorials together, but move the documentations into a separate group.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The browser is allowed to stay messy while I work. When I am ready to tidy it, I can delegate the repetitive steps to my agent and keep the decisions that matter.&lt;/p&gt;

&lt;p&gt;For someone who once lost a huge collection of tabs, being able to search, save, export, and reorganize that work is a much better habit than hoping the next browser session survives.&lt;/p&gt;

&lt;p&gt;Built by &lt;a href="https://dev.to/solusops"&gt;@solusops&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I used AI coding agents to build and iterate on Fast-Tabber, and AI assistance to edit this write-up.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
