A Chrome extension for capturing notes, links, and content with semantic search. Highlight text on any webpage, right-click to save, and find it later using natural language queries. I've always done most of my research from within a browser, so it made sense to try and just integrate my notes with my research process instead of alt-tabbing back and forth between the browser and a notes app. Added on a basic semantic search to make management a little easier. It's all local.
- Right-click to save - Highlight text on any page, right-click to add to your bookmarks
- One bookmark per URL - Multiple selections from the same page automatically append to the existing bookmark
- Auto-save - Every addition is immediately saved to the database
- Progressive capture - Keep adding content from the same article without manual saving
- Semantic search - Find bookmarks by meaning, not just keywords
- Local embeddings - Uses all-MiniLM-L6-v2 to generate text embeddings in your browser
- Hybrid search - Combines vector similarity with keyword matching for best results
- Tag search - Use
tag:prefix for tag-only filtering (e.g.,tag: javascript)
- Tags - Add tags with autocomplete suggestions
- Browse - View all bookmarks with sorting options
- Bulk actions - Select multiple items to export or delete
- Edit mode - Update bookmark content, title, and tags
- Markdown export - Download bookmarks as readable markdown
- Browser preview - View bookmarks in a styled HTML page
- Full backup - Export everything including AI embeddings for migration
- Restore - Import backups to another browser or device
- Clone or download this repository
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" (toggle in top right)
- Click "Load unpacked" and select the
super_bookmarksfolder - The extension icon will appear in your toolbar
- Click the extension icon to open the side panel
- Highlight text on any webpage
- Right-click and select "Add to Super Bookmarks"
- The text is automatically saved with the page URL and title
- Continue highlighting more text - it appends to the same bookmark
- Open the side panel and click the "Search" tab
- Type a natural language query (e.g., "articles about machine learning")
- Vector search finds semantically similar content, not just keyword matches
- First search loads the embedding model (~23MB, cached after first load)
- Click on any bookmark card to expand it
- Click "Edit" to modify the content
- The URL field is locked (it's the unique identifier)
- Click "Update Bookmark" to save or "Delete" to remove
super_bookmarks/
├── background/ # Service worker & context menus
├── content/ # Content script for page interaction
├── lib/
│ ├── db/ # IndexedDB database layer
│ ├── embeddings/ # AI model & vector search
│ ├── export/ # Backup & export utilities
│ ├── store/ # State management
│ └── vendor/ # Bundled transformers.js
├── panel/
│ ├── components/ # Reusable UI components
│ ├── views/ # Main view controllers
│ ├── styles/ # CSS
│ └── utils/ # DOM helpers & formatters
└── manifest.json
- Chrome Extension Manifest V3 - Modern extension architecture
- IndexedDB - Local database for bookmarks and embeddings
- Transformers.js - Run ML models in the browser via WebAssembly
- all-MiniLM-L6-v2 - 384-dimensional sentence embeddings
- Web Workers - Embedding generation in background thread
No build step required - the extension runs directly from source.
background/service-worker.js- Extension lifecycle & message routinglib/embeddings/embedding-worker.js- AI model loading & inferencelib/embeddings/vector-search.js- Cosine similarity searchlib/db/database.js- IndexedDB wrapper with full CRUDpanel/panel.js- Main UI controller
- Views go in
panel/views/ - Reusable components in
panel/components/ - Database operations in
lib/db/database.js - State shape defined in
lib/store/app-state.js
- 100% local - All data stays in your browser
- No server - Embedding model runs locally via WebAssembly
- No tracking - No analytics or external requests
- Your data - Export anytime, delete anytime
MIT