A Chrome extension that sweeps away duplicate browser tabs instantly, freeing up memory and keeping your browser organized.
- Download: Download ZIP or clone this repo
- Extract: Unzip the downloaded file
- Chrome: Go to
chrome://extensions/and enable "Developer mode" - Load: Click "Load unpacked" and select the
extensionfolder - Done: Start sweeping duplicate tabs!
- Duplicate Detection: Automatically identifies tabs with identical URLs
- Smart Badge: Shows the number of duplicate tabs in the extension icon
- Intelligent Sweeping: Preserves active and pinned tabs when removing duplicates
- Tab Sorting: Optional feature to reorganize tabs by URL when sweeping duplicates
- Multi-Window Support: Works across all browser windows
- Real-time Updates: Badge updates automatically as you browse
- Auto-Sweep: Automatically remove duplicates as they're detected
- Tab Suspender Support: Compatible with Marvellous Suspender and other tab suspenders
- Keyboard Shortcut:
Alt+Shift+D(orOption+Shift+Don Mac) - Exceptions: Configure rules to skip specific URLs or titles
- Badge Color: Customizable badge color
- 8 Languages: English, Russian, Spanish, French, Italian, Bulgarian, Chinese, Hindi
- Download or clone this repository
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked" and select the
extensionfolder (not the root directory) - The extension will appear in your toolbar
Important: Make sure to select the
extensionfolder, which contains only the necessary extension files.
- Detection: The extension monitors all your tabs and identifies duplicates by comparing URLs
- Badge Display: The number of duplicate tabs is shown on the extension icon
- Smart Sweeping: When you click the extension icon, it removes duplicate tabs while preserving:
- Active tabs (currently selected)
- Pinned tabs
- The most recently accessed tab for each URL
Access settings by right-clicking the extension icon and selecting "Options":
- Auto-Sweep: Automatically sweep away duplicates as they're detected (2-second delay)
- Current Window Only: Limit duplicate detection to the current window
- Sort Tabs: Reorganize tabs by URL when sweeping duplicates
- Exceptions: Rules to exclude specific URLs or titles from sweeping
- Badge Color: Choose your preferred badge color
This extension respects your privacy:
- No data collection
- No external connections
- All processing happens locally in your browser
- Only stores your preferences locally
See our full Privacy Policy.
The extension requires these permissions:
- tabs: To read tab URLs, identify duplicates, and remove duplicate tabs
- storage: To save your preferences
- Manifest Version: 3 (latest Chrome extension standard)
- Background: Service Worker (efficient and modern)
- Compatibility: Chrome 88+ (Manifest V3 requirement)
├── extension/ # Chrome Extension Files (load this folder)
│ ├── manifest.json # Extension configuration
│ ├── close_tabs.js # Main extension logic
│ ├── options.html # Settings page
│ ├── options.js # Settings functionality
│ ├── popup.html # Popup interface
│ ├── popup.js # Popup functionality
│ ├── privacy-policy.html # Privacy policy
│ └── icon_*.png # Extension icons
├── tests/ # Test files and framework
├── docs/ # Documentation and guides
├── README.md # This file (project overview)
├── CHANGELOG.md # Version history
└── package.json # Development dependencies
No build process required - this is a vanilla JavaScript extension.
- Load Extension: Load the
extensionfolder in Chrome developer mode - Run Tests:
npm testto run the automated test suite - Manual Testing: Open multiple tabs with the same URL
- Verify Badge: Check that the badge shows the number of duplicates
- Test Sweeping: Click the extension icon to sweep duplicates
- Check Preservation: Verify that active/pinned tabs are preserved
# Testing
npm test # Run all tests
npm run test:watch # Run tests in watch mode
npm run test:coverage # Run tests with coverage report
# Code Quality
npm run lint # Check for linting errors
npm run lint:fix # Fix auto-fixable linting errors
npm run format # Format all files with Prettier
npm run format:check # Check if files are properly formatted
npm run quality # Run all quality checks (lint + format + tests)# Clone the repository
git clone https://github.com/skippdot/DupeSweep.git
cd DupeSweep
# Install development dependencies
npm install
# Run tests
npm testContributions are welcome!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Test your changes (
npm test) - Commit your changes
- Push to the branch
- Open a Pull Request
- All quality checks must pass (
npm run quality) - Follow existing code style and patterns (enforced by ESLint/Prettier)
- Update documentation for new features
- Add tests for new functionality
This project is open source under the MIT License.
- Report issues on GitHub Issues