Skip to content

Releases: karakeep-app/karakeep

0.26.0

20 Jul 13:22
Compare
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

0.25.0

08 Jun 09:57
Compare
Choose a tag to compare

0.25.0

Welcome to the 0.25.0 release of Karakeep! This release addresses a lot of the top most upvoted feature requests. You can now share lists publicly, generate RSS feeds from your lists, reader view & pdf support in the mobile app, bi-directional browser bookmark sync using floccus, maintaining list structure on imports and a lot more. As usual, we have a lot of contributors in this release: @xuatz, @digithree, @thiswillbeyourgithub, @codelove77, @SConaway, @vhsdream, @AdrianAcala, @spasche, @SalGnt, @haappi, @yuikisaito, @jk, @jakeasmith, @Mxrk, @WilliamAGH, and @SteffoSpieler!

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

Buy Me A Coffee

New Features 🚀

  • Public Lists are here: You can now share your curated lists publicly! (#1511). Example list here.
  • RSS Feed Generation: Create and share RSS feeds directly for your lists (#1507)
  • Overdue Mobile Improvements:
    • Added reader mode/screenshot/archive views to bookmark previews on mobile (pending app release) (#1509) - @digithree
    • View PDFs directly in the mobile app and share them to karakeep from the share sheet as well (#1519, #1494) - @codelove77
  • Import / Export improvements:
    • Added NETSCAPE file export format support (#1374) - @yuikisaito
    • When importing netscape style bookmarks into karakeep, your lists will be re-created on karakeep. Preserving lists from other sources is planned.
    • Preserve archived status when importing from omnivore or pocket (RIP).
  • AI Auto-Summarization: Automatic summarization for new bookmarks can be now be enabled with INFERENCE_ENABLE_AUTO_SUMMARIZATION=true (#1163)
  • Floccus Integration: Karakeep now supports bi-directional sync with browser bookmarks using Floccus. This will be available in the next Floccus release within a week or two.

UX Improvements ✨

  • The user setting page got fully redesigned to look nicer given that we're starting to have more user settings.
  • Tab-based layout for bookmark previews on small screens - @thiswillbeyourgithub
  • Save pages faster with a dedicated extension shortcut (#1532) - @SConaway
  • Configure the default behavior when clicking on a bookmark. Either go to source, or expand the details.
  • Restored ability to properly sort by creation date for search pages (#1392) - @xuatz
  • You can now decide what you want to do when using the singlefile extension on an existing bookmark. Check out how to customize it here.
  • Configure whether you want to see archived bookmarks in lists or tags or not (#1505) - @xuatz
  • Added Algolia-based search to docs
  • Added "deleted" webhook event (#1464) - @SalGnt
  • The Summarize with AI button no longer shows up if you don't have AI configured
  • You can now disable auto AI tagging if not needed
  • Allow enabling/disabling RSS feeds collection
  • Added US English to folks who can't stand the British English - @WilliamAGH
  • Improved the positioning of the highlights menu on mobile devices - @Mxrk
  • Moved delete button in bookmark menu in the app for better ergonomics

Fixes 🐛

  • Started using proper tokenizer for content truncation before inference. This should prevent the truncation of the model prompt leading to better accuracy and instruction adherence.
  • Preserve unsaved changes during tag modifications while editing bookmarks (#1515) - @AdrianAcala
  • Fixed tag drag-and-drop issues on Firefox (#1016) - @haappi
  • Added log rotation for linux installations (#1471) - @vhsdream
  • You can now run Karakeep container as a non-root user for better security.

For Developers 🛠️

  • Added ?sortOrder parameter for resource sorting (#1398) - @xuatz
  • New endpoint for tag creation
  • PUT operations for bookmarks are now idempotent (e.g. adding to list) (#1427) - @xuatz
  • Added PATCH method support to CORS headers (#1489) - @spasche
  • Documentation:

Community Projects 💡

Screenshots 📸

The Share List Modal

Screenshot 2025-06-08 at 10 35 45@2x

Tabbed Layout on smaller screens

Screenshot 2025-06-08 at 10 37 11@2x

Reader Mode in the app

simulator_screenshot_1322546F-62F2-4129-89F7-7D77366179B6

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

Read more

0.24.1

28 Apr 08:21
Compare
Choose a tag to compare

This is a hotfix release for 0.24.0.

🐞 Fixes

  • Reverts the smart list expansion in list: and is:inlist qualifiers as it can cause Karakeep's server to OOM (#1321).
  • Adds missing translations for the new features released in 0.24.0.

0.24.0

27 Apr 18:55
Compare
Choose a tag to compare

0.24.0 – Riding the MCP hype

Welcome to the 0.24.0 release of Karakeep! This release packs a ton of new stuff (we're back to shipping folks!). This release introduces a new MCP server for interacting with Karakeep through LLMs, a new rule generic rule engine for more control over organizing your bookmarks, new search qualifiers for feeds and bookmark age, overdue edit dialog for bookmark details, some UI polishing and more! This release also welcomes a TON of new contributors, @brandonw3612, @yorch, @Summon528, @dotvhs, @YTKme, @hasansino, @gomnitrix, @adripo, @meysam81, @SteffoSpieler, @jkywalker (And I probably missed some).

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

New Features 🚀

✨ MCP Server ✨

Unless you've been living under a rock recently, you've heard about the recent explosion of MCP servers all over the internet.
We're not going to miss the hype. This release ships a new MCP server (docs) that allows you to interact with your Karakeep instance and bookmarks through extrenal LLMs.
You can ask the LLM to summarize your bookmarks, search the web and send what it finds to Karakeep, or archive your recent chat as a text note in karakeep.
It can create new lists, attach tags and more to help you organize your bookmarks.

CleanShot 2025-04-27 at 7  39 35@2x

More demos in the screenshot section.

Generic Rule Engine ⚙️

Karakeep was born because I don't want to spend time organizing what I hoard. I just throw stuff in there and karakeep's tagging and search will help me retrieve it later.
However, turns out that not everyone is in the same camp. If you're one of those people who enjoy organizing their bookmarks, this feature is for you.
This release introduces a new generic rule engine that allows you to define arbitrary processing rules for organizing your bookmarks.

Some examples:

  1. If a bookmark is added, and it's coming from youtube, tag it with "#youtube" and "#video".
  2. If a bookmark is favourited, download an offline archive for it.
  3. If the tag "#fashion" is added to a bookmark, and this bookmark is an image, then add it my "Inspiration" list (You're better off using a smart list for this though).

CleanShot 2025-04-27 at 7  35 55@2x

⚠️ The firefox extension is back under a new name (Action Required) ⚠️

After the rebranding unfortunatly we couldn't get the old Firefox extension back, so we had to publish a new one (link).
If you're using the old "firefox" extension, you MUST migrate to the new one manually otherwise you won't be getting future updates.

And more!

  • gpt-4.1-mini is the new default text model: The default OpenAI text model changed to the new 4.1-mini. It's slightly more expensive than 4o-mini, but is supposed to be much smarter. The image model remains as 4o-mini as 4.1-mini is more expensive for images.
  • New Search & Smart list Qualifiers:
    • New “age:” search qualifier to show bookmarks older or newer than a given duration (by @brandonw3612).
    • New "feed:" search qualifier to find bookmarks imported from certain RSS feeds.
    • You can find the full query language here.
  • Edit Bookmark Details: You can now edit almost all the details of bookmarks. The URL, summary, creation date, everything. This is obviously very overdue.
  • List Merging: You can now merge lists together thanks to @gomnitrix.
  • Import Tab Session Manager Sessions: Bulk-import your Chrome/Firefox Tab Session Manager session files as Karakeep bookmarks by @yorch.
  • Configuring other AI providers: We added documentations for how to configure other AI providers beside OpenAI (link). This includes providers like Google AI Studio, OpenRouter, Perplexity, etc.
  • Karakeep on TrueNAS: People using TrueNAS can now find Karakeep in TrueNAS' app store thanks to @stavros-k.

UX Improvements ✨

  • Some UI polish
    – Reduced shadows, lighter font weights, smaller editor box following the suggestions of @dotvhs in #1261!
    – Removed focus rings where they don't matter much, fix popovers to the emoji picker (by @Mxrk), and list items in the sidebar now get truncated if they're long.
    – Fixed margins of the “New List” button, and fixed spinner visibility during AI summarization
  • Cached content is now called “Reader Mode” content.
  • There's now a nice looking "No bookmarks" banner for search and empty smart lists.
  • Lists now can have a short description beside their name (by @ekambains).
  • A new monochrome icon for android builds by @SteffoSpieler.
  • Copy link button now gets greyed out when on a non-secure context by @ekambains.
  • The github link in the sidebar now works correctly for people on the nightly build thanks to @hasansino.

For Developers 🛠️

  • Added includeContent to the API endpoints that return bookmarks (Listing, search, etc) to control whether the endpoint should include the content of the bookmark (which can be huge or not).
    • ⚠️ For backward compatibility, this defaults to true, but starting from the next release, this will default to false. So if your tool relies on the content of the bookmarks, start passing this to true now.
  • The API docs have a new look. The new look also fixes the enum-like requests types (like the one in createBookmark).

Fixes 🐛

  • Smart lists in search: Smart lists are now correctly resolved in the search qualifiers list: and is:inlist.
  • A much faster homepage loading times: If you've been a user for the SingleFile extension, Karakeep's homepage might have started getting slower recently. The UI was accidently downloading a big chunk of the archive in the homepage when it's not needed. This is now fixed.
  • Faster Imports: Importing bookmarks used to be extremely slow, now it's done with much higher parallelism and should be significantly faster.
  • Dark-mode icons for the firefox extension @L-K-M
  • Fixed the list getting opened when editing it from the sidebar.
  • Added a new INFERENCE_OUTPUT_SCHEMA configuration to restore support for models that only works with JSON mode (instead of the newer structured output mode).
  • Passwords stored in the database are now salted. For backward compatibility, existing users will continue using an empty salt until they change their password.
  • Karakeep now closes the browser after it's done crawling in "on demand" mode by @Summon528.
  • Fixed a bug in content extraction that might result in a suboptimal "cached content" being shown.
  • Triggering a search re-index now drops all the documents first to avoid dangling documents.

Community Projects 💡

Github 2 Karakeep Importer

By @hasansino

Exports your github stars automatically to Karakeep! Get it here.

Screenshots 📸

MCP Demo

CleanShot 2025-04-27 at 6  57 47
CleanShot 2025-04-27 at 6  59 25
CleanShot 2025-04-27 at 7  08 38

The new "No Bookmarks banner"

CleanShot 2025-04-27 at 7  41 54@2x

Bookmark Editing Dialog

CleanShot 2025-04-27 at 7  42 52@2x

Upgrading 📦

If you’re using KARAKEEP_VERSION=release:

docker compose pull && docker compose up -d

If you pin to a specific version, update KARAKEEP_VERSION, then:

docker compose pull && docker compose up -d

All Commits

Read more

0.23.2

06 Apr 07:14
Compare
Choose a tag to compare

This is a dummy release to retrigger the generation of the ARM builds. Refer to the releases notes of 0.23.1 instead.

0.23.1

05 Apr 15:37
16866d8
Compare
Choose a tag to compare

0.23.1 (Hoarder is rebranding to Karakeep)

This is not a typical release. Hoarder is rebranding to Karakeep. For context about the rebranding, check out the reddit announcement here.

The name Karakeep is inspired by the Arabic word "كراكيب" (karakeeb), a colloquial term commonly used to refer to miscellaneous clutter, odds and ends, or items that may seem disorganized but often hold personal value or hidden usefulness. It evokes the image of a messy drawer or forgotten box, full of stuff you can't quite throw away—because somehow, it matters (or more likely, because you're a hoarder!).

However, we also have a couple of new contributors to this minor version. Welcome @ekambains, @Summon528, @jaworek, @jferch, @denysdovhan to the contributors list!

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

New Features 🚀

  • Well, we're rebranding!
    • This release shows a banner in the admin panel about the rebranding. It's still unclear whether I'll be able to continue updating the hoarder docker image after the repo name change, so I wanted what might potentially be the last stable release on this image to inform the people about the change in the image name. If it turns out that I can continue updating the image, I'll drop the banner.
    • Please note that the new docker image will not yet be available until I execute the repo transfer.
  • You can now store the assets in a separate directory by setting the ASSETS_DIR env variable. This allows people to offload the assets that can potentially grow larger into a network-mounted directory for example.
  • Hoarder now stores and indexes the author and publisher attributes of links. In a future release, we'll start showing them in the UI. (by @erik-nilcoast).

UX Improvements ✨

  • Clicking view original now opens in a blank tab (by @ekambains).
  • Link to Github release page in web sidebar (by @aworek).
  • Drop the font weight from sidebar items which makes the sidebar slightly nicer.

Fixes 🐛

  • Fixes issue where hoarder was running out of memory when uploading a large archive with SingleFile.
  • Added a configurable crawler screenshot time CRAWLER_SCREENSHOT_TIMEOUT_SEC (by @Summon528)

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

0.23.0

22 Mar 17:18
Compare
Choose a tag to compare

0.23.0

Welcome to the 0.23.0 release of Hoarder! This release brings quality of life improvements, bug fixes, and introduces several new features, including the long awaited safari extension, PDF screenshotting, bulk tag deletion, and an assets management page! We welcome new contributor @Kaio-Cesar, @erik-nilcoast, @mos3abof, @halkeye, @saadmanfarhad, and @lexafaxine (and as usual, many more translators on Weblate!).

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

New Features 🚀

  • Safari Extension: The long awaited safari extension is now finally in TestFlight.
  • PDF Screenshot Generation and Display (by @AhmadMuj): Hoarder can now generate screenshots for PDF files and display them, making it easier to preview and identify saved PDFs.
  • Bulk Tag Deletion (by @lexafaxine): You can now delete multiple tags at once, simplifying tag management.
  • Asset Management Page: A new settings page allows you to manage your assets and find the ones eating most of your storage.
  • "AI Tagged" Webhook Trigger: You can now configure webhooks to trigger when AI automatically tags a bookmark.
  • YTDLP Command Line Arguments: youtube-dl library supports a ton of configuration and flags. This release allows you to configure the flags that gets passed to the YTDLP binary for better control on video downloads. (by @erik-nilcoast)

UX Improvements ✨

  • Import/Export Page got redesigned to look slightly nicer.
  • The web UI now displays statistics for your lists directly in the sidebar.
  • Merged background jobs stats and admin actions in the admin panel. Also the stats show more workers that were previously missing.
  • Multiple new languages got enabled (Arabic, Slovak, Portuguese (Brazil), Slovenian & Vietnamese). Some of those languages are AI translated, please help us enhance them over at weblate.

For Developers 🛠️

  • Bookmark Summarization: The API now exposes a way to trigger bookmark summarization. (by @erik-nilcoast)
  • User Stats Endpoints: Added new endpoints to retrieve user information and statistics. This is used by the new homepage widget support implemented by @vhsdream.
  • We now have a new CONTRIBUTING.md.
  • Added instructions for setting up the Node.js environment for development (by @mos3abof)

Fixes 🐛

  • Fixed an issue that was preventing the use of LLM providers like gemini and preplexity. If you're running ollama, you might need to upgrade your server to a newer version. If the model you're using doesn't support structured outputs, set INFERENCE_SUPPORTS_STRUCTURED_OUTPUT=false.
  • Fixed an issue where shared links on mobile were incorrectly stored as text (undergoing apple's review).
  • Fixed webhook events being sent regardless of user-selected operations.
  • Fixed an issue were RSS feed ingestion was failing for some feeds.
  • You can now access the lists from the PWA, which was missing before.
  • Hardened the getBookmarks endpoint against inconsistent bookmarks.
  • Fixed an issue in mobile to correctly set a dark theme classname to update the header text color. (by @saadmanfarhad).
  • Fixed corepack issues in the CI and docker build, and in the Linux installation script.
  • Added a custom fetch wrapper for Ollama inference that prevents timeouts for slow ollama instances (by @halkeye)
  • Added an environment variable to configure OAuth timeouts. (by @Kaio-Cesar)

Community Projects 💡

Hoarder Random Bookmark

By @treyg

Sends random bookmarks from your Hoarder account to your email, Discord or exposes your hoarder bookmarks over RSS. Get it here.

Homepage Widget

By @vhsdream

Homepage now has a Hoarder widget that exposes stats about your bookmarks. Get it here.

Screenshots 📸

The new Asset Management Page

Screenshot 2025-03-22 at 5 08 12 PM

The redesigned Import/Export page

Screenshot 2025-03-22 at 5 08 26 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

0.22.0

02 Feb 17:40
Compare
Choose a tag to compare

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

0.21.0

05 Jan 16:36
Compare
Choose a tag to compare

0.21.0 - The 10k ⭐ release!

Welcome to the 0.21.0 release of Hoarder! Hoarder just hit 10k stars on github and I can't be more grateful! We wouldn't have hit this milestone without all of our contributors, users and the awesome community at /r/selfhosted! Over the holidays, Hoarder got featured at the homepage of hackernews for an entire day!

We're celebrating this milestone, with a release that contains some of the long awaited features! This release introduces advanced search capabilities, smart lists, highlighting support, a TypeScript SDK, and more! As usual, we're excited to welcome our new contributors: @lexafaxine, @jdhartley, @medo & @circuitcreature!

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

New Features 🚀

  • Advanced Search Capabilities: Hoarder's search just got much more powerful. You can now add search "qualifiers" to refine your search results. Qualifiers include: tags, lists, favourite/archived status, creation date, etc. You can read about the new query language here. Some examples:
    • is:fav after:2024-01-01 before:2024-12-31: Find all the bookmarks that are favourited and created in 2024.
    • (#neovim or #vscode) and -is:archived: Find all the non-archived bookmarks that are tagged either with #neovim or #vscode.
    • is:archived -is:inlist: Find all the bookmarks that are archived but are not sorted in any list.
    • url:github.com neovim: Find all the bookmarks that were hoarded from github and contains the neovim term in its content.
    • Special shoutout to @kamtschatka who first advocated for the powerful search language and did the first implementation.
  • Smart Lists: With the new powerful search, hoarder now allows you to save your searches as what we're calling "smart lists". Smart lists saves you the hassle of manually managing lists, and allows you create an automatic lists that dynamically matches a specific search query. For example:
    • Instead of manually managing a list called 3d Printing, you can now create a smart list with the query url:makerworld.com or url:printables.com or #3dprinting. Which will include everything you hoarded from popular 3d printing websites and everything the AI/you tagged with the 3d printing tag.
    • A smart list with the query url:reddit.com/r/selfhosted and is:fav will include all the stuff that you hoarded from the r/selfhosted subreddit and favourited.
  • Highlighting Support: You can now highlight your favourite quotes from the links that you hoard, and have a way to view all what you've highlighted. This was one of the most requested features specially for those coming to Hoarder from Omnivore.
  • Linkwarden Import: You can now import your bookmarks from Linkwarden thanks to @circuitcreature).
  • More translations: Croatian, Danish, Dutch, Galician, Italian, Japanese, Polish, Russian, Spanish & Turkish. Thanks to all those who contributed those translations over weblate (@Jaksa101, @bcanata, @KilFer, @mathyvds and more on weblate).

UX Improvements ✨

  • The admin page now features a sidebar layout, for a more consistent experience with the settings page.
  • Bookmarks created over a year ago now show the creation year in the card footer (@jdhartley).
  • Added a confirmation dialog before deleting bookmarks to prevent accidental deletions (by @lexafaxine).
  • Previously, search used to show only at most 20 bookmarks. This now fixed, and you can scroll across search results.

For Developers 🛠️

  • We're now publishing a minimal typescript sdk on npm. This allows you to quickly call hoarder's API endpoints with strong typing in both the requests and responses.
  • The search endpoint is now exposed in the REST API as GET /bookmarks/search with the support for advanced search queries.
  • You can now manipulate the assets attached to a bookmark with the new /bookmarks/assets/... endpoints.
  • The new highlights feature is also available via the API in /bookmarks/highlights/... endpoints.

Fixes 🐛

  • Fix missing scrollbar in the preview model for long notes.
  • Refactored asset serving to not load the entire asset in memory. This should result in lower memory consumption when serving large assets (e.g. videos and full page archives).
  • Added support for self signed certs for android by @CrypticC3s4r (pending mobile app release).
  • Previously the iOS app didn't allow connecting to hoarder over http, this limitation should no longer by there (pending mobile app release). Though honestly, you probably shouldn't be serving hoarder over http.
  • Mobile devices without cameras (e.g. eink tablets) were not able to install the app. This is now fixed (pending a mobile app release).

Community Projects 💡

Checkout our community projects page here.

Screenshots 📸

Highlights Support

Screenshot 2025-01-05 at 4 29 59 PM Screenshot 2025-01-05 at 4 30 08 PM Screenshot 2025-01-05 at 4 30 23 PM

Smart Lists

Screenshot 2025-01-05 at 4 32 16 PM

The new Admin Page

Screenshot 2025-01-05 at 4 33 30 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

Read more

0.20.0

22 Dec 11:21
Compare
Choose a tag to compare

Welcome to the 0.20.0 release of Hoarder! This release adds internationalization support, new markdown editor, mobile app improvements, broken link management and more! As usual, we're welcoming our new contributors: @Tukks, @vhsdream, @sweepies, @PeterDaveHello, @wuast94 and @eltociear!

If you're enjoying Hoarder, you can consider supporting it here ☕️ or via github here.

New Features

  • Hoarder's UI now comes in multiple languages!
    • You can change the language of the UI now to English, German, French, Swedish, Simplified and Traditional Chinese.
    • If you want to see your language there or want to improve some existing translation, you can do that via weblate here.
  • New experimental WYSIWYG markdown editor for notes by @Tukks!
    • You'll now get a preview of the notes you're writing as you're writing them!
  • A bunch of mobile app improvements:
    • You can now manage tags from the app. Super overdue, I know.
    • We have a new cleaner "info" page with the ability to edit title/tags/lists all in one page.
    • The mobile app now looks slightly more native. We've got rid of the dedicated search tag, switched to native modals, and used native page headers when possible.
    • Note: The apps are yet to be approved by apple & google.
  • Broken Link management:
    • Hoarder now stores the status codes it got when crawling websites which will allow you to identify and decide what to do about broken links.
    • This is now mainly useful for people doing large imports into hoarder, but in the future, we'll use the same mechanism to support automatic link liveness healthchecks.
  • Chrome as an optional dependency (aka minimal installation):
    • Chrome is no longer a hard dependency. This is useful for people running hoarder in resource constrained environments.
    • If you don't specify a BROWSER_WEB_URL, hoarder will fallback to a plain HTTP requests to the websites you add instead of crawling them with chrome.
    • Without chrome, you'll lose the ability to get screenshots from the websites you crawl, and websites that heavily rely on javascript won't work properly.
    • With chrome and meilisearch being optional dependencies, you can now get a single-container minimal installation of hoarder by sacrificing some of the features.
  • New installation methods:
    • Debian / Ubuntu one click installation script (docs) by @vhsdream
    • If you're a proxmox user, you can also get a one click LXC container running hoarder using proxmox's helper scripts again thanks to @vhsdream.
    • PikaPod (docs) are now offering paid hoarder hosting (~$3/month) for the less tech savvy folks out there. Disclaimer: they're sharing some of their revenue from Hoarder with us.
  • Tags placeholder in AI prompt customization:
    • You can use the placeholders $tags, $aiTags, $userTags in the prompt. These placeholders will be replaced with all tags, ai generated tags or human created tags when automatic tagging is performed thanks to @kamtschatka.
    • With that, you can use this to instruct the LLM to only use existing tags (instead of coming up with new ones). Be careful though if you have a lot of tags as it might increase the cost of the tagging significantly.
    • This mechanism is just a temporary solution. We're working on a mechanism to support this natively, in a much cheaper way.
  • New community projects documentation page (here):
    • With the release of the REST API in the last version, we started seeing some community projects pop up. So we're starting a new documentation page to list them out for visibility.
    • Hoarder now has a raycast extension and an alfred workflow thanks to @foru17 and @yinan-c. Go install them now!
    • If you develop a new extension for hoarder, let us know as we'd love to feature it in that page!
  • Others:
    • We've added the ability to show admin warnings in the admin panels for misconfigurations or future migrations.

UX Improvements

  • We're now trimming email addresses out of whitespaces during signin thanks to @sweepies!

Fixes

  • AI summarization sometimes included the LLM's response to the prompt (e.g. "Ok, I'll summarize ..."). We're now instructing the model to only respond with the summary.
  • Fix broken homepage when hitting a bookmark with an invalid image URL.
  • Multiple worker reliability improvements specially in countries with restricted internet.
    • The worker container doesn't need to download pnpm on startup anymore as it's now bundled in the container.
    • The crawler's adblock list download now has a timeout and can be completely bypassed with CRAWLER_ENABLE_ADBLOCKER=false.
    • The worker was sometimes hanging in the screenshot call. This now has a timeout as well.

Screenshots

The new Markdown Editor

Screenshot 2024-12-22 at 12 59 10 PM

Broken Link Management

Screenshot 2024-12-22 at 1 04 43 PM

Mobile App Improvements

New options at the bottom of the bookmark preview page

3EA11BCA-C06A-4681-AC44-D87DB9BC8954

Tag Management
9A4562B4-9429-41CA-AFCC-0A45941D3ACF

The new info page
E679CFD4-7EEB-4910-8FD6-B1EC92090D81

Admin Notices

Screenshot 2024-12-22 at 12 57 10 PM Screenshot 2024-12-22 at 12 57 20 PM

Raycast extension and Alfred workflows

Those screenshots are from the authors of the extensions.

Raycast extension by @foru17

image

Alfred workflow by @yinan-c

image

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

Read more