# Karakeep
Karakeep is a self-hostable bookmark-everything app for links, notes, images and PDFs, with automatic tagging by LLM. TypeScript, AGPL-3.0, owned by Localhost Labs Ltd. It was called **Hoarder** until the rename.
Its own line: *"a self-hostable bookmark-everything app with a touch of AI for the data hoarders out there."*
The name comes from the Arabic كراكيب (*karakeeb*), colloquial for the miscellaneous clutter in a messy drawer. Stuff that looks disorganised but that you can't throw away, because somehow it matters. That is a fair description of most people's saved links.
## What it does
**Capture**, from wherever you are: Chrome, Firefox and Safari extensions, iOS and Android apps, a REST API, RSS auto-hoarding, and importers for Chrome, Pocket, Linkwarden, Omnivore and Tab Session Manager. Browser bookmarks can stay in sync through floccus.
**Enrich**, automatically: titles, descriptions and images fetched on save; LLM tagging and summarisation (local models via [[Ollama]] are supported); OCR over images so text inside a screenshot becomes searchable.
**Preserve**, which is the part most read-it-later tools skip: full-page archival through `monolith`, and video archiving through `yt-dlp`. Link rot doesn't take your library with it.
**Retrieve**: full-text *and* semantic search across everything, lists, a rule-based engine for automated organisation, bulk actions, and stored highlights from anything you saved.
Plus the operational things that decide whether you can actually live in a tool: offline mobile reading, SSO, multi-language, dark mode.
## The agent angle
This is the part that dates the project to now rather than 2019. Karakeep ships a proper [CLI](https://docs.karakeep.app/integrations/command-line) and a set of [official agentic skills](https://docs.karakeep.app/integrations/agentic-skills), explicitly aimed at harnesses like [[OpenClaw]] and [[Hermes Agent]].
So the archive isn't only something you browse. It's a corpus an agent can query, tag, file and pull from on your behalf, running on your own hardware against your own data.
## Self-hosting, and the escape hatch
Docker-first. Stack is Next.js with app router, Drizzle for the database, NextAuth, tRPC, Puppeteer for crawling, Meilisearch for full-text search, and an LLM provider of your choosing.
There's a hosted option at `cloud.karakeep.app` for anyone who doesn't want to run it, and subscriptions fund development. A read-only demo runs at `try.karakeep.app`.
Worth noting the license: **AGPL-3.0**, not MIT. Stricter than most tools in this space, and the right choice for something whose main competitive risk is a cloud vendor running it as a service without contributing back.
## Where it sits
The author's own comparison, which is unusually honest for a README:
- **mymind** is the closest thing and the acknowledged inspiration, but commercial.
- **Raindrop** is polished and not self-hostable.
- **Pocket** is dead. Mozilla shut it down.
- **Linkwarden** and **Wallabag** are self-hostable but link-focused.
- **memos** is great for quick notes but doesn't preview or archive links, which is exactly the gap Karakeep was built to fill.
## Why I keep this note
I already have this problem solved by [[Readwise]] Reader, and I have a whole set of skills built on top of it. So this is not a switch, it's a hedge worth understanding.
Two things make it worth the note:
**Pocket dying is the actual lesson.** A read-it-later archive is a decade-long asset built inside someone else's business model. Mine currently lives with a vendor I like, but the failure mode is not "the vendor gets worse", it's "the vendor stops existing" and I get a CSV export of something that was never really a CSV. Knowing there's a self-hosted target with importers already written is the cheap insurance.
**The agent-readable archive is the direction of travel.** Ship a CLI and official skills, and your saved content stops being a reading queue and becomes queryable memory. That's the same shift I keep circling with [[Obsidian]] and the vault: the value isn't in what you stored, it's in what can be asked of it later.
Not switching. Watching, and keeping the export path in mind.
## References
**Main**
- [karakeep.app](https://karakeep.app/) — home
- [Documentation](https://docs.karakeep.app)
- [karakeep-app/karakeep](https://github.com/karakeep-app/karakeep) — source
- [Live demo](https://try.karakeep.app) — `
[email protected]` / `demodemo`, read-only
- [Karakeep Cloud](https://cloud.karakeep.app) — managed hosting
**Docs**
- [Installation (Docker)](https://docs.karakeep.app/Installation/docker)
- [Configuration](https://docs.karakeep.app/configuration)
- [Security considerations](https://docs.karakeep.app/security-considerations)
- [Development setup](https://docs.karakeep.app/Development/setup)
- [Command-line integration](https://docs.karakeep.app/integrations/command-line)
- [Agentic skills](https://docs.karakeep.app/integrations/agentic-skills)
**Clients**
- [Chrome extension](https://chromewebstore.google.com/detail/karakeep/kgcjekpmcjjogibpjebkhaanilehneje)
- [Firefox add-on](https://addons.mozilla.org/en-US/firefox/addon/karakeep/)
- [iOS app](https://apps.apple.com/us/app/karakeep-app/id6479258022)
- [Android app](https://play.google.com/store/apps/details?id=app.hoarder.hoardermobile)
**Community**
- [Discord](https://discord.gg/NrgeYywsFh)
- [@karakeep_app on X](https://x.com/karakeep_app)
- [Translations on Weblate](https://hosted.weblate.org/engage/hoarder/)
- [Localhost Labs Ltd](https://localhostlabs.co.uk) — owner
## Related
- [[Readwise]]
- [[Obsidian]]
- [[Self-hosting]]
- [[Ollama]]
- [[OpenClaw]]
- [[Hermes Agent]]
- [[AI Agent Skills]]
- [[Next.js]]
- [[TypeScript]]
- [[Docker]]
- [[Open Source]]