Karakeep logo

Karakeep

A self-hostable bookmark-everything app with AI-based automatic tagging and full text search

Alternative to: pocket, raindrop.io


About Versions (49)

v0.22.0

2025-02-02

0.22.0

Welcome to the 0.22.0 release of Hoarder! This is a lightweight release given the recent events. This release introduces Webhook support, SingleFile support, bookmark sorting, and a lot of fixes! As usual, welcoming our new contributors @hanguofeng, @dakshpareek, @danielvigaru, @techtrd & @meysam81 (and a lot more translators on weblate)!

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

New Features 🚀

  • Webhook support (by @hanguofeng): Hoarder can now be configured to send webhooks whenever a new bookmark is created/edited. You can use that to trigger further automation/actions in external apps.
  • SingleFile Support: Hoarder now supports being a destination for the SingleFile extension. This allows you to store content from websites that requires authentication for example which wasn’t possible before. Read more about how to configure it here.
    • This is an experimental feature and is meant to be a stopgap until native support for it in the extension is added.
    • Currently, screenshotting for websites archived this way is not supported. We’re planning to add it in a future release.
  • Summarization Prompt Customization: Similar to the tagging prompts, you can now customize the summarization prompt with your own custom rules in the “AI Settings” page.
  • Bookmark Sorting (by @dakshpareek): You can now sort your bookmark grid by newest/oldest.

UX Improvements ✨

  • You can now search by bookmark types with the new search qualifiers is:link, is:text or is:media.
  • Smart list dialog now contains a link to the query language documentation and also shows the parsed query as you write it.
  • @danielvigaru fixed the margins of the lists page in the mobile app.

For Developers 🛠️

  • Hoarder now tracks bookmark modification times and exposes it in themodifiedAt field in the bookmark schema. This can be useful that uses the API for syncing changes.
  • @techtrd landed a bunch of improvements to the kubernetes documentation and templates! Check it out at this link.

