🧠 Grooopy
AI-Powered Tab Grouping for Chrome
Stop drowning in tabs. Let AI organize them for you.
Your tabs, intelligently organized. Locally. Privately. Instantly.
Features • Installation • How It Works • Architecture • Contributing
✨ Features
| Feature | Description |
|---|---|
| 🧠 Semantic Clustering | Uses state-of-the-art NLP embeddings to understand what your tabs are about |
| 🎯 Content-First | Groups by meaning, not just domain. React docs across 5 sites? One group. |
| 📏 Screen-Aware | Adapts grouping density based on your window width |
| 🔒 100% Private | Everything runs locally in your browser. No data leaves your machine. … |
🧠 Grooopy
AI-Powered Tab Grouping for Chrome
Stop drowning in tabs. Let AI organize them for you.
Your tabs, intelligently organized. Locally. Privately. Instantly.
Features • Installation • How It Works • Architecture • Contributing
✨ Features
| Feature | Description |
|---|---|
| 🧠 Semantic Clustering | Uses state-of-the-art NLP embeddings to understand what your tabs are about |
| 🎯 Content-First | Groups by meaning, not just domain. React docs across 5 sites? One group. |
| 📏 Screen-Aware | Adapts grouping density based on your window width |
| 🔒 100% Private | Everything runs locally in your browser. No data leaves your machine. |
| ⚡ One-Click | Click the button. Watch the magic. That’s it. |
| 🎨 Smart Naming | Auto-generates meaningful group names using semantic analysis |
🚀 Installation
⚡ Quick Install (Recommended)
Just want to use it? Download and go:
- Download the latest release (
.zipfile) - Extract the zip to a folder
- Open Chrome → go to
chrome://extensions - Enable Developer Mode (toggle in top right)
- Click "Load unpacked" → select the extracted folder
- Done! Click the 🧠 icon to organize your tabs
⏳ First-time setup: The AI model (~23MB) downloads on first use. This may take 30-60 seconds depending on your internet speed. After that, it’s cached and instant!
🛠️ Install from Source (For Developers)
Want to contribute or customize? Build from source:
# Clone the repository
git clone https://github.com/shubhams2m/grooopy.git
cd grooopy
# Install dependencies
npm install
# Build the extension
npm run build
Then load in Chrome:
- Go to
chrome://extensions - Enable Developer Mode (top right)
- Click Load unpacked
- Select the
grooopyfolder
🏪 Chrome Web Store
Coming soon...
🎬 How It Works
┌──────────────────────────────────────────────────────────────────────────┐
│ YOUR 47 OPEN TABS │
└──────────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────────┐
│ 📄 Content Extraction │
│ • Page titles, meta descriptions, headers, paragraphs │
│ • URL path analysis │
└──────────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────────┐
│ 🧠 AI Embedding Generation │
│ • all-MiniLM-L6-v2 (384-dim sentence embeddings) │
│ • Runs 100% locally via Transformers.js + ONNX/WebAssembly │
└──────────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────────┐
│ 📊 Multi-Signal Similarity Scoring │
│ • Semantic similarity (primary) │
│ • Domain affinity boost │
│ • URL path pattern matching │
└──────────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────────┐
│ 🔗 Agglomerative Hierarchical Clustering │
│ • Bottom-up merging with average linkage │
│ • Adaptive thresholds based on tab count │
│ • Screen-width aware group capacity │
└──────────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────────┐
│ ✨ ORGANIZED TAB GROUPS │
│ 📁 REACT 📁 NEWS 📁 SHOPPING 📁 DOCS │
└──────────────────────────────────────────────────────────────────────────┘
🏗️ Architecture
grooopy/
├── manifest.json # Chrome extension manifest (MV3)
├── background.js # Service worker entry point
├── build.js # esbuild configuration
├── src/
│ ├── clustering.js # 🧠 Core AI clustering engine
│ ├── tabManager.js # Chrome tabs/groups API wrapper
│ ├── offscreen.js # Offscreen document for AI processing
│ ├── offscreen.html # Offscreen document HTML
│ ├── popup.html # Extension popup UI
│ └── popup.js # Popup logic
├── dist/ # Built bundles
└── icons/ # Extension icons
The Clustering Engine
The heart of Grooopy is src/clustering.js — a production-grade implementation featuring:
- Agglomerative Hierarchical Clustering (HAC) with average linkage
- Multi-signal similarity scoring: semantic embeddings + domain affinity + URL patterns
- Adaptive thresholds that scale with tab count
- Smart singleton consolidation with multi-pass orphan handling
- Semantic name generation using TF-IDF-like scoring
🛠️ Tech Stack
| Component | Technology |
|---|---|
| AI Model | all-MiniLM-L6-v2 via Transformers.js |
| Runtime | ONNX + WebAssembly |
| Bundler | esbuild |
| Platform | Chrome Extension Manifest V3 |
Why This Model?
- 22.7 MB — Small enough for browser caching
- 384 dimensions — Fast similarity computation
- MIT License — Free for any use
- SOTA performance — Trained on 1B+ sentence pairs
🤝 Contributing
Contributions are welcome! Whether it’s:
- 🐛 Bug fixes
- ✨ New features
- 📖 Documentation improvements
- 🎨 UI/UX enhancements
Development Setup
# Clone and install
git clone https://github.com/shubhams2m/grooopy.git
cd grooopy
npm install
# Build (with file watching)
npm run build
# Load the extension in Chrome and test
Code Style
- Clean, readable code with meaningful comments
- JSDoc for public methods
- Descriptive variable names
📜 License
MIT License — do whatever you want with it.
🙏 Acknowledgments
- Transformers.js by Xenova — for making SOTA ML accessible in the browser
- Hugging Face — for the model hosting
- The open source community
Built with ❤️ and caffeine
Created with the assistance of Antigravity — an AI coding assistant.
If this helped you tame your tab chaos, consider giving it a ⭐