Skip to content

About

No description, website, or topics provided.

Resources

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

74 Commits

Folders and files

Repository files navigation

AI Bookmark Manager Chrome Extension

An intelligent Chrome extension that helps you organize and manage your bookmarks using AI-powered analysis, part of the OSOM AI framework. Export your bookmarks to Notion, Obsidian, or XMind for better organization.

Chrome Extension Version License Security

🌟 Features

  • AI-Powered Analysis: Automatically categorize bookmarks using intelligent URL and title analysis
  • Smart Recommendations: Get suggestions for organizing your bookmarks into logical folders
  • πŸ” Encrypted Credential Storage: AES-256-GCM encryption for secure Notion token storage
  • Notion Integration: Export bookmarks directly to your Notion databases
  • Multiple Export Formats: Support for Notion, Obsidian, and XMind
  • Modern UI: Clean, user-friendly interface built with Tailwind CSS
  • Real-time Processing: Analyze and organize bookmarks on-the-fly

πŸ—οΈ Project Structure

chrome_bookmark_manager/
β”œβ”€β”€ extension/                  # Chrome extension files
β”‚   β”œβ”€β”€ manifest.json          # Extension manifest
β”‚   β”œβ”€β”€ popup.html             # Popup interface
β”‚   β”œβ”€β”€ background.js          # Background service worker
β”‚   β”œβ”€β”€ icons/                 # Extension icons
β”‚   β”‚   β”œβ”€β”€ icon16.png
β”‚   β”‚   β”œβ”€β”€ icon48.png
β”‚   β”‚   └── icon128.png
β”‚   β”œβ”€β”€ js/                    # JavaScript modules
β”‚   β”‚   β”œβ”€β”€ popup.js           # Main popup logic
β”‚   β”‚   └── crypto.js          # πŸ” Encryption utilities
β”‚   β”œβ”€β”€ integrations/          # Integration modules
β”‚   β”‚   β”œβ”€β”€ osom-integration.js    # AI categorization engine
β”‚   β”‚   └── notion-integration.js  # Notion API wrapper
β”‚   └── styles/                # Stylesheets
β”‚       └── popup.css          # Custom styles
β”‚
β”œβ”€β”€ python_scripts/            # Python utilities
β”‚   β”œβ”€β”€ main.py                # Main processing script
β”‚   └── bookmarks_to_notion.py # Notion export utility
β”‚
β”œβ”€β”€ docs/                      # Documentation
β”‚   β”œβ”€β”€ SECURITY.md            # Security information
β”‚   └── INSTALLATION.md        # Installation guide
β”‚
β”œβ”€β”€ requirements.txt           # Python dependencies
β”œβ”€β”€ CHANGELOG.md               # Version history
└── README.md                  # This file

πŸ” Security Features (NEW!)

Encrypted Credential Storage

Version 1.1.0 introduces AES-256-GCM encryption for protecting your Notion API credentials:

  • Encryption Algorithm: AES-256-GCM (industry standard)
  • Key Derivation: SHA-256 hash of extension ID + salt
  • IV: Random 96-bit initialization vector per encryption
  • Storage: Encrypted data stored in Chrome local storage

How It Works

  1. When you save credentials, they are encrypted using Web Crypto API
  2. The encryption key is derived from your unique extension installation ID
  3. Data is encrypted with AES-GCM and a random IV
  4. Only the encrypted ciphertext is stored
  5. Credentials are decrypted only when needed

Security Benefits

βœ… Before (v1.0):

  • Plain text storage
  • Readable by any script
  • Visible in DevTools

βœ… After (v1.1):

  • AES-256-GCM encrypted
  • Requires decryption key
  • Not visible in plain text
  • Protected from casual inspection

Read more: docs/SECURITY.md

πŸ“‹ Prerequisites

  • Google Chrome (version 88 or higher)
  • Python 3.7+ (optional, for Python scripts)

πŸš€ Quick Start

Install the Extension

  1. Clone or download:

    git clone https://github.com/MarlinZH/chrome_bookmark_manager.git
    cd chrome_bookmark_manager
  2. Load in Chrome:

    • Navigate to chrome://extensions/
    • Enable "Developer mode"
    • Click "Load unpacked"
    • Select the extension folder
  3. Done! The extension icon appears in your toolbar.

Detailed instructions: docs/INSTALLATION.md

πŸ“– Usage

Analyzing Bookmarks

  1. Click the extension icon
  2. Click "Analyze Bookmarks"
  3. View AI-generated categories
  4. See recommended folder names

Creating Folders

  1. Select a recommended category OR enter a custom name
  2. Click "Create"
  3. Folder is added to your bookmarks

Exporting to Notion

First Time Setup

  1. Create Notion Integration: notion.so/my-integrations
  2. Create Database: Add a full-page database in Notion
  3. Share Database: Invite your integration to the database
  4. Get Database ID: Copy from the database URL