Fixes 🐛

  • Mobile image uploads has been broken for a while (I’m sorry!). This is now fixed and pending google/apple’s review for the release (it’s a client side bug).
  • Installing hoarder on ubuntu/LXC containers got broken last week due to one un pinned linter dependency. This is now fixed.
  • Background job timeouts sometimes used to result into duplicate full page archives (which eats a ton of storage). This should be now fixed.
  • Mobile app sign in page used to sometimes flicker rapidly if you enter it with the keyboard open (I hate mobile app development!). This is now fixed.
  • Search queries for tags/lists that starts with “and”/“or” (such as #android) where not getting correctly parsed. This is now fixed.
  • The highlight feature from last release was making it hard to copy content from articles you saved. This is now fixed.
  • You no longer need to set NEXTAUTH_URL_INTERNAL as it’s now baked into the docker image.
  • Doing a bulk action with 150+ bookmarks selected no longer fails.
  • The url qualifier in search now also matches the source URLs of assets (e.g. when you clip a quote from a website using the extension).
  • RSS fetcher now uses firefox’s user agent thanks to @meysam81.
  • Tags that was attached at least once by humans will no longer show up in the “AI tags” section in the “All Tags” page.
  • Default max upload size has been increased to 50MB instead of 4MB.
  • Spanish translation wasn’t working, this is fixed now. We’ve also added Hungarian translation.

Community Projects 💡

Checkout our community projects page here. We’re featuring two community projects in this release:

Obsidian Sync Plugin

By @jhofker

An Obsidian plugin that syncs your Hoarder bookmarks with Obsidian, creating markdown notes for each bookmark in a designated folder. Get it here, or install it directly from Obsidian’s community plugin store (link).

Hoarder’s Pipette

By @DanSnow

A chrome extension that injects hoarder’s bookmarks into your search results (inspired by linkding-injector). Get it here.

Screenshots 📸

Webhook Settings

Screenshot 2025-02-02 at 5 03 26 PM

Bookmark Sorting

Screenshot 2025-02-02 at 5 04 02 PM

Query Explanation in List Dialogs

Screenshot 2025-02-02 at 5 16 23 PM

Upgrading 📦

To upgrade:

  • If you’re using HOARDER_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

  • fix: Hide tags that were attached once by humans from AI tags - @MohamedBassem in e03997a
  • ci: Fix build by regenerating the open API spec - @MohamedBassem in d95cebf
  • fix: Fix node22 error in worker container. Fixes #962 - @MohamedBassem in c0a4af7
  • fix: Dont rearchive singlefile uploads and consider them as archives - @MohamedBassem in 68e27ad
  • feat: Change default max upload size to 50MB up from 4MB - @MohamedBassem in b59fe2e
  • docs: Update single file docs - @MohamedBassem in 3cd490e
  • release(mobile): Bump mobile version to 1.6.8 - @MohamedBassem in 9f11ffb
  • fix(mobile): Add the email trimming that was removed by mistake - @MohamedBassem in 70e7239
  • fix(mobile): Fix flicker on sign in page. Fixes #911 - @MohamedBassem in b643c59
  • fix(mobile): margin for “Lists” tab content (#927) - @danielvigaru in 5c14735
  • docs: Feature obsidian’s plugin and hoarder’s pipette in community projects - @MohamedBassem in a8ac16e
  • feat: Update the last modifiedAt timestamp when tags of the bookmark change - @MohamedBassem in 7d39d69
  • feat(api): Expose the modifiedAt date in the bookmarks API - @MohamedBassem in cf85a79
  • feat(web): Add the query explainer to the smart list modal - @MohamedBassem in c52a1b4
  • fix: Fix search query parsing to allow and/or to be identifiers. Fixes #935 - @MohamedBassem in 1395545
  • fix: Fix missing handling for AbortSignal in inference client - @MohamedBassem in a698aea
  • fix: Abort all IO when workers timeout instead of detaching. Fixes #742 - @MohamedBassem in fd7011a
  • deps: Upgrade typescript to 5.7 - @MohamedBassem in 0893446
  • ci: Remove lint:ws from the github action - @MohamedBassem in ba9f0a2
  • feat: Add a new modifiedAt field to bookmarks table. Fixes #952 - @MohamedBassem in ab88f59
  • build: Remove sherif from the prod installation path - @MohamedBassem in 76f4e35
  • build: Add logs to the linux installation script - @MohamedBassem in 4862bbc
  • i18n: Fix spanish language code. Fixes #925 - @MohamedBassem in deef30e
  • build: Fix unsync-similar-dependencies error (#942) - @henrikno in 32d8513
  • readme: Add trademark disclaimer - @MohamedBassem in b2c795c
  • build: Fix CI error because of mismatched cmdk version - @MohamedBassem in de42f01
  • docs: Various Kubernetes deployment improvements (#862) - @techtrd in 8a07b62
  • feat: Change webhooks to be configurable by users - @MohamedBassem in cddaefd
  • chore: set firefox user-agent for rss reader (#908) - @meysam81 in 64f24ac
  • feat(webhook): Implement webhook functionality for bookmark events (#852) - @hanguofeng in b9cce5d
  • docs: Fix type in intro.md (#901) - @zazathomas in b323573
  • fix(mobile): Use external blob encoder to fix mobile image uploads. Fixes #800 - @MohamedBassem in 219e16a
  • fix: Fix url matcher not matching sourceUrl. Fixes #874 - @MohamedBassem in bbbf335
  • fix: Limit concurrency of bulk actions. Fix #773 - @MohamedBassem in 38d403b
  • feat: Add ability to filter by bookmark type - @MohamedBassem in 9fd26b4
  • build: Bake a default NEXTAUTH_URL_INTERNAL in the docker image - @MohamedBassem in c5298cf
  • feat: Add Bookmark Sorting Feature (#812) - @dakshpareek in b6293d1
  • feat: Support customizing the summarization prompt. Fixes #731 - @MohamedBassem in b8bd7d7
  • fix: Keep user selection on text highlight - @MohamedBassem in 1ec21b6
  • feat: Add support for singlefile extension uploads. #172 - @MohamedBassem in 1050617
  • docs: Fix openAI pricing link (#816) - @JackBailey in 107d923
  • docs: Fix type in the docs hightly -> highly (#853) - @andygeorge in 869fa46