01The browser extension
Search your bookmarks from the address bar, and save the page you are on without leaving it. The extension talks to the same local server the web page does.
- Start the server:
facetmark serve. - Load the extension from
extension/in the repository — Chrome: chrome://extensions, developer mode, Load unpacked. - Open its options. If the server is on the default port it pairs itself; otherwise paste the output of
facetmark token.
Nothing is uploaded and there is no account. If the server is not running, the extension does nothing at all.
02Claude, Cursor, and anything else speaking MCP
facetmark ships an MCP server, so an assistant can search your bookmarks as a tool instead of you pasting links into a chat window.
facetmark mcp{
"mcpServers": {
"facetmark": {
"command": "facetmark",
"args": ["mcp"]
}
}
}Cursor takes the same shape in its own MCP settings. If facetmark is not on the PATH the editor sees, give the absolute path — that is the failure in nearly every report of “the tool never appears”.
It can search, read a bookmark, list sittings and ask a question over your library. It cannot delete anything, cannot write settings and cannot reach outside the database.
03karakeep
If you keep your links in karakeep, facetmark can index from there instead of from a browser export.
A round trip through karakeep's own keyword extraction cost 0.81 points of Recall@5 (CI95 −2.44 to +0.81) and agreed with the direct index on the top result 79.06 % of the time. The vocabulary collapses: 19,016 distinct terms became 13. The verdict recorded in the repository is roundtrip_unfaithful — usable, not equivalent. Index the pages directly if you can.
04The command line
Everything the page does, and a few things it does not. Add --help to any of them.
| Command | Does |
|---|---|
facetmark import | Read a bookmarks export in |
facetmark browsers | Find bookmark files already on this machine |
facetmark index | Build or top up the index |
facetmark reindex | Build it all again from scratch |
facetmark search | Search from the shell |
facetmark show | Everything about one bookmark |
facetmark sessions | List the sittings |
facetmark stats | The Library screen, as text |
facetmark health | Find dead links |
facetmark serve | The web page and the API |
facetmark mcp | The MCP server |
facetmark token | Print the pairing token |
facetmark config path | Where settings are written |
facetmark config show | Every setting, masked |
facetmark migrate | Bring an old database forward |
facetmark demo | A fake library, to look around in |
facetmark eval | Re-run the retrieval measurements |
facetmark version | Version |
facetmark demo is the honest way to decide whether you want this: it builds a library out of generated pages, with no key and no network, so you can click every screen before importing anything of your own.
05Backing it up, and moving it
One file. Copy it and you have copied everything — bookmarks, text, vectors, graph, history.
facetmark statsThe database runs in WAL mode, so a copy taken while something is writing can miss the tail of the log. Stop facetmark serve, copy, start it again.
- Moving machines: copy the file, then
facetmark migrateif the versions differ. - Your bookmarks are also still in your browser. The worst case is re-importing and rebuilding, which costs time and a few model calls, not data.
- The config file is separate and holds your API key. Back it up somewhere you would put a password, or not at all.