Skip to content

Releases: karakeep-app/karakeep

0.31.0

22 Feb 11:49

Choose a tag to compare

0.31.0

Welcome to the 0.31.0 release of Karakeep! This release brings synchronized reading progress, LLM-based OCR, a revamped import pipeline, drag-and-drop for lists, highlights on mobile, a lot of mobile polish, and fixes for some long standing bugs. Huge thanks to our contributors for this release @esimkowitz, @WieserDaniel, @chen-ye, @SnowSquire, @mokhovyk, @evan6seven, @ElectricTea, @RobertRosca, @sweepies, @usr3 and everyone who shipped code, triaged bugs, or shared feedback for this release.

If you enjoy using Karakeep, consider supporting the project here ☕️ or via GitHub here.

Buy Me A Coffee

And in case you missed it, we now have a ☁️ managed offering ☁️ for those who don't want to self-host. You can signup here 🎉.

New Features 🚀

  • Synchronized reading progress across all your devices (#2302). By @esimkowitz!
    • Your reading position is now saved and synced, so you can pick up right where you left off on any device.
  • LLM-based OCR as an alternative to Tesseract (#2442)
    • You can now use your configured LLM for OCR instead of Tesseract, which produces significantly better results for image and asset bookmarks.
  • Revamped Import pipeline (#2378)
    • The import experience got another big overhaul: a new import details page (#2451), a dedicated low-priority queue for import crawling (#2452), better progress tracking, ability to pause an import and more resilient error handling.
  • Drag-and-drop bookmarks into lists (#2469)
  • Highlights support on mobile (#2494)
    • You can now view and create highlights in the mobile app's reader view.
  • AI tag suggestions: instructs the model to limit auto-tagging to a subset of your existing tags for more consistent results (#2444).
  • Export lists in backups and exports (#2484)
    • Automated backups and full exports now include your lists.
  • Others:
    • Retry buttons for dangling (aka pending) bookmarks in the admin panel (#2341).
    • Add signup support to the mobile app.
    • OpenAI service tier configuration via OPENAI_SERVICE_TIER (#2339). By @RobertRosca!
    • Import from Instapaper (#2434). By @WieserDaniel!
    • Privacy-respecting bookmark debugger admin tool (#2373)
    • MCP server now supports custom configurable HTTP headers (#2436). By @chen-ye!
    • New search qualifiers:
      • source: filter to search by bookmark source (mobile, extension, web, etc.) (#2465).
      • tag: alias for # and ! alias for negation (#2425).
      • New "Title Contains" condition in the Rule Engine (#2354). By @mokhovyk!

UX Improvements ✨

  • Mobile app overhaul:
    • Native tabs and more native-feeling screens.
    • Animated UI feedback in the sharing modal (#2427).
    • Show bookmark count in the all lists view.
  • Better looking content fetching loading state in the bookmark preview.
  • Two-phase metadata updates so bookmarks show up faster while crawling is still in progress (#2467).
  • Links to apps, extensions and docs in the profile dropdown.
  • Extension autofocuses on note field on open (#2366). By @SnowSquire!
  • Improving the visual consistency of the settings page.
  • Opt-in OAuth auto-redirect for single-provider passwordless setups (#2483)
  • Add a download button for assets in the bookmark options menu.
  • API keys now show their last-used dates to better identify unused keys.
  • Fix masonry overflow in bookmark grids (#2400). By @evan6seven!
  • Hide confusing No suggestions message when no search suggestions are available.

Fixes 🔧

  • [Security] Sanitize reddit's crawling output to prevent stored XSS. This was reported by @ByamB4 and published as a github advisory (GHSA-mg93-f9mw-wpgj).
  • Eliminated O(n²) parsing of Netscape bookmark imports (#2338).
  • Smart lists can now be used in search qualifiers and in other smart list queries (#2470)
  • Parallelize content extraction in the crawler worker for faster crawling.
  • Batch meilisearch indexing requests for better performance (#2441).
  • Auto dismiss dialogs during crawling that might have caused worker crashes before.
  • Use user's preferred language for manual summarization (#2429).
  • Accept more permissive RSS feed content types (#2353). By @ElectricTea!
  • Fix clipping of reader view in smaller screens.
  • Fix overscrolling in some setting pages (e.g. AI settings).
  • Stop theme flashes with Cloudflare Rocket Loader (#2340). By @sweepies!
  • Retry 403, 429 and 5XX status codes from the crawler.
  • Lower priority of recrawling and mass admin actions to avoid starving interactive traffic.
  • Fix scrolling in manage lists/edit tags when inside a dialog (#2258).
  • Respect archived display behavior setting in mobile lists and tags (#2499).
  • Fix flicker on closing bookmark preview on search page.
  • Share PDFs from the mobile app as files instead of links.
  • Fix high CPU usage of browser container after large imports due to leaking contexts. (#2503)
  • Reader settings preview in the mobile app now matches reader view formatting (#2365). By @esimkowitz!
  • When saving an image or a link from a page using "Add to Karakeep" menu item, the title of the original page is no longer incorrectly used for that link.

For Developers 🛠️

  • Docker images moved from Alpine to Debian.
  • OpenTelemetry instrumentation for database queries and extra tracing in OTEL traces (#2453).
  • Prometheus metric for bookmark crawl latency (#2461).
  • New checkUrl API endpoint to check if a URL is already bookmarked.
  • attachedBy field in the update tags API endpoint to mark the tag as added by human or AI (#2281).
  • Upgraded to Expo SDK 54, React 19.2.1, and Node.js 24.
  • CLI can now search bookmarks (#2426).

Screenshots 📸

Reader Progress

https://github.com/user-attachments/assets/86b259f6-2ce7-493f-a02c-d883c76c901c

Import Details

https://github.com/user-attachments/assets/b37c91a5-b74a-4de5-94d3-f25c346cae7b

Upgrading 📦

To upgrade:

  • If you're using KARAKEEP_VERSION=release, run docker compose pull && docker compose up -d.
  • If you're pinning it to a specific version, bump the version and then run docker compose pull && docker compose up -d.

All Commits

Read more

0.30.0

01 Jan 10:50

Choose a tag to compare

0.30.0 (New year release 🎁)

Welcome to the 0.30.0 release of Karakeep and happy new year! This release comes with "2025 wrapped" (a bit late), PDF archives, new reader settings, avatars, reddit crawling improvements, and more! Huge thanks to our contributors for this release @esimkowitz, @Moondragon85, @rzxczxc, @colado, @Yeraze, @eriktews and everyone who shipped code, triaged bugs, or shared feedback for this release.

If you enjoy using Karakeep, consider supporting the project here ☕️ or via GitHub here.

Buy Me A Coffee

And in case you missed it, we now have a ☁️ managed offering ☁️ for those who don't want to self-host. We're in public beta now and you can signup here 🎉.

New Features 🚀

  • 2025 Wrapped is here to celebrate your year in Karakeep (#2322).
  • PDF archives
    • Archive bookmarks as PDFs, generated automatically during crawling or on-demand (#2309).
    • Set CRAWLER_STORE_PDF=true to enable auto PDF archiving.
  • Unified reader settings (font, size, etc) across all devices with per-device overrides (#2230). By @esimkowitz!
  • Better metadata extraction:
    • Reddit posts should now be crawled correctly, and banners should be fetched more reliably.
    • Fixed YouTube thumbnail and author extraction.
    • Fixed Amazon product image extraction (where it was sometimes showing the prime logo) (#2204, #2108). By @Yeraze
  • Upload custom user avatars for more personal profiles (#2296).
  • AI Setting customization:
    • Customize tag styling (case, separators, language) per user. It's highly recommended to set the tag style for more consistent tags (#2312).
    • Per-user toggles to disable auto-tagging and/or auto-summarization (#2275).
  • Others:
    • Import libraries from Matter with full export support (#2245). By @Moondragon85
    • Bulk remove bookmarks from lists (#2279).
    • Add a new rule condition to rule engine: "URL Does Not Contain" (#2280).
    • Configure an OpenAI proxy via OPENAI_PROXY_URL (#2231). By @rzxczxc
    • Added is:broken search qualifier to show links that failed crawling (#2225).
    • Edit list now in the mobile app (#2310). By @colado

UX Improvements ✨

  • Our docs got a facelift! The docs got some styling, the pages got re-organized and we now have a "Using Karakeep" section that explains some of the core concepts of Karakeep.
  • Replace bookmark banners and download attachments directly from the drop down menu (#2328).
  • Sidebar scrollbar looks cleaner, and pending list invites show as a badge in the sidebar.
  • Bookmark edit dialog now includes notes.
  • Bookmark owner avatars now show up in collaborative lists.
  • Mobile UI/UX improvements:
    • Fixed title on mobile to be at most 2 lines long.
    • Mobile settings screens should now feel more native (#2307).
    • OLED-friendly colors in the Android app matching the colors of the ios app (#1958).
    • Toasts on iOS now appear correctly above the open modals (#2320). By @colado
    • Shared lists now appear in a dedicated subsection on mobile.
    • Adding a bookmark to a list now shows a spinner during loading (#2283).
    • Server version now appears in mobile settings (#2276).
    • Fixed the confusing "tick button" beside the server address during login.

Fixes 🔧

  • Fixed missing db indicies that was causing slow bookmark queries (#2246, #2287).
  • Improved Ollama summaries by using the generate endpoint (#2324). By @eriktews
  • Fixed HTML bookmark imports failing on empty folder names (#2300).
  • Fixed non-link bookmarks stuck in pending summarization (#1605).
  • Improved tagging prompts and error-page detection.
  • Reject spoofed content types on file uploads.
  • Preserve failure counts when rescheduling rate-limited domains (#2303).
  • Fixed duplicate backdrop buttons in reader view (#2234). By @colado
  • RSS feed fetching is now spread over the hour (#2227).
  • Asset preprocessing worker timeout is now configurable (91784cd).
  • Fixed bypassing email verification in apiKey.exchange.
  • Added limits on number of rss feeds and webhooks per user configurable by admins.
  • Fixed a bug where failed crawling leave bookmarks as pending tagging in the admin dashboard.

For Developers 🛠️

  • OpenTelemetry integration with OTLP exporter (#2318, #2321).
  • CLI can list users for admins.
  • We're now defaulting to Node.js 24 (the current LTS).
  • Breaking: In bookmark APIs includeContent now defaults to false. This change was announced a couple months ago, and is taking effect in this release.

Community Projects 💡

Screenshots 📸

Wrapped 2025

karakeep-wrapped-2025

Reader Settings

https://github.com/user-attachments/assets/4d81cb80-f9b8-43f2-998a-736f18e33038.

AI Settings

https://github.com/user-attachments/assets/48032bf6-5413-44ee-9c3b-ac7b385aeccf

Upgrading 📦

To upgrade:

  • If you're using KARAKEEP_VERSION=release, run docker compose pull && docker compose up -d.
  • If you're pinning it to a specific version, bump the version and then run docker compose pull && docker compose up -d.

All Commits

Read more

0.29.3

12 Dec 09:14

Choose a tag to compare

Well. Upgrading Nextjs one more time to patch CVE-2025-67779.

0.29.2

11 Dec 23:12

Choose a tag to compare

Upgrading Nextjs to patch two new vulnerabilities in react CVE-2025-55184 & CVE-2025-55183. This is on top of the critical vulnerability (CVE-2025-66478) that was patched in 0.29.1.

0.29.1

03 Dec 16:56

Choose a tag to compare

0.29.1

A patch release for 0.29.0 with the fix of NextJs CVE: CVE-2025-66478

0.29.0

29 Nov 18:26

Choose a tag to compare

0.29.0

Welcome to the 0.29.0 release of Karakeep! This release ships some of our most awaited features. Collaborative lists, automated bookmark backups, search auto complete, highlighs are getting notes and search, and the mobile app is getting some more love. As usual thanks to @aa-ko, @fivestones, and everyone who shipped code, triaged bugs, or shared feedback for this release.

If you enjoy using Karakeep, consider supporting the project here ☕️ or via GitHub here.

Buy Me A Coffee

And in case you missed it, we now have a ☁️ managed offering ☁️ for those who don't want to self-host. We're still in private beta (you can signup for access here) and gradually letting more and more users in. We're in public beta now and you can signup here 🎉.

New Features 🚀

  • Collaborative lists are here! (#2146, #2152)
    • You can now invite collaborators to your lists and manage their access levels between viewers and editors.
    • This was the most requested feature on the roadmap, and it's now here!
  • Automated bookmark backups you can schedule once and forget (#2182)
    • Currently it only captures non-asset bookmarks, but I'm planning to include lists, tags, and other metadata in the future.
  • Search gets autocomplete so you can find the right filters and terms faster (#2178)
  • Highlights overhaul: notes + search bar on web, plus a dedicated highlights page on mobile (#2154, #2155, #2156, #2157)
  • Mobile catches up with smart list creation and an all-tags screen (#2153, #2163)
  • Crawler domain rate limiting to avoid getting throttled by external sites (#2115)
    • Configure it with CRAWLER_DOMAIN_RATE_LIMIT_WINDOW_MS and CRAWLER_DOMAIN_RATE_LIMIT_MAX_REQUESTS.
  • Import from MyMind (#2138)

UX Improvements ✨

  • Sidebar typography and colors should feel nicer (specially in dark mode).
  • Page titles are now correctly displayed in the browser tabs.
  • We have a friendlier 404 page for bookmarks/lists that don't exist.
  • You can now see stats about the source of your bookmarks in the usage stats page (extension, web app, mobile app, etc).

Fixes 🔧

  • Prompts lazily load js-tiktoken which should cut between 70-150MB of karakeep's memory usage (#2176)
  • The edit dialog wasn't correctly showing the extracted text from assets, this is now fixed (#2181).
  • IP validation allowlisting now allows bypassing all domains by setting CRAWLER_ALLOWED_INTERNAL_HOSTNAMES to ..
  • Fix a worker crash when hitting invalid URLs with proxy enabled.

For Developers 🛠️

  • GET /api/version endpoint for getting server version (#2167)
  • More visibility: HTTP status Prometheus counters, failed_permanent worker metric, and system metrics on web/worker containers (#2117, #2107)
  • Documentation updates for LOG_LEVEL and Raycast links (#2166, #1923) by @aa-ko and @fivestones

Screenshots 📸

Collaborative Lists

Screenshot 2025-11-29 at 6  23 18@2x

Automated Backups

Screenshot 2025-11-29 at 6  23 57@2x

Search Autocomplete

Screenshot 2025-11-29 at 6  24 54@2x

Upgrading 📦

To upgrade:

  • If you're using KARAKEEP_VERSION=release, run docker compose pull && docker compose up -d.
  • If you're pinning it to a specific version, bump the version and then run docker compose pull && docker compose up -d.

All Commits

0.28.0

08 Nov 21:26

Choose a tag to compare

0.28.0 (20k stars ⭐)

Welcome to the 0.28.0 release of Karakeep! We've have hit 20k stars on Github 🎉 (well 21k because I was too late with the release)! Thanks a lot for your support throughout this journey! This release brings a refreshed import pipeline, uploading custom attachments, revamped tags page, inline checklists, and a bunch of quality-of-life touches across the web app, extension and mobile app. Huge thanks to @BOTkirial, @qixing-jk, @@maya-doshi, @BenjaminMichaelis, @cloudchristoph, @claytono, as usual @xuatz and everyone who shipped code, triaged bugs, or shared feedback for this release.

If you enjoy using Karakeep, consider supporting the project here ☕️ or via GitHub here.

Buy Me A Coffee

And in case you missed it, we now have a ☁️ managed offering ☁️ for those who don't want to self-host. We're still in private beta (you can signup for access here) and gradually letting more and more users in.

New Features 🚀

  • Revamped import experience with progress tracking (#2001)
  • Revamped Tags page that adds search and pagination to better serve users with thousands of tags (#1987)
  • You can now upload custom attachments to bookmarks (#2100)
  • When deleting a list, you can now optionally delete all its children (#1989)
  • Server overview highlights service dependency health.
  • Inline checklist toggling for text bookmarks (#1933) – @BOTkirial
  • With every release, you'll be prompted to view what's new in that release from inside the app.
  • You can now pass custom headers from the mobile app to the server (#2103)
  • Extension improvements:
    • Tab bookmark badge indicator by @qixing-jk shows when a page is already bookmarked (#1745)
    • You can now write notes directly after saving a bookmark in the extension (#2104)

UX Improvements ✨

  • Grid view controls expose title/tag toggles and image fit options (#1960)
  • Bookmark cards can surface saved notes across web and mobile (#2083) – @xuatz
  • Manage Lists modal is searchable for faster sorting (#2029)
  • The tags page now has a "Create Tag" button (#1942)
  • You can now regenerate the API key without having to recreate it.
  • New title: seach qualifier for searching bookmarks by title (#1940)

Fixes 🔧

  • ⚠️ (Potentially breaking change) ⚠️ Stricter URL valdaition to protect against SSRF attacks (#2082)
    • Webhook requests now go through the proxy if there's one configured
    • All server-initiated requests (including webhooks) to internal IP addresses are now blocked by default unless explicitly allowed via CRAWLER_ALLOWED_INTERNAL_HOSTNAMES. If your webhooks are hitting internal services, you'll have to allowlist them via CRAWLER_ALLOWED_INTERNAL_HOSTNAMES.
    • Monolith now honors the configured crawler proxy.
    • Metascraper logo extraction now respects the crawler proxy.
  • Crawler memory footprint shrinks with targeted optimizations (#1748)
  • Allow karakeep to use newer openai models that was previously failing because of deprecated max_tokens (#2000) - @BenjaminMichaelis
    • You'll need to set INFERENCE_USE_MAX_COMPLETION_TOKENS=true in your .env file to use the new models. This is eventually going to become the default.
  • Admin maintenance jobs respect abort signals to stop gracefully
  • Search input no longer crashes on percent signs and also works correctly with IME composition
  • Fixed a crash when sharing a list publicly that didn't have any bookmarks (#1990)
  • Screenshots are now stored as jpegs instead of pngs to reduce file size
  • Fixed a bug that was preventing tag merging (#1938)
  • RSS imports can apply feed categories as tags (#2031)

For Developers 🛠️

  • Create bookmark API returns 200 instead of 201 when a bookmark already exists
  • CLI Improvements:
    • New commands to migrate data from one server to another
    • New command to dump a full account archive
    • A new wipe command to selectively clean up data from the account

Community Projects 💡

Karakeeper

3rd Party iOS/Safari Client - by @simplytoast1

Karakeeper now is providing an alternative iOS native mobile/desktop client for Karakeep beyond its existing functionality of providing a safari extension.

Karakeep Sync

A syncing tool for Karakeep - by @sidoshi

A rust-based syncing tool that syncs: Hacker News upvotes, Reddit saved posts, Github stars and Pinboard bookmarks automatically to Karakeep!

Screenshots 📸

Inline Checklists

Screenshot 2025-11-08 at 8  55 18@2x

Import Sessions

Screenshot 2025-11-08 at 8  58 21@2x

Service Health Indicators

Screenshot 2025-11-08 at 8  56 00@2x

Upgrading 📦

To upgrade:

  • If you're using KARAKEEP_VERSION=release, run docker compose pull && docker compose up -d.
  • If you're pinning it to a specific version, bump the version and then run docker compose pull && docker compose up -d.

All Commits

Read more

0.27.1

13 Sep 19:56

Choose a tag to compare

This is a hotfix release for 0.27.0.

🐞 Fixes

0.27.0

07 Sep 17:35

Choose a tag to compare

0.27.0

Welcome to the 0.27.0 release of Karakeep! This release brings website-aware previews, cookies support, redesigned background jobs page, and a lot of fixes and cleanups that accumulated over the past 1.5 months. Huge thanks to our contributors in this release:
@Ahmed-Abdel-karim, @qixing-jk, @youenchene, @Drashi, @thiswillbeyourgithub, @xuatz, @haappi, @CrazyWolf13, @landonepps, @dvdpearson, @vivienbcr, @yinan-c, @packetmonkey, @liCells and
everyone who reported issues and tested changes!

If you enjoy using Karakeep, consider supporting the project here ☕️ or via GitHub here.

Buy Me A Coffee

And in case you missed it from the last release, we now have a ☁️ managed offering ☁️ for those who don't want to self-host. We're still in private beta (you can signup for access here) and gradually letting more and more users in.

New Features 🚀

  • [Experimental] Karakeep now detects specific websites and renders a customized cards for them. We're starting with 4 special renders (and are accepting contributions for more):
    • X (twitter): Now shows a tweet embed by default.
    • Amazon: A card that shows the product.
    • Youtube: Renders a youtube embed (i.e. a player) by default.
    • Tiktok: Renders a tiktok embed (i.e. a player) by default.
    • If you want to see more websites supported, don't hesitate to send PRs. This is meant to evolve into karakeep understanding the different bookmark types (e.g. products, articles, etc) and showing more specialized cards for each type.
  • Background Jobs page got a complete redesign to better explain the different jobs (#1551)
  • Cookie support for crawling login-protected sites (#1664 by @liCells)
    • You can now pass a list of cookies for karakeep to use while crawling to access session-protected websites. Checkout the documentation of BROWSER_COOKIE_PATH here.
    • Note: This is an advanced feature. Cookies are extremely sensitive. Make sure you're handling them carefully. Also note that the cookies that you set are going to be shared with all the users in your instance. SingleFile remains the recommended way for accessing login-protected websites.
  • GIF asset support (#1876 by @Drashi)
  • Updated default chrome container to v124, make sure to update yours as well.

UX Improvements ✨

  • Browser Extension:
    • Theme selection and theme-adapting icon support (#1894 by @qixing-jk)
    • Constrain height of list and tag selectors to prevent viewport overflow (#1895 by @qixing-jk)
    • Both will come in the next extension release (aka soon).
  • Mobile:
    • Various mobile theme fixes (#1872)
    • Edit menu item on bookmark card
    • Add context aware sharing button in mobile app (#1785 by @xuatz)
    • Delete button and creation dates on info page
  • Render author, publisher, and publish date in bookmark view
  • Configurable number of grid columns in the bookmark grid (#1713)
  • Show loading indicator while the karakeep export is being generated (#1787/#1870 by @Ahmed-Abdel-karim)
  • Hide AI settings tab if inference isn’t configured (#1781)
  • Render human tags before AI tags (#1740 by @haappi)
  • Preserve selected bookmark preview section in link preview via query params
  • Hide bookmark actions from the navbar when no bookmark grid is shown
  • Dark mode titles fixed for public lists
  • Render AI summary in Markdown (#1869 by @youenchene)
  • Bookmark skeleton while search results are loading

Fixes 🔧

  • [Security] CSP policies on asset-serving paths
    • Fixes potential self-XSS on user uploaded assets.
    • Check the security advisory here.
    • Special thanks to @Skelmis for the disclosure!
  • Speed improvements:
    • Avoid prefetching assets and tags which should make the tags page loading smoother
    • Fixed a big (accidental) performance bottleneck in the API endpoints caused by API key validation. Re-login in your mobile app (and regenerate your API keys if you use any) for a significantly noticeable speed improvement.
  • Queue DB respects configured WAL mode
    • This fixes issues of slow imports and frequent locked databases
    • Enabling WAL is highly advisable
  • fix search query getting rest when bookmark preview is closed
  • Handle lists with slashes during imports and truncate long list names for more resilient imports
  • Don’t mark inference job as failed when content is missing (#1666)
  • fix WebView deceleration rate on iOS (#1835 by @landonepps)
  • Fix PDF detection when Content-Type includes charset (#1677)
  • Rule engine: deleting an action now doesn't auto-save (#1858)
  • Fix feed worker to use proxy when it's configured
  • Web UI will poll for longer (incrementally) as bookmarks are being fetched.
  • Fixed an issue with using SingleFile with S3 caused by unaccepted chars in filenames (#1765)
  • fix admin API route to be under /v1
  • fixed assets incorrectly marked as pending summarization
  • Add max output tokens env variable to control the max allowed number of tokens returned by the LLM (to control the costs).

For Developers 🛠️

  • Prometheus:
    • Workers now also export prometheus metrics. You need to enable the metrics endpoint and the port to crawl them.
    • Trpc latency was switched to histograms
    • karakeep_ prefix was added to all exported metrics (by @CrazyWolf13), you'll need to update your dashboards.
  • Enable/disable specific workers via env variables
  • You can now upload video attachments to bookmarks from the API (#1847 by @packetmonkey)

Upgrading 📦

To upgrade:

  • If you're using KARAKEEP_VERSION=release, run docker compose pull && docker compose up -d.
  • If you're pinning it to a specific version, upgrade the version and then run docker compose pull && docker compose up -d.

Also upgrade your chrome container to 124 if you have it pinned.

All Commits

Read more

0.26.0

20 Jul 13:22

Choose a tag to compare

0.26.0

Welcome to the 0.26.0 release of Karakeep! This release focuses on user management, servers improvements, and lots of fixes. We've a new comprehensive usage stats, reader mode, search history, S3 support, and much more. As always, we have amazing contributors in this release: @xuatz, @Ashok28, @HarryPeach, @mostafa-wahied, @adumat, @alexjsp, @apo-mak, @birnam, @deepanshu2711, @hametovbr, @irobot, @kdwils, @lexafaxine, @maelp, @rodsnts, @sheyabernstein, @simplytoast1, @thiswillbeyourgithub, @vhsdream!

If you enjoy using Karakeep, consider supporting the project here ☕️ or via GitHub here.

Buy Me A Coffee

Managed Karakeep ☁️

I have some news to share! With Pocket shutting down, I've been thinking about how to make Karakeep more accessible to a wider audience. So I've decided to start the journey of offering a managed karakeep instance to serve those who can't selfhost.
Karakeep wouldn't be where it is today without its amazing self-hosting community, and that will always remain my first priority. This managed offering is just an experiment. If it works, it could help support the development of the project. We're now starting a private beta, and you can join the waitlist here!

New Features 🚀

  • User Management & Authentication:
    • Added email verification support for new user registrations
    • Implemented password reset and forgot password functionality
    • Added user invitation system
    • Revamped signin/signup pages with better UX
    • Added per-user bookmark count / storage quotas
    • New delete account feature for users who want to remove their data
  • Search History: You'll now get search suggestions from your karakeep search history (#1627 by @lexafaxine)
  • File Upload Support: Added markdown file upload support (#1672 by @rodsnts)
  • Usage Statistics: New user stats page showing tons of stats about your bookmarks and usage of karakeep (#1523)
  • New Reader Mode: A new revamped reader mode with customizable font type and size (got jealous of how that of linkwarden looked!)
  • Proxy Support: Added proper proxy support for crawler network requests (#1265)
  • Server Improvements:
    • S3 Storage Support: Option to store assets in S3-compatible storage (#1703)
    • Prometheus Monitoring: We're now exposing a Prometheus endpoint for monitoring stats about the server (#758)
    • Rate Limiting: Added optional API rate limiting
    • Large HTML content now stored in asset storage (instead of db) for better performance
    • Allow enabling WAL mode on the database (opt-in, recommended)
    • Allow customizing parallelism for workers (#724)
  • Reddit Crawling: Reddit posts will now get a more relevant banner image (#1302 by @birnam)

UX Improvements ✨

  • Prioritize crawling user-added links over bulk imports (#1717)
  • Mobile app now has user setting for default bookmark view mode (#1723 by @xuatz)
  • More lenient JSON parsing for LLM responses (#1267)
  • Tweaks to mobile app icon padding with iOS tinted variant (#1620 by @alexjsp)
  • Minor styling changes to the "All Tags" page
  • Added icons to bookmark preview selectors
  • Clicking on search tooltip now opens the search language guide (#1540)
  • Added confirmation dialog for user deletion in admin panel (#1649 by @deepanshu2711)
  • Added tag clearing functionality to tag list in the mobile app(#1595 by @Ashok28)
  • Always visible search bar in the mobile app's tags list (#1596 by @Ashok28)

Fixes 🔧

  • Fixed OAuth creation failure due to missing UserSettings table (#1583)
  • Fixed webhook not firing on deletion (#1613)
  • Normalized leading hashes in tag names (#1351 by @mostafa-wahied)
  • Fixed import/export icons being swapped (#1682 by @HarryPeach)
  • Disabled metascraper readability plugin that was causing worker stuckness
  • Fixed jsdom console logs leaking into worker logs
  • Collapsed long runs of repeated whitespaces before tokenization to speed it up (#1622)
  • Fixed public image signed tokens for better caching
  • Fixed clear parent button in edit list dialog (#1742)
  • Fixed running workers in production without tsx for lower resource usage (#1673)
  • Fixed get-lists MCP tool (#1697 by @hametovbr)
  • Fixed image quality slider in mobile showing excessive decimal places (#1735)
  • Fixed mobile app crash when bookmark doesn't have archive or screenshot (#1584)
  • Migrated from Puppeteer to Playwright (#1296 by @maelp)
  • Video downloader now properly logs yt-dlp errors (#1624 by @irobot)

For Developers 🛠️

  • Added Helm chart support (link). (#1350 by @sheyabernstein)
  • Build & Deployment:
    • A much fancier linux installation script (#1576 by @vhsdream)
    • Added start-dev.sh script for easier development (#1628 by @xuatz)
    • Upgraded to pnpm@9.15.9 (#1544 thanks to @xuatz)
    • Migrated from ESLint to oxlint for faster linting (#1642 by @xuatz)
    • We now have a CLAUDE.md file to help the vibe coders out there.

Community Projects 💡

Karakeeper

3rd Party Safari Extension - by @simplytoast1

Screenshot 2025-07-20 at 2  16 48@2x

Karakeep Homedash

by @CodeJawn

image

Screenshots 📸

Usage Stats

image

The new Sign In page

Screenshot 2025-07-20 at 1  58 50@2x

Recent Searches

Screenshot 2025-07-20 at 1  59 55@2x

Reader Mode

Screenshot 2025-07-20 at 2  04 29@2x

Upgrading 📦

To upgrade:

  • If you're using KARAKEEP_VERSION=release, run docker compose pull && docker compose up -d.
  • If you're pinning it to a specific version, upgrade the version and then run docker compose pull && docker compose up -d.

Note: This release includes database schema changes. The migration will run automatically on startup.

All Commits

Read more