A privacy-focused, premium Chrome extension to manage, search, export, and favorite your tabs. Designed with a modern, glassmorphic UI and built for speed.
- 🚀 Instant Search: Filter through open tabs and favorites in real-time.
- 🔒 Privacy First: All data is stored locally (
chrome.storage.local). No analytics, no tracking, no external server calls. - 📂 Smart Grouping: Tabs are automatically grouped by window.
- ⭐ Favorites: Pin your most used tabs for quick access.
- 📤 Bulk Export: Export your tabs to CSV, Excel, PDF, or ZIP formats.
- 📋 One-Click Copy: Copy tab URLs to your clipboard instantly.
- 🎨 Modern UI: Beautiful dark/light mode adaptable interface with smooth animations.
- Framework: React 19 + TypeScript
- Build Tool: Vite
- Styling: Vanilla CSS (Variables + Flexbox/Grid)
- Icons: Lucide React
- Export Libraries:
xlsx,pdf-lib,jszip
- Node.js (v16 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/brusooo/Onehandle.git cd Onehandle -
Install Dependencies
npm install
-
Build the Extension
npm run build
This creates a
distfolder with the production-ready extension.
- Open Chrome and go to
chrome://extensions/. - Enable Developer mode (top right toggle).
- Click Load unpacked.
- Select the
distfolder from this project. - Pin the extension and click the icon to use!
To start the development server (for UI development):
npm run devNote: Chrome APIs (like chrome.tabs) won't work in the standard browser tab during npm run dev. To test functionality, you must build and reload the extension in Chrome.
src/
├── popup/ # UI Components (Popup, TabList, Favorites)
├── types/ # TypeScript interfaces
├── utils/ # Helper functions (tabs, storage, export)
└── assets/ # Static assets
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.