A powerful, professional-grade bookmark manager with AI-powered categorization, multi-theme support, and advanced organization features.
- Multi-format Import: HTML (Chrome, Firefox, Edge, Safari), JSON, CSV, OPML, TXT
- Nested Categories: Hierarchical category organization with drag-and-drop
- Advanced Tagging: User tags + AI-suggested tags with color coding
- Dual View Modes: List view and responsive card grid view
- Full-text Search: Advanced syntax with filters, boolean operators, and highlighting
- Undo/Redo: Full command history for all operations
- Auto-categorization: AI suggests categories based on URL and content
- Tag Generation: Automatic tag suggestions using AI
- Title Improvement: Clean up and improve bookmark titles
- Content Summarization: Generate summaries for bookmarks
- Multiple Providers: OpenAI, Anthropic Claude, Google Gemini, Groq, Ollama (local)
- 10+ Built-in Themes: GitHub Dark/Light, Dracula, Nord, Monokai, Tokyo Night, and more
- Custom Themes: Create, import, and export custom color schemes
- High DPI Support: Crisp rendering on high-resolution displays
- System Tray: Quick access without opening full window
- Keyboard Shortcuts: Complete keyboard navigation
- Command Palette: Quick access to all commands (Ctrl+P)
- Automatic Backups: Timestamped backups with easy restore
- Export Options: HTML, JSON, CSV formats
- URL Validation: Check for broken links
- Duplicate Detection: Find and merge duplicates
- Favicon Caching: Fast, cached favicon display
- Python 3.8 or higher
- Tkinter (usually included with Python)
# Clone or download the repository
git clone https://github.com/yourusername/bookmark-organizer-pro.git
cd bookmark-organizer-pro
# Run the application
python bookmark_organizer_pro_v4.pyOn first run, the application will:
- Check for required dependencies
- Show a dialog to install missing packages
- Create the data directory at
~/.bookmark_organizer/
Required (auto-installed):
beautifulsoup4- HTML parsing for bookmark importrequests- HTTP requests for favicon downloads
Optional (recommended):
Pillow- Image processing for favicons and screenshotspystray- System tray integration
pip install beautifulsoup4 requests Pillow pystray- Click the + Add button or press
Ctrl+N - Enter the URL (title auto-fetched)
- Select a category or let AI suggest one
- Add tags (optional)
- Click Save
- Click Import or press
Ctrl+I - Select your bookmark file(s)
- Choose import options (merge duplicates, etc.)
- Click Import
Supported formats:
- Chrome/Edge: Export as HTML from
chrome://bookmarks - Firefox: Export as HTML from Bookmarks Manager
- Safari: Export as HTML from File menu
- JSON: Bookmark Organizer Pro native format
- CSV: Spreadsheet format with URL, Title, Category columns
Use the search bar with advanced syntax:
python tutorial # Basic search
"machine learning" # Exact phrase
title:react # Search in title only
url:github.com # Search in URL only
tag:programming # Filter by tag
category:Development # Filter by category
-deprecated # Exclude term
python AND tutorial # Boolean AND
react OR vue # Boolean OR
| Shortcut | Action |
|---|---|
Ctrl+N |
Add new bookmark |
Ctrl+F |
Focus search |
Ctrl+L |
Focus search (alternative) |
Ctrl+I |
Import bookmarks |
Ctrl+O |
Import bookmarks (alternative) |
Ctrl+S |
Export bookmarks |
Ctrl+E |
Edit selected |
Ctrl+A |
Select all |
Ctrl+Z |
Undo |
Ctrl+Y |
Redo |
Ctrl+P |
Command palette |
Delete |
Delete selected |
F5 |
Refresh |
Escape |
Clear search / Close dialog |
- Go to Settings > AI Configuration
- Select a provider (OpenAI, Anthropic, Google, Groq, or Ollama)
- Enter your API key
- Select a model
- Click Test Connection to verify
- Click Save
Free Options:
- Groq: Free tier available at console.groq.com
- Google Gemini: Free tier at aistudio.google.com
- Ollama: Run models locally (free, requires setup)
- Go to Settings > Theme Settings
- Browse available themes
- Click a theme to apply it
- To create a custom theme:
- Click Create Custom
- Choose a base theme
- Adjust colors using the color picker
- Save with a name
| File | Location | Purpose |
|---|---|---|
| Bookmarks | ~/.bookmark_organizer/master_bookmarks.json |
Main bookmark data |
| Categories | ~/.bookmark_organizer/categories.json |
Category definitions |
| Tags | ~/.bookmark_organizer/tags.json |
Tag definitions |
| Settings | ~/.bookmark_organizer/settings.json |
App preferences |
| AI Config | ~/.bookmark_organizer/ai_config.json |
AI provider settings |
| Themes | ~/.bookmark_organizer/themes/ |
Custom themes |
| Backups | ~/.bookmark_organizer/backups/ |
Automatic backups |
| Favicons | ~/.bookmark_organizer/favicons/ |
Cached favicons |
| Logs | ~/.bookmark_organizer/logs/ |
Application logs |
{
"theme": "github_dark",
"view_mode": "list",
"show_favicons": true,
"confirm_delete": true,
"auto_backup": true,
"backup_count": 10,
"sidebar_width": 250,
"check_urls_on_import": false
}| Variable | Description |
|---|---|
BOOKMARK_DEBUG |
Set to 1 to enable console logging |
BOOKMARK_DATA_DIR |
Override data directory location |
# Reinstall dependencies
pip install --upgrade beautifulsoup4 requests Pillow pystray- Check internet connection
- Clear favicon cache: Tools > Clear Favicon Cache
- Check if domain blocks favicon requests
- Disable URL validation on large imports
- Reduce favicon download concurrency in settings
The app should auto-detect DPI. If text is blurry:
- Right-click the Python executable
- Properties > Compatibility > Change high DPI settings
- Check "Override high DPI scaling behavior"
- Select "Application"
Try saving your bookmark file as UTF-8:
- Open in text editor
- Save As > Encoding: UTF-8
- Re-import
- Verify API key is correct
- Check internet connection
- Test connection in Settings > AI Configuration
- Check logs at
~/.bookmark_organizer/logs/
Enable debug logging:
# Windows
set BOOKMARK_DEBUG=1
python bookmark_organizer_pro_v4.py
# macOS/Linux
BOOKMARK_DEBUG=1 python bookmark_organizer_pro_v4.pyLog file location: ~/.bookmark_organizer/logs/bookmark_organizer.log
Create manual backup:
- Tools > Create Backup
Restore from backup:
- Tools > Restore from Backup
- Select a backup file from the list
- Confirm restoration
Automatic backups:
- Created on every save (if enabled)
- Stored in
~/.bookmark_organizer/backups/ - Named with timestamp:
bookmarks_backup_20260107_143052.json
To completely reset the application:
# Backup your data first!
rm -rf ~/.bookmark_organizer
# On Windows:
rmdir /s %USERPROFILE%\.bookmark_organizer# Add a bookmark
python bookmark_organizer_pro_v4.py add "https://example.com" --title "Example" --category "General"
# Search bookmarks
python bookmark_organizer_pro_v4.py search "python tutorial"
# Export bookmarks
python bookmark_organizer_pro_v4.py export --format html --output bookmarks.html
# Import bookmarks
python bookmark_organizer_pro_v4.py import bookmarks.html
# List categories
python bookmark_organizer_pro_v4.py categories
# Show statistics
python bookmark_organizer_pro_v4.py statsfrom bookmark_organizer_pro_v4 import (
BookmarkManager,
CategoryManager,
TagManager,
Bookmark
)
# Initialize managers
category_mgr = CategoryManager()
tag_mgr = TagManager()
bookmark_mgr = BookmarkManager(category_mgr, tag_mgr)
# Add a bookmark
bookmark = bookmark_mgr.add_bookmark(
url="https://example.com",
title="Example Site",
category="General",
tags=["example", "test"]
)
# Search bookmarks
results = bookmark_mgr.search("python")
# Get statistics
stats = bookmark_mgr.get_statistics()
print(f"Total bookmarks: {stats['total']}")Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests (if available)
- Submit a pull request
- Follow PEP 8 guidelines
- Use type hints for function signatures
- Add docstrings to public methods
- Use the existing logging system (
log.info(),log.error(), etc.)
MIT License - see LICENSE file for details.
- Theme color palettes inspired by popular editor themes
- Icons from various emoji sets
- Built with Python and Tkinter
- Added professional dependency management UI
- Added centralized StyleManager for consistent ttk styling
- Added DPI awareness for Windows high-DPI displays
- Added comprehensive logging system
- Added enhanced status bar with counts and progress
- Added comprehensive keyboard shortcuts
- Standardized font usage across application
- Fixed duplicate class definitions
- Fixed bare except clauses
- Code quality improvements
- Initial release with full feature set
- 10+ built-in themes
- AI-powered categorization and tagging
- Advanced search with boolean operators
- System tray integration
- Grid and list view modes
# Install PyInstaller
pip install pyinstaller
# Install dependencies
pip install beautifulsoup4 requests Pillow pystrayWindows:
# Using spec file (recommended)
pyinstaller bookmark_organizer.spec --clean
# Or use the build script
build_windows.batmacOS/Linux:
# Using spec file (recommended)
pyinstaller bookmark_organizer.spec --clean
# Or use the build script
chmod +x build_unix.sh
./build_unix.shThe executable will be created in the dist/ folder:
- Windows:
dist/BookmarkOrganizerPro.exe - macOS:
dist/BookmarkOrganizerPro(or .app bundle) - Linux:
dist/BookmarkOrganizerPro
Edit bookmark_organizer.spec to customize:
# Single file vs folder
# Default is single file. For folder, uncomment COLLECT section
# Console window
console=False # Set to True for debugging
# UPX compression
upx=True # Set to False if UPX not installed
# macOS app bundle
# Uncomment BUNDLE section for .app creationThe spec file already excludes unnecessary packages. For smaller builds:
- Use UPX: Install UPX and ensure
upx=Truein spec - Remove unused features: Comment out unused hidden_imports
- Strip debug info: Set
strip=True(may cause issues on some systems)
The distribution includes these icon files:
bookmark_organizer.ico- Windows executable iconbookmark_organizer.png- Cross-platform icon (256x256)icon_32.pngthroughicon_256.png- Various sizes
Windows:
signtool sign /f certificate.pfx /p password /t http://timestamp.url dist\BookmarkOrganizerPro.exemacOS:
codesign --deep --force --verify --verbose --sign "Developer ID" dist/BookmarkOrganizerPro.app| File | Description |
|---|---|
bookmark_organizer_pro_v4.py |
Main application script |
bookmark_organizer.spec |
PyInstaller build specification |
build_windows.bat |
Windows build script |
build_unix.sh |
macOS/Linux build script |
version_info.txt |
Windows version metadata |
bookmark_organizer.ico |
Windows icon |
bookmark_organizer.png |
Cross-platform icon |
README.md |
This documentation |