github karakeep-app/karakeep v0.32.0
0.32.0

latest releases: cli/v0.32.0, sdk/v0.32.0, mcp/v0.32.0...
4 hours ago

Welcome to the 0.32.0 release of Karakeep! The mobile app is getting a major redesign by @esimkowitz so that it feels more native and friendly to use. Our long-overdue Safari extension is now available on the app store. Karakeep is now more AI-agents friendly with an official skill, revamped and more powerful CLI, granular API keys (and more coming in the next release). SingleFile is now integrated inside the karakeep extension itself for better crawling of authenticated pages. Keyboard shortcuts for faster actions across the app. And tons of fixes!

This release has a huge list of contributors. Some frequent faces, and many contributing their first PRs. Thanks @esimkowitz, @Mxrk, @beluga73, @Ahmed-Abdel-karim, @GSAlex, @cinconueves, @keslerm, @xingzihai, @howwohmm, @vbalko-claimate, @MaximePinot, @apo-mak, @NikhilChowdhury27, @maxim-mityutko, @xuatz, @ir31k0, @Joly0, @larsborn, @venku122, @lmgarret, @hoilc, @zerone0x, @mrInvincible29, @Go2Engle, @faximan.

Note: the changes mentioned here for the extension and mobile releases will need to go through the different store (apple, google, mozilla) reviews. So it might take a couple of days until all of them are released.

If you enjoy using Karakeep, consider supporting the project here ☕️ or via GitHub here. Also share Karakeep's managed offering (☁️ link) to your friends who're not into selfhosting. We're offering yearly subscriptions now.

Buy Me A Coffee

New Features 🚀

  • Karakeep's Safari extension is now available on the App Store (link), closing Karakeep's oldest open issue (#10).
  • Huge mobile app revamp lead by @esimkowitz:
    • More native screens, headers and action buttons by @esimkowitz (#2685)
    • Customizable reader toolbar by @esimkowitz (#2527)
    • Add ability to keep screen on for bookmark reading by @esimkowitz (#2691)
    • Opening links in the reader view now opens them in an in-app browser so that you can quickly go back to where you left by @esimkowitz (#2696)
    • Add ability to default open links in external browser by @xingzihai (#2516)
  • Karakeep for Agentic usage: Our goal is to make Karakeep very AI agents friendly. This will allow agents (OpenClaw, Hermes, etc) to find and hoard interesting content on your behalf, provide weekly digests, and more.
    • We're publishing an official skill for karakeep on ClawHub and skills.sh (details here). Those skills teach the agent karakeep's concepts and how to use the CLI.
    • CLI improvements:
      • The CLI also got major improvements allowing it to manage more aspects for bookmarks, lists, and tags. Also got more AI friendly formatting, etc.
      • To avoid having to pass the address and API key with every request, karakeep can now store the auth config in a file and use it for further requests. Init that file with karakeep auth init.
    • If you're afraid to give agents full Read/Write access to your data, API keys now have granular scopes to all resources. Which means you can give agents access to your bookmarks but not administrative actions (like deleting users), etc.
  • Keyboard Shortcuts: You can now do more with the keyboard, as we added support for navigating the bookmark grid with keyboard shortcuts, and taking actions such as favouring/archiving and doing bulk actions. This is the beginning, and please send feature requests for the extra features you need.
  • Extension improvements:
    • [Experimental] The extension can now crawl bookmarks from the client-side eliminating the need of using the SingleFile extension separately from Karakeep (Powered by SingleFile core). This allows you to store pages that are behind authentication or unreachable from your Karakeep server. It's currently opt-in until stable, and then will become the default. Enable it from the extension settings (#2197).
    • Added support for manual save (instead of the default save on open) by @keslerm (#2693)
  • More import sources:
  • Others:
    • Karakeep MCP now has an update-bookmark tool by @vbalko-claimate (#2717)
    • Add support for writing rule engine rules based on bookmark source by @xingzihai (#2547)
    • Add support for configuring OpenAI reasoning effort by @cinconueves (#2718)
    • New extensive event logging for events that happen all over the app. More info about how to enable it here.

UX Improvements ✨

  • Visual revamp for the bookmark preview page with nicer colors and ability to collapse the sidebar (f500129).
  • Visual revamp for the "All lists" page showing list privacy settings and number of items in each list (145dda9).
  • List and tags page headers now show more info about the content and type of the list/tag (#2749)
  • Quickly favourite and archive a bookmark by new buttons that appear on hover (98e173d).
  • Haptic feedback on mobile sidebar navigation (f91ec53).
  • Show "+" in the tag count badges when more pages exist by @zerone0x (432235b).
  • In the add bookmark to list dialog, you no longer need to explicitly save the selection thanks to @xingzihai (#2629)
  • The default new list emoji changed from "🚀" to "📁". Maturity, I guess?
  • You can now add multiple lists to the same rule engine condition by @Ahmed-Abdel-karim (#2620)
  • Timestamps across the app are now correctly localized instead of showing the server's timezone (#2682)

Fixes 🐛

  • Important Security fixes:
    • Reported by @tahirsercan (GHSA-g647-327m-79g9)
      • Fix SSRF validation bypass caused by redirects in crawler and video worker
    • Those issues were reported by Sami Zayn:
      • Add missing ratelimits for the changePassword endpoint
      • Sanitize user names before storing them to avoid stored XSS in karakeep emails (#2724)
      • Invalidate existing password reset tokens before issuing a new one (#2722)
    • Reported by @CE2Sec (GHSA-7rx4-c5vx-g8w3)
      • Fix blind SSRF in crawler favicon extraction
    • Add missing ratelimits for bookmark creation and asset upload APIs
  • Fix a bug where adding a bookmark to a tag or list didn't appear immediately requiring a refresh.
  • Bulk actions used to hammer the server with cache refill requests, those are now debounced.
  • Fix adblocker getting skipped due to the URL validation interception.
  • Fix "Manage tags" page on iOS not scrolling correctly.
  • Prevent highlight popup from stealing focus on Firefox (11dfe74)
  • Fix rare crash in the crawler worker (d197f59)
  • Increase max feed url length to 2k chars (07454a6)
  • Fix cropped text in android app when using bold text by @Go2Engle (#2554)
  • Fix occasional problems connecting to server from mobile app when it's behind a reverse proxy by @mrInvincible29 (#2559)
  • Better extraction for lazy loaded images from content by @zerone0x (#2556)
  • Expand $tags/$aiTags/$userTags in AI prompt preview by @zerone0x (#2557)
  • Fix sourceUrl not getting saved when creating asset bookmarks via the API by @hoilc (#2574)
  • Redact internal server error messages in prod responses (c8a75a0)
  • Correctly parse linkwarden collections during import (722fd8c)
  • Correctly extract TWZ RSS categories as tags by @venku122 (#2589)
  • Correctly skip tagging and summarization for assets that fail preprocessing to avoid misleading numbers in the admin panel
  • Improve meilisearch request batching for better performance
  • Enable configuring monolith timeout and arguments by @NikhilChowdhury27 (#2659)
  • Fix openai proxy setting not getting respected by the openai client (#2676)
  • Fix formality and tone for a bunch of languages to match that of English
  • Use the same proxy URL for all network interactions within the same crawler job run
  • Fix parsing archived status for bookmarks imported from Pocket by @howwohmm (#2656)
  • Fix parsing archived status and folder for Instapaper bookmarks
  • Upgrade playwright to 1.59 to fix browserless compatibility issues
  • Stricter full text search matching strategy for bookmarks to provide more relevant results (68e7350)
  • Fix unreachable background script on Firefox by @Joly0 (#2649)
  • Update default meilisearch version to 1.41 by @ir31k0 (#2643).
    • If you want to update your instance, check out meilisearch's guide here.
  • Fix truncate long bookmark titles on mobile app by @xuatz (#2699)
  • Dedupe crawl jobs using idempotency key by @NikhilChowdhury27 (#2678)
  • Add ability to finalize/delete a staged import session that might have been stuck before (#2713)
  • Fix low quality video downloads caused by missing ffmpeg dependency to yt-dlp by @MaximePinot (#2721)
  • Better ratelimiting for users behind the same IP (e.g. NAT) by including userId in the ratelimit key
  • Use relative path for logout redirect to avoid port mismatch by @howwohmm (#2655)
  • Skip URL type identification requests if a page is crawled with SingleFile by @GSAlex (#2580)
  • Fix text clipping in bookmark card notes by @beluga73 (#2748)
  • For CLI based server migrations, tags attachedBy is now correctly migrated (462d713)

For Developers 🛠️

  • The API docs now have much more extensive documentation. (dd2c6cc)
  • New APIs:
  • Map TOO_MANY_REQUESTS to 429 status code in the API instead of internal server error (5b6402f)
  • The docker-compose based dev-env is now more stable and documented thanks to @xuatz (#2149)

Community Projects 💡

Checkout our community projects page here.

  • Karatui: A rust based TUI for managing your karakeep instance by @bercribe in 1c17716
  • Karaclean: A Docker sidecar that automatically cleans up Karakeep bookmarks based on declarative YAML rules (e.g. age, tags, lists, etc). @lmgarret

Screenshots 📸

All Lists Page

SCR-20260508-ophu

Mobile App Toolbar

image

Revamped Bookmark Preview Page

SCR-20260508-opue

Keyboard Shortcuts

SCR-20260508-opza

Granular API Keys

SCR-20260508-opmw

List Header

SCR-20260508-oqnx

New Extension Settings

SCR-20260508-osde

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.

All Commits

Don't miss a new karakeep release

NewReleases is sending notifications on new releases.