Karakeep
Self-hosted bookmark-everything app with an official MCP server, CLI, and REST API.
Karakeep (formerly Hoarder) stores links, notes, images, and PDFs, archives full pages, and tags them with an LLM you choose. The Builder ships an MCP server (apps/mcp, published as @karakeep/mcp) on top of the REST API, so an agent can create, search, list, tag, and highlight bookmarks against a self-hosted instance.
- you want an agent to file every link you send it into lists and tags on a server you control
- you are replacing Pocket or Omnivore and want full-page archives with LLM tagging from a local Ollama
- AGPL-3.0: a modified instance you host for others must publish its source
- docker-compose expects Meilisearch and a headless Chrome sidecar; without them search and crawling degrade
- MCP server exposes tools only, no resources; RSS feeds, rules, and admin stay in the UI or REST API
Last activity Aug 31, 2026. Fit: adaptable 2, operable 3.
Adaptable: what is yours to change
Make it yours
Config only31 things to edit
Everything is env-driven; docs.karakeep.app/configuration says no config file is used. Point DATA_DIR at a volume, set NEXTAUTH_SECRET and NEXTAUTH_URL, then pick an inference backend (OPENAI_API_KEY plus INFERENCE_TEXT_MODEL, or OLLAMA_BASE_URL) and toggle INFERENCE_ENABLE_AUTO_TAGGING, INFERENCE_ENABLE_AUTO_SUMMARIZATION, and SEMANTIC_SEARCH_ENABLED. Crawler behavior (screenshots, PDFs, full-page archive, yt-dlp) is a set of CRAWLER_* switches. The MCP client needs KARAKEEP_API_ADDR and KARAKEEP_API_KEY.
- Env vars
DATA_DIRNEXTAUTH_SECRETNEXTAUTH_URLPORTDISABLE_SIGNUPSOAUTH_WELLKNOWN_URLOAUTH_CLIENT_IDOAUTH_CLIENT_SECRETOPENAI_API_KEYOPENAI_BASE_URLOLLAMA_BASE_URLINFERENCE_TEXT_MODELINFERENCE_IMAGE_MODELINFERENCE_LANGINFERENCE_ENABLE_AUTO_TAGGINGINFERENCE_ENABLE_AUTO_SUMMARIZATIONSEMANTIC_SEARCH_ENABLEDEMBEDDING_TEXT_MODELMEILI_ADDRMEILI_MASTER_KEYBROWSER_WEB_URLCRAWLER_FULL_PAGE_ARCHIVECRAWLER_STORE_SCREENSHOTCRAWLER_VIDEO_DOWNLOADOCR_LANGSASSET_STORE_S3_BUCKETSMTP_HOSTKARAKEEP_API_ADDRKARAKEEP_API_KEY- Config files
docker-compose.yml.env- Prompt files
- none
- Accounts you need
- OpenAI or another OpenAI-compatible provider (optional, for tagging)Ollama (optional, local alternative)
Source
- github.com/karakeep-app/karakeep
- AGPL-3.0 license
- Last commit Aug 31, 2026
- 28,741 stars
Operable: what an agent can drive
Interface
OfficialMCP serverpublished by the builderlocal
How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.
- Docs
- github.com/karakeep-app/karakeep/tree/main/apps/mcp
- Tools
search-bookmarksget-bookmarkget-bookmark-contentcreate-bookmarkupdate-bookmarkdelete-bookmarkget-listscreate-listupdate-listadd-bookmark-to-listget-tagsattach-tag-to-bookmarkget-assetlist-highlightscreate-highlight
Reach
Partial coverage. 8 of 10 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| Bookmark links, notes, images, and PDFs | Reachable | create-bookmark creates text and URL bookmarks; get-asset covers stored files (apps/mcp/README.md) |
| Full text and semantic search | Reachable | search-bookmarks tool |
| Sort bookmarks into lists and smart lists | Reachable | get-lists, create-list, update-list (query field for smart lists), add-bookmark-to-list |
| Tag bookmarks | Reachable | get-tags, update-tag, attach-tag-to-bookmark, detach-tag-from-bookmark |
| Highlight and annotate stored content | Reachable | list-highlights, create-highlight, update-highlight, delete-highlight |
| Full page archival and video archiving | Reachable | crawler runs automatically after create-bookmark; no tool to re-archive on demand |
| LLM auto-tagging and summarization | Reachable | runs server-side on new bookmarks when inference env vars are set; no tool to trigger it explicitly |
| Share a list with collaborators or publicly | Reachable | update-list accepts the public flag; collaborator invites not in the tool list |
| Subscribe to RSS feeds for auto-hoarding | Not reachable | no feed tool in apps/mcp; REST API and web UI only |
| Rule engine, webhooks, and user administration | Not reachable | not exposed by the MCP server; web UI and REST API only |
Code stack
- Languages
- TypeScript
- Frameworks
- Next.jsDrizzletRPC
- Package manager
- pnpm
- Database
- SQLiteMeilisearch
- Hosting target
- docker
- Built
- Mixed (recorded, never ranked)
Model stack
- Providers
- OpenAI-compatibleOllama
- Models
- none
- Keys you need
OPENAI_API_KEYOPENAI_BASE_URLOLLAMA_BASE_URLINFERENCE_TEXT_MODELINFERENCE_IMAGE_MODELEMBEDDING_OPENAI_API_KEY- Prompts live in
- none
Skills
Ships a single skill alongside the app and its MCP server.
- Kind
- bundled
- Paths
skills/SKILL.md
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README: NextJS web app with app router; docker install docs | 95% |
| executionModel | README: LLM-based automatic tagging and summarization, local models through Ollama; core CRUD needs no model | 80% |
| operability | apps/mcp in the same repo and org; README 'Supported Tools' list | 95% |
| effort | docs.karakeep.app/configuration: configuration handled entirely through environment variables | 90% |
| editions | README: self-hosting first; no paid edition found on karakeep.app | 85% |
| active | pushedAt 2026-08-31; release 0.33.1 on HN 2026-08-01 | – |
| provenance | CLAUDE.md and AGENTS.md at repo root; project predates them (2024) | 40% |
| reach | 90% |
Open questions
- Does the REST API expose feed subscriptions and rules so a second interface could reach them?
- Confirm the CLI (docs.karakeep.app/integrations/command-line) covers admin tasks the MCP omits
Sources
- github.com/karakeep-app/karakeep sourcing:notes-knowledge:community
- github.com/karakeep-app/karakeep/tree/main/apps/mcp analysis
- docs.karakeep.app/configuration analysis