github karakeep-app/karakeep v0.31.0
0.31.0

latest releases: sdk/v0.31.0, mcp/v0.31.0, extension/v1.2.9...
8 hours ago

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

Import Details

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

Don't miss a new karakeep release

NewReleases is sending notifications on new releases.