Export Process

  1. Enter your Integration Token (encrypted on save)
  2. Enter your Database ID
  3. Click "Save" (credentials are encrypted with AES-256-GCM)
  4. Click "Export to Notion"
  5. Wait for completion message

Clearing Credentials

For security, you can clear stored credentials:

  1. Click "Clear" button in the Notion section
  2. Confirm the action
  3. Encrypted credentials are permanently removed

πŸ”§ Development

Technology Stack

Extension:

  • Chrome Manifest V3
  • JavaScript ES6 Modules
  • Web Crypto API (for encryption)
  • Tailwind CSS
  • Chrome APIs (Bookmarks, Storage)

Python Scripts:

  • Python 3.7+
  • Notion API Client
  • Pandas, NLTK, SpaCy (optional)

Key Components

πŸ” CryptoManager (extension/js/crypto.js)

Handles all encryption/decryption:

  • encrypt(plaintext) - Encrypt data with AES-GCM
  • decrypt(ciphertext) - Decrypt data
  • secureStore(key, value) - Encrypt and store
  • secureRetrieve(key) - Retrieve and decrypt
  • secureRemove(key) - Remove encrypted data

OSOM Integration (extension/integrations/osom-integration.js)

AI categorization engine that analyzes:

  • URL domain patterns
  • URL path structure
  • Title keywords
  • Weighted scoring

Categories: Technology, Business, Education, Entertainment, News, Social, Shopping, Health, Finance, Travel

Notion Integration (extension/integrations/notion-integration.js)

Notion API wrapper:

  • Create pages in databases
  • Batch import bookmarks
  • Test connection
  • Error handling

πŸ“Š Python Scripts

Main Script

python python_scripts/main.py

Interactive script that:

  • Loads Chrome bookmarks
  • Organizes by folder
  • Extracts folder structure
  • Exports to Notion

Auto-Export Script

# Set environment variables
export NOTION_TOKEN="your_token"
export DATABASE_ID="your_db_id"

# Run
python python_scripts/bookmarks_to_notion.py

Auto-detects bookmark location and exports.

πŸ›‘οΈ Security Best Practices

  1. Use Integration Tokens: Create dedicated integrations, not personal tokens
  2. Limit Permissions: Only grant necessary database access
  3. Rotate Regularly: Change tokens periodically
  4. Clear When Done: Use "Clear" button after exporting
  5. Lock Computer: Always lock when away
  6. Don't Share Profile: Keep Chrome profile private

Full security details: docs/SECURITY.md

πŸ› Troubleshooting

Extension Issues

Won't Load: Ensure you selected the extension folder, not root
No Icon: Check extension/icons/ folder exists
Analysis Fails: Check browser console for errors

Notion Issues

Export Fails:

  • Verify token is correct
  • Ensure database is shared with integration
  • Check Database ID is 32 characters
  • Verify database has Name, URL, and Folder properties

Credentials Not Saving:

  • Check browser console for encryption errors
  • Ensure Chrome supports Web Crypto API
  • Try clearing and re-entering

Python Issues

Module Not Found:

pip install -r requirements.txt

NLTK Errors:

import nltk
nltk.download('punkt')
nltk.download('stopwords')

πŸ”„ Changelog

[1.1.0] - 2025-10-30

Added

  • πŸ” AES-256-GCM encryption for credential storage
  • New CryptoManager class for encryption operations
  • "Clear" button to remove stored credentials
  • Comprehensive security documentation
  • Installation guide
  • Reorganized project structure

Changed

  • Moved extension files to extension/ directory
  • Moved Python scripts to python_scripts/ directory
  • Updated manifest to version 1.1.0
  • Improved UI with better feedback
  • Enhanced error handling

Security

  • Credentials now encrypted at rest
  • Secure key derivation using extension ID
  • Random IV generation per encryption
  • Protection against casual data inspection

[1.0.1] - 2025-10-30

  • Fixed critical bugs
  • Added comprehensive documentation
  • Improved error handling

[1.0.0] - 2023-12-24

  • Initial release

Full changelog: CHANGELOG.md

🀝 Contributing

Contributions welcome!

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit changes: git commit -m 'Add amazing feature'
  4. Push to branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Guidelines

  • Follow existing code style
  • Add encryption for any new credential storage
  • Test thoroughly
  • Update documentation
  • Include security considerations

πŸ“„ License

This project is licensed under the MIT License.

πŸ‘€ Author

MarlinZH

πŸ™ Acknowledgments

  • Chrome Extensions documentation
  • Web Crypto API
  • Notion API team
  • Tailwind CSS community
  • Security reviewers and contributors

πŸ“ž Support


⭐ Star this repo if you find it useful!

πŸ” Your credentials are now encrypted and protected!

About

No description, website, or topics provided.

Resources

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages