Self-hosted service
karakeep-app/karakeep avatar
karakeep-app/karakeep

Karakeep: A Self-Hosted Bookmark-Everything App with AI Tagging and Full-Text Search

A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search

29,058 stars1,507 forksTypeScriptAGPL-3.0

At a glance

What is it?
Karakeep (formerly Hoarder) is a self-hostable app for bookmarking links, notes, images, and PDFs, with automatic fetching, LLM-based tagging, and full-text search. It targets data hoarders who want a read-it-later tool with AI features, but its complexity and AGPL license warrant careful consideration.
Who is it for?
Adopt Karakeep if you are a self-hoster who wants a single tool for links, notes, images, and PDFs, with automatic tagging and full-text search, and you are comfortable running a multi-service stack (Next.js, Meilisearch, Puppeteer, optional Ollama). Do not adopt it if you need a minimal, lightweight bookmark manager or if you require a permissive license, because AGPL-3.0 has strong copyleft implications.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The Problem Karakeep Solves

Karakeep addresses a specific pain point for people who collect a lot of content from the web and want to find it later. The README describes the author's habit of browsing Reddit, Twitter, and Hacker News on a phone, bookmarking articles and tools to read later on a laptop. Existing tools like Pocket and memos lacked either link previews or automatic tagging. Karakeep combines bookmarking of links, notes, images, and PDFs with automatic fetching of titles and descriptions, plus LLM-based tagging and summarization. It is built for data hoarders who want a self-hosted, read-it-later app that does not require manual organization of every saved item. The target user is someone who runs services on a home server and wants an all-in-one archiving and search tool, not just a simple bookmark list.

How It Works: Architecture and Data Flow

The stack is documented in the README: Next.js with the app router for the web application, Drizzle for the database and migrations, NextAuth for authentication, tRPC for client-server communication, Puppeteer for crawling bookmarks, OpenAI for AI features, and Meilisearch for full-content search. The data flow starts when a user saves a link, note, image, or PDF. For links, Puppeteer fetches the page to extract titles, descriptions, and images. The content is then stored, and Meilisearch indexes it for full-text search. For images, OCR extracts text. The AI layer, which can use OpenAI or local models via Ollama, generates tags and summaries. The architecture is modular: you can run the web app, the worker that handles crawling and AI, and the search engine as separate services. This is a heavier setup than a simple single-binary app, but it allows scaling components independently.

Getting It Running: Commands and Configuration

The README points to the official documentation for installation and configuration, so the exact commands are not in the README itself. However, the docs link to a Docker installation guide, which is the recommended path for self-hosting. Configuration options are documented separately, including database setup, Meilisearch connection, and AI provider settings. The README mentions support for local models via Ollama, which means you can configure the AI endpoint to point to an Ollama instance instead of OpenAI. The demo at try.karakeep.app is available with credentials demo@karakeep.app and demodemo, but it is read-only. For a real deployment, you would clone the repository or use Docker images, set environment variables for database credentials and search engine keys, and run migrations via Drizzle. The documentation also covers security considerations, which is a section you should read before exposing the app publicly.

AI Tagging and Search: The Core Value

The standout feature is automatic tagging and summarization powered by LLMs. Karakeep can generate tags for saved items without manual input, which is a huge time-saver for people who dump a lot of links. The README states that the author wanted automatic tagging because memos lacked it. The AI can run on local models via Ollama, which is important for privacy-conscious self-hosters who do not want to send their bookmarks to a cloud service. Full-text search is handled by Meilisearch, and semantic search is also mentioned, meaning you can search by meaning rather than exact keywords. This combination of AI tagging and semantic search makes Karakeep more than a bookmark manager; it becomes a personal knowledge base. However, the quality of tags depends on the model you use, and the documentation does not specify default prompts or accuracy guarantees, so you may need to tune the setup.

Limitations and Failure Modes

Karakeep is not a lightweight tool. It requires multiple services: a database, Meilisearch, and a Puppeteer-based crawler, plus optional AI services. This is a significant operational overhead for a bookmark app. The README does not provide resource requirements, but running Next.js, a headless browser, and a search engine will consume more memory and CPU than a simple SQLite-based app. Another limitation is the reliance on external services for full archival: monolith and yt-dlp are used for page and video archiving, which means you need to install and maintain those tools. The AI features depend on an API key or an Ollama setup, which adds a configuration step. The demo is read-only, so you cannot test the full workflow without deploying it. If the crawler fails to fetch a page, you lose the preview and tags, and the README does not describe fallback behavior. For users who just want to save links and read them later, Karakeep may be overkill.

Alternatives and How Karakeep Differs

The README lists several alternatives. memos is a self-hosted note-taking app that the author loves, but it lacks link previews and automatic tagging. Karakeep adds those features. mymind is the closest commercial alternative and inspired the project. Raindrop is a polished open-source bookmark manager that supports links, images, and files, but it is not self-hostable. Linkwarden is an open-source self-hostable bookmark manager focused on links and collaborative collections, but it does not have the same AI tagging or OCR capabilities. Wallabag and Shiori are read-it-later apps, but they are more traditional and do not offer AI features. The key difference is Karakeep's integration of AI and full-text search, which turns a bookmark list into a searchable archive. If you do not need AI or OCR, a simpler tool like Linkwarden might be easier to maintain.

Maintenance, License, and Upgrade Considerations

Karakeep is licensed under AGPL-3.0, which is a strong copyleft license. If you modify the code and provide it as a network service, you must make your modifications available to users. This is a critical factor for companies or developers who want to embed or extend the app. The project is actively maintained, with recent releases including v0.33.2 in August 2026, and the last push was on the same day. The README mentions a managed cloud service, which supports development. Upgrades are handled through releases, and the documentation likely covers migration steps. However, because the app uses multiple services and a database schema managed by Drizzle, upgrading may require running migrations and checking compatibility with Meilisearch and other components. The translation system uses Weblate, which indicates an active community. For a self-hoster, the maintenance cost includes keeping the crawler and AI services updated, as well as monitoring the health of the search index.

Editorial conclusion

Adopt Karakeep if you are a self-hoster who wants a single tool for links, notes, images, and PDFs, with automatic tagging and full-text search, and you are comfortable running a multi-service stack (Next.js, Meilisearch, Puppeteer, optional Ollama). Do not adopt it if you need a minimal, lightweight bookmark manager or if you require a permissive license, because AGPL-3.0 has strong copyleft implications. Before deploying, verify the Docker installation steps and configuration options in the official docs, especially security considerations and how to set up the required services like Meilisearch and the database. Also test the AI features with your chosen model provider to confirm tagging quality meets your expectations.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes