English | 简体中文
Turn your messy browser bookmarks into a local AI memory library.
Clean your bookmark bar. Search by memory. Give your AI tools a private knowledge base.
SiftMarks is a local-first bookmark manager for people who save too much and find too little. It imports your Chrome bookmarks, cleans up duplicate and scattered folders, makes the library searchable, and exposes your saved knowledge to AI tools through MCP.
The goal is simple: your bookmarks should feel like memory, not a junk drawer.
SiftMarks is built for developers, researchers, operators, founders, and anyone whose browser has quietly become a second brain with no search function.
Watch the 20-second product walkthrough:
If your Markdown viewer does not render embedded video, open docs/demo/siftmarks-demo.mp4 directly.
Accept, dismiss, or batch-apply cleanup suggestions before anything touches Chrome.
Filter by status, folder, duplicate state, missing metadata, and saved context.
Search saved pages by keyword now, with memory-style search ready for configured AI providers.
Expose your local bookmark library to Claude, Cursor, Windsurf, and other MCP clients.
- Import browser bookmarks from Chrome through the local web app or Chrome extension.
- Search by meaning or keywords instead of remembering exact titles.
- Rescue messy bookmark bars by detecting duplicates, vague titles, broken links, and folder chaos.
- Review cleanup suggestions first before applying them back to Chrome.
- Sync accepted cleanup back to Chrome through the extension, including duplicate removal and empty-folder cleanup.
- Generate tags and summaries with mock, OpenAI-compatible, or Ollama-compatible AI providers.
- Serve bookmarks to AI agents through an MCP server for Claude, Cursor, Windsurf, and other clients.
- Stay local by default with SQLite storage and no account requirement.
Browser bookmarks are easy to save and hard to use. After a few months, the bookmark bar becomes a mix of imports, duplicates, vague titles, abandoned folders, and links you cannot search by memory.
SiftMarks treats bookmark cleanup like a code review:
- Import the real browser state.
- Generate cleanup suggestions.
- Review and accept the changes you want.
- Apply them back to Chrome with the extension.
- Keep the cleaned library searchable for yourself and your AI tools.
Requirements:
- Node.js 18+
- npm
- Google Chrome if you want browser import/sync
npm install
npm run build
npm run devOpen the local dashboard:
SiftMarks stores its local database at:
~/.siftmarks/siftmarks.sqlite
npm run devThen open:
http://localhost:4399
The dashboard includes:
- Import for bookmark HTML files and local browser detection.
- Library for browsing bookmarks by folder, tag, and status.
- Search for finding saved pages.
- Rescue for reviewing cleanup suggestions.
- Settings for AI provider configuration.
- MCP for AI-client setup examples.
The extension talks to the local app at http://localhost:4399.
- Open
chrome://extensions. - Enable Developer mode.
- Click Load unpacked.
- Select:
apps/chrome-extension
After loading it, click the SiftMarks extension icon.
In the extension, click:
一键导入浏览器书签
This reads your current Chrome bookmarks and imports them into the local SiftMarks database.
Open the web dashboard:
http://localhost:4399/rescue
Click Generate or run rescue from the extension. SiftMarks will create cleanup suggestions such as:
- move bookmarks into clearer folders
- rename vague titles
- detect duplicate URLs
- mark broken links
- add tags
Review the suggestions, accept the ones you want, then sync them back.
In the extension, click:
同步回 Chrome
The extension applies accepted changes through the Chrome Bookmarks API. It can also:
- merge duplicate URLs
- remove empty folders
- consolidate scattered folders into readable top-level categories
Chrome will show a confirmation before modifying bookmarks. If Chrome Sync is enabled, those changes may sync to your Google account.
Build first:
npm run build:packagesThen use the local CLI:
npm run cli -- init
npm run cli -- stats
npm run cli -- doctor
npm run cli -- search "mcp browser automation"
npm run cli -- rescue
npm run cli -- export ./siftmarks-export.jsonImport a browser-exported bookmark HTML file:
npm run cli -- import ./bookmarks.htmlIndex bookmarks for summaries, tags, and embeddings:
npm run cli -- index --limit 100By default, SiftMarks uses the mock AI provider, so indexing does not send data to an external AI service unless you configure one.
SiftMarks can expose your bookmark library to AI clients through MCP.
Build the server:
npm run build:packagesStart it manually:
npm run cli -- mcpClaude Desktop example:
{
"mcpServers": {
"siftmarks": {
"command": "node",
"args": ["/absolute/path/to/SiftMarks/apps/mcp-server/dist/index.js"]
}
}
}Available MCP tools include:
| Tool | Purpose |
|---|---|
search_bookmarks |
Search saved bookmarks |
read_bookmark |
Read one bookmark in detail |
list_tags |
List tags and counts |
list_folders |
List folders and counts |
find_related_bookmarks |
Find related saved pages |
summarize_collection |
Summarize by tag or folder |
save_bookmark |
Save a new bookmark |
run_bookmark_rescue |
Generate cleanup suggestions |
get_bookmark_stats |
Get library statistics |
SiftMarks supports three AI modes:
| Mode | Use Case |
|---|---|
| Mock | Default. No external AI calls. Good for local testing. |
| OpenAI Compatible | OpenAI, Azure OpenAI, Groq, Together, or compatible endpoints. |
| Ollama Compatible | Local models running through Ollama. |
Configure providers in the web Settings page.
No external AI calls are made unless you explicitly configure a provider.
SiftMarks is designed to be local-first:
- No account is required.
- Bookmark data is stored in local SQLite by default.
- The Chrome extension talks to your local app on
localhost:4399. - No telemetry is sent by the app.
- API keys are not logged.
- External AI calls are disabled unless you configure an AI provider.
Important: when you apply cleanup back to Chrome, Chrome itself may sync bookmark changes to your Google account if Chrome Sync is enabled.
siftmarks/
apps/
web/ Local Next.js dashboard and API
cli/ Command-line interface
mcp-server/ MCP stdio server
chrome-extension/ Chrome extension for import and sync-back
packages/
shared/ Shared types and utilities
db/ SQLite schema and data access
core/ Import, search, rescue, cleanup logic
ai/ Mock, OpenAI-compatible, and Ollama providers
indexer/ FTS, summaries, tags, embeddings
Common commands:
npm install
npm run dev
npm run build:packages
npm run build
npm run typecheckFor tests or experiments that should not touch your real bookmark library, point SiftMarks at a temporary home:
SIFTMARKS_HOME=/tmp/siftmarks-test npm run cli -- initSiftMarks currently includes:
- local web dashboard
- Chrome extension import
- Chrome sync-back for accepted cleanup
- SQLite storage
- keyword search and FTS indexing
- duplicate detection
- cleanup suggestions
- AI summaries and tags
- MCP server
- CLI workflow
Upcoming work may include richer semantic search, better folder policy editing, Firefox support, and full-page local archives.
MIT




