Mindshelf
Stop hoarding tabs β AI classifies, summarizes & exports them to your notes ο½AI θΎ ε©ε€ηζ΅θ§δ½ ηζ΅·ιθδΈεΎε ³ιηζ ηΎθ΅δΊ§οΌεε²εΊε‘οΌοΌε―ΌεΊε° Apple Notes / Obsidianγ
Ask AI about Mindshelf
Powered by Claude Β· Grounded in docs
I know everything about Mindshelf. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
MindShelf
Stop hoarding tabs. Start keeping knowledge.
You know the feeling. 300 browser tabs, each one "too important to close." You can't organize them because there are too many. You can't close them because you might lose something valuable. So they just... sit there, draining your memory and your mind.
MindShelf ends this. It's an AI-powered Chrome extension that turns your tab chaos into organized knowledge β automatically classified, summarized, deduplicated, and exported to the note-taking apps you already use.
Anxiety ("I have 300 tabs")
β Scan ("Oh, 20 are duplicates, the rest fall into 15 categories")
β AI processes (classify, summarize, deduplicate, evaluate)
β Export to notes (Apple Notes / Obsidian / Markdown)
β Close tabs with confidence
β Search in your notes anytime
Features
- AI Classification β 5-stage pipeline auto-categorizes tabs into 15 fine-grained topics with streaming progress
- AI Summaries β One-click page summaries, multi-turn follow-up conversations, Markdown rendering
- AI Agent β Natural language tab operations: "close all shopping tabs", "export everything about React"
- Duplicate Detection β 4-level matching (exact URL > canonical URL > exact title > similar title)
- Knowledge Export β Save to Apple Notes (rich HTML), Obsidian (Markdown + YAML frontmatter), or download as
.md - Content Extraction β Defuddle / Readability / plaintext, switchable per tab
- Selection Toolbar β Ask AI or save highlighted text from any page, with a Settings toggle
- Virtual Scrolling β Handles 2000+ tabs smoothly
- Multi-Provider AI β OpenAI, Anthropic, and any OpenAI-compatible API (Ollama, vLLM, Azure, etc.)
- MCP Server β External AI agents (Cursor, Claude Desktop) can manage your tabs via MCP
- i18n β Chinese and English interface with auto-detection
- Dark Mode β System / Light / Dark theme cycling
Quick Start
Option A: Install from Chrome Web Store (recommended)
MindShelf's AI runs entirely in the browser. You only need the backend if you want to export to Apple Notes or Obsidian, or use MCP.
- Install from Chrome Web Store
- Open the side panel β configure your AI provider in Settings (gear icon)
- Done. Start scanning and classifying.
Option B: Manual install (zip / local build)
- Download the latest extension zip from GitHub Releases
- Unzip and load in
chrome://extensions/(Developer mode β Load unpacked) - Open the side panel β configure your AI provider in Settings (gear icon)
Option C: With backend (for export & MCP)
# Start the MindShelf server (one command)
npx mindshelf serve
# Or with Obsidian vault:
npx mindshelf serve --obsidian-vault /path/to/your/vault
# Extension
cd extension
npm install && npm run build
# Load extension/dist/chrome-mv3/ in chrome://extensions/
For development:
cd backend && npm install && npm run dev # auto-restart on changes
cd extension && npm run dev # HMR
Use it
Open the side panel β tabs are scanned automatically β click Classify β AI categorizes everything β click save on any tab β export to your notes β close tabs, worry-free.
Architecture
Chrome Extension (WXT + React 19 + TailwindCSS v4 + Zustand)
βββ Side Panel β tab list, AI chat, note export, settings overlay
βββ Content Script β Defuddle / Readability page extraction
βββ Background β WebSocket bridge client, tab lifecycle
βββ Popup β quick summary & save
βββ AI Engine β Vercel AI SDK (runs in browser, direct API calls)
β βββ Classification β 5-stage pipeline
β βββ Chat / Agent β streaming + tool calling (7 tools)
β βββ Note optimization
βββ i18n β i18next (zh/en)
βββ chrome.storage.local β enrichment cache (60-day TTL)
β
β HTTP (export only)
β WebSocket (MCP bridge)
βΌ
Backend β npx mindshelf (single process, no Express)
βββ HTTP Server β native Node.js http (export API)
βββ WebSocket Bridge β relays MCP commands to extension
βββ Export β Apple Notes (osascript/JXA) Β· Obsidian (direct file write)
βββ MCP Server β 9 tools via @modelcontextprotocol/sdk (stdio transport)
Key design decision: AI runs in the extension, not the backend. This means:
- No API key stored on server β users configure providers directly in the extension
- No backend needed for core features (scan, classify, summarize, chat)
- Backend is optional β only needed for export to Apple Notes/Obsidian and MCP integration
Configuration
AI Providers (in extension Settings)
Click the gear icon β AI Providers:
- Add multiple providers (OpenAI, Anthropic, or any OpenAI-compatible API)
- Each provider can have multiple models
- Set API key, base URL, and model list per provider
- Activate one provider and select a default model
Interface & Productivity (in extension Settings)
- Language β Auto-detect / Chinese / English
- Selection Toolbar β show or hide the inline Ask AI / Save actions for highlighted text
Backend (optional)
npx mindshelf serve # default port 3456
npx mindshelf serve --port 4000 # custom port
npx mindshelf serve --obsidian-vault ~/MyVault # with Obsidian
Or create backend/.env from .env.example:
PORT=3456
# Obsidian export (direct file write to vault directory)
# OBSIDIAN_VAULT_PATH=/path/to/your/obsidian/vault
MCP Integration
MindShelf exposes 9 tools via MCP for external AI agents.
Cursor / Claude Desktop (stdio):
{
"mcpServers": {
"mindshelf": {
"command": "npx",
"args": ["mindshelf"]
}
}
}
The stdio process auto-detects whether the MindShelf server is running and starts it in the background if needed. Multiple AI clients can connect simultaneously β each spawns a lightweight stdio process that shares the single server instance.
Requirements: Chrome extension side panel must be open (to establish the WebSocket bridge).
macOS Permissions (for MCP & export)
- Chrome Local Network access β MindShelf connects the extension to the local backend over
ws://localhost:3456. On newer Chrome versions, allow the extension's Local Network permission when prompted. If you denied it earlier, reopen the extension's site details in Chrome and switch Local Network to Allow. - Automation / Apple Events β Apple Notes export uses
osascriptto control Notes.app. The first export may trigger a macOS prompt for the app that launchednpx mindshelf(Terminal, iTerm, Cursor, Claude Desktop, etc.). Approve it in System Settings β Privacy & Security β Automation. - Obsidian export β No extra macOS prompt is expected beyond giving MindShelf a valid writable vault path.
| MCP Tool | Description |
|---|---|
list_tabs | List all browser tabs (with filters) |
search_tabs | Search tabs by keyword |
get_tab_detail | Get enriched tab details |
close_tabs | Close tabs by ID |
categorize_tabs | Trigger AI classification |
detect_duplicates | Find duplicate tabs |
get_page_content | Extract active page content |
export_to_notes | Export tab to Apple Notes |
export_to_obsidian | Export tab to Obsidian |
API
The backend exposes a minimal API surface:
| Endpoint | Description |
|---|---|
GET /api/health | Health check (includes bridge connection status) |
POST /api/export/single | Export to Apple Notes / Obsidian |
GET /api/export/targets | Check available export targets |
GET /api/export/folders/apple-notes | List Apple Notes folders |
GET /api/export/folders/obsidian | List Obsidian vault folders |
ws://β¦/ws/bridge | WebSocket bridge for MCP β Extension |
CI/CD
GitHub Actions builds and packages the Chrome extension on every push to main.
Tag v* to validate the backend build and create a GitHub Release with the extension zip attached.
