Browser-Bookmark Checker is a cross-platform desktop application for merging and deduplicating browser bookmarks. It supports both GUI and CLI interfaces and handles multiple bookmark formats.
Yes, Browser-Bookmark Checker is open source and free to use under the MIT License.
No. All processing is done locally on your machine. The tool is fully offline and does not make any network calls.
The tool can import bookmarks from:
- Chrome/Chromium (JSON format)
- Firefox (HTML export)
- Edge (HTML export)
- Safari (HTML export)
- Brave (HTML export)
- Opera (HTML export)
Chrome/Chromium:
- Copy the
Bookmarksfile from:- Windows:
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Bookmarks - macOS:
~/Library/Application Support/Google/Chrome/Default/Bookmarks - Linux:
~/.config/google-chrome/Default/Bookmarks
- Windows:
Firefox/Edge/Safari:
- Use browser's export feature (usually in Bookmarks menu)
- Export as HTML file
- 85 (default): Good balance for most users
- 90-100: Stricter matching, fewer false positives
- 70-80: More lenient, may merge similar but different bookmarks
- 0-50: Very lenient, use with caution
Start with 85 and adjust based on results.
Yes, unless:
- Processing very large datasets (100k+ bookmarks)
- You want strict URL-based deduplication only
- Performance is critical
Fuzzy matching improves duplicate detection by comparing similar titles.
- Small datasets (<10k bookmarks): < 1 second
- Medium datasets (10k-50k): 1-5 seconds
- Large datasets (50k+): 5-30 seconds (with fuzzy matching)
Use --no-fuzzy for faster processing on large datasets.
Python 3.11 or higher is required.
Yes, see API Reference for programmatic usage examples.
See the "Extending Parsers" section in README.md or check the parser implementation in bookmark_checker/core/parsers.py.
Possible reasons:
- URLs are different after canonicalization
- Titles are not similar enough (if fuzzy matching enabled)
- Bookmarks are from different domains (fuzzy matching is domain-scoped)
- Similarity threshold is too high
Try lowering the similarity threshold or checking the canonical URLs.
See Troubleshooting Guide for platform-specific solutions. Common causes:
- Missing PyQt6 dependencies
- Display server issues (Linux)
- Python version incompatibility
- Verify file format (must be Netscape HTML or Chrome JSON)
- Check file encoding (should be UTF-8)
- Ensure file is not corrupted
- Try exporting bookmarks again from browser
- Disable fuzzy matching with
--no-fuzzy - Process files in smaller batches
- Close other applications to free memory
- Use CLI mode (faster than GUI)
- Process files in batches
- Disable fuzzy matching
- Increase system RAM
- Process one file at a time
See CONTRIBUTING.md for guidelines. We welcome:
- Bug reports
- Feature requests
- Code contributions
- Documentation improvements
Use the bug report template on GitHub.
Use the feature request template on GitHub.
- Check Troubleshooting Guide
- See SUPPORT.md for support options
- Open an issue on GitHub
- Email: contact@voxhash.dev