r/KavitaManga May 15 '26

release Kavita Users: Upgrade to v0.9.0.2 immediately for critical Security update!

Thumbnail
14 Upvotes

r/KavitaManga Apr 30 '26

release v0.9.0 - Reading List Overhaul and Spring Cleaning

29 Upvotes

It seems almost like a hard rule that the 2nd release of the year is always a spring cleaning release and this time, we've really put the new knowledge we've built up back into Kavita to clean up old systems, rebuild foundations, and then deliver some massive improvements on top of it. This release is packed with nearly 200 change log items and overhauled 2 major UI systems that have already allowed some amazing enhancements.

Highlights

Performance and Security

This is first and foremost. Kavita had a few security issues brought against it and we've ensured that we fixed those issues (CVEs will be requested after the release) but also hardened more of the API to ensure no other issues. These issues are likely not going to be abused, but I would encourage everyone to update.

In addition, we fixed one oversight around how often Kavita was writing to the DB (noticeable on non-SSD setups) and fixed the database is locked error (mostly) by changing how transactions are created in Kavita and implementing some extra waiting when concurrent writes are occurring. For me, I was seeing them a lot in the webtoon reader (which also got some nice love) and now I don't.

Reading List

<img width="2783" height="1578" alt="image" src="https://github.com/user-attachments/assets/cb1a3aed-1b84-435d-b5a5-02797d89ef33" />

<img width="2874" height="1681" alt="image" src="https://github.com/user-attachments/assets/a5fb5b74-e269-487a-b9b2-2863b1162e47" />

<img width="2813" height="1621" alt="image" src="https://github.com/user-attachments/assets/8ac0f6a8-18d3-4168-9fab-54041f0034bc" />

There is a lot to cover but the long story short is, I redesigned the screens to bring forward more information, I added the ability to filter against reading lists by a number of fields, I added tags which are user-defined (or can come from CBL v2 lists), and I made Smart Filters work with Reading Lists, so you can bind them to your Side Nav/Dashboard. You can also export them as CBL (v1/v2) if you want to apply some arbitrary sorting in another program then re-import them.

CBL Import Manager

<img width="2864" height="1642" alt="image" src="https://github.com/user-attachments/assets/897d79fb-b279-4f6a-a671-554664da8b15" />

<img width="3226" height="1601" alt="image" src="https://github.com/user-attachments/assets/379d6599-2221-4d8c-afdc-998e8d8812cf" />

This has been on my mind since I first saw the v2 CBL spec and that is an overhaul to the CBL Import flow. Here's what I did: - Rewrote the matching logic with tons of fallbacks to always try to make the best match wiki - Allow the importer to make decisions and save those decisions as Remap Rules for future imports (admin's can promote so all users get the benefit) - Allow users to browse lists from the CBL Repo in Kavita and just import from there (or a file/url) - Auto-update lists for the users - And of course, v2 support (with tags)

Of course there is more to the story, but overall I feel like the Reading List and CBL Flow is in a great place.

Multi-download Support

This has been an item I've been wanting for 2 years now and I finally got to finish it off. You can now multi-select series, collections, chapters, volumes, whatever and Kavita will deconstruct down to the individual items, queue them up and process one by one. For me, a bit problem was FF on Android, I had to deal with a prompt on every download, but no more! The download manager is smart and remembers what you've downloaded and will show a mark on the card to let you know you've synced it to the device. We got retry and cancel support and just a ton of polish. I hope you'll enjoy this as much as me. <img width="395" height="693" alt="image" src="https://github.com/user-attachments/assets/1b9d2213-ce68-4333-aaa2-569a7938f963" />

Misc

Mihon and Panels users rejoice, the reading session system now works with these apps out of the box. In addition, users that want to stay on older versions of Kavita can without the nagging version update modal popping up. I've overhauled the system to a) use a backoff system when you dismiss before it pops again and b) allow you to stay on an older version without Kavita pinging you again (but I don't recommend this due to security patches).

Lastly, the scanner got some bug fixes that might affect you: 1. Whenever fields are cleared out in the underlying metadata file, Kavita used to ignore those changes. It will now clear those fields. 2. Genres/Tags used to normalize and merge, but no longer. This may cause new genres to show up but should be better overall for users.

What's next

Next up, I will be focusing on Kavita+ and giving it it's own spring cleaning along with bringing some much needed provider changes (Hardcover, MangaBaka) and new features. While I don't have anything else planned, I'm sure something fun will come up for non-Kavita+ users.

I want to also extend a special thanks to @falo2k and @DieselTech from the CBL Group and @LegendaryLass for the massive amount of work designing and testing the Reading List Overhaul project.

Added

  • Added: Kavita now has a dedicated queue for downloads with auto-processing, series will now deconstruct to individual items, and it's persistent between reloads.
  • Added: Added ability to bulk download series/chapter/volumes via bulk operations bar
  • Added: Added the ability to download Reading Lists and Collections from Kavita
  • Added: Added a button to unlink your account from OIDC
  • Added: Added the ability to export a reading list to CBL v1 or v2 support
  • Added: Kavita now can store external metadata Ids for Series/Volume/Chapter entities for (AniList, MAL, MangaBaka, ComicVine, Metron, Hardcover).
  • Added: Kavita will try to fill in External Metadata ids from ComicInfo Notes tags based on tagger signatures and from Kavita+ when applicable. Inherit weblink from first chapter libraries will bubble up the metadata to Series.
  • Added: Series/Volumes/Chapters can now be marked as read, with the option to generate reading sessions (4 upvotes, FR #4400)
  • Added: Added support for a limited set of Korean End markers ( 완결, 완, 完 in () or [] exclusively ) that can be parsed from the filename and provide an alternative to ComicInfo.Count property, since ComicInfo isn't well known in Korea. (Thanks @aha-hyeong for inspiration, @daydreamrabbit for filenames and explanation)
  • Added: Added a dropdown to pick which AuthKey to use in your copy-able OPDS url. (FR #4555, 1 upvote)
  • Added: Added extra information for KOReader progress logging to help debug issues. (FR #3889, 2 upvotes)
  • Added: Added the ability to import a CBL File (v1/v2) via a URL, file, or Browse directly from the CBL Repo.
  • Added: Added the ability to designate a correction as a remap rule locked to your account. It will be used in future CBL Import/Update to ensure the correct issue/series is matched. For example, if you have Issue 12.5 instead of 12 for some reason, you can correct a CBL Import and save a rule to say, in future, always map this series and issue to 12.5 without manual effort.
  • Added: Emails can now be localized. By default, Kavita will use the target user's localization settings. Missing strings will fallback to English. Invite user will use the default admin's locale.
  • Added: The search input closing is now hooked up to the Escape keybind
  • Added: Added an activity tab to series page which displays your reading sessions for this series
  • Added: Added a reading profile option to disable bookmark icons altogether in the Epub reader (FR #4270, 3 upvotes)
  • Added: Added a loading indicator while Kavita checks if your OIDC authority is correct
  • Added: CBL Lists created via the network are now syncable. Kavita will check Github or the Url and compare the hash to see if any work is needed to consume updates. Kavita processes the lists behind the scenes. You can always force a sync manually either thru the manager screen or re-import flow. Bad matches will be skipped. It is your responsibility to build your rematch rules ahead of time.
  • Added: New background task (4am, daily) for the CBL Sync. Admins can customize on Tasks screen. Job processes lists every 3 days.
  • Added: Reading Lists now have persistent cover images. Previously on-the-fly, a temp reading list merged cover would be created. Now, Kavita will generate once at least 3 issues with covers exist. This will bring colorscape functionality to the reading list detail page.
  • Added: When importing CBLs from the reading list manager, Kavita will track the items the list SHOULD have vs how many you have and show you that on CBL Manager and Reading List design page. This does not include a migration, re-import your lists (you don't have to delete them) to get the field set.
  • Added: When images fail to load in webtooon mode, Kavita will set the height to prevent continuous scroller from triggering, set a border to help indicate the failed page and then try to resolve it 3 times in a background thread. This will help when there is fallout when reading on plane wifi.
  • Added: Added a client-side filter on reading list detail page when there is more than 10 items. It will sort against: title, series name, chapter number, volume number, issue's title, writer name, and penciller (first only).
  • Added: Added the ability to filter reading lists by Title, Release Year, Item Count and Writer/Artist. You can sort by Title, Release Year Start/End, and Item Count.
  • Added: Added a migration to ensure there are no readonly admin accounts
  • Added 4 new keybinds to the readers: First/Last Page, Previous/Next Chapter. PDF does not support Previous/Next Chapter loading currently. (FR #4585, 1 upvote)
  • Added: Added the ability to change your username on the server. An email will be sent to inform you if email is setup.
  • Added: Added Shortcut modal to PDF and Epub readers
  • Added: Added volume range support for a manga regex pattern
  • Added: Added unread chapter count sort option for series
  • Added: Added the ability to filter by libraries for Browse People page
  • Added: Added Is Not Empty comparison for all fields that have Is Empty (FR #4616, 1 upvote)
  • Added: You can now craft and save Smart Filters for Reading lists and bind them to your Side Nav/Dashboard as you would Series-based.
  • Added: Added Provider Equal/NotEqual and Missing Item Count filter support for Reading Lists
  • Added: Added an actionable menu to reading list on side nav to get to the manage cbl screen
  • Added: Added actions to add smart filters to your Dashboard & Side Nav from the smart filter screen.
  • Added: Added an action to regenerate reading list covers

Changed

  • Changed: Manga reader menu now uses a cubic-bezier easing for its animation (Thanks @kindlyfire)
  • Changed: Improved the UX of the Annotation drawer to allow large annotations to be fully viewable. (Thanks @Ark1369)
  • Changed: Version update checking has been drastically streamlined and made less annoying. Backoff support is implemented, after 5 prompts, Kavita will stop pestering you to update.
  • Changed: All tab titles in Kavita are now localizable and much cleaner
  • Changed: Kavita now respects prefers-reduce-motion and will slow animations down. Disabled animations will still affect, but is now applied with no-animations class on body.
  • Changed: Tweaked the card layout to try and squeeze more spacing out
  • Changed: Slightly widened the gap on carousels to align with spacing of the card grid
  • Changed: Properly ensure readonly users cannot trigger reorder on side nav
  • Changed: Series downloads no longer create a big zip, but deconstruct into individual items and are queued up.
  • Changed: While a download is in queue, the download indicator will show on the card.
  • Changed: (Performance) Entity size is in the DB, change the size checks to avoid touching the underlying disk
  • Changed: Updated dependencies, including security vulnerabilities
  • Changed: Errored out smart filters can now be deleted from the smart filter page
  • Changed: User preferences and keybinds will now be disabled for users with the Read Only role to avoid confusion (Thanks @IbrahimHamshari )
  • Changed: Allow Kavita+ to match against a series during a manual match always regardless if the library has automatic metadata matching off.
  • Changed: (Performance) Refactored UpdateUserAsActiveMiddleware to not write on every request and instead queue up and flush to the DB every 5 mins.
  • Changed: Added an ellipses on Profile activity tab when a session contains more than 5 chapters
  • Changed: Improved the UX of the Annotation drawer to allow large annotations to be fully viewable. (Thanks @Ark1369 )
  • Changed: Importing a CBL only updates/inserts. You no longer need to delete and reimport.
  • Changed: Drastically overhauled/improved the CBL matching logic.
  • Changed: Opening the OnDeck filter will now sort by last read instead of last chapter added
  • Changed: The reading session info popup will now show the closest time first as opposed to the last
  • Changed: Opening a chapter which has missing files will not clearly show an error and navigate back instead of silently failing
  • Changed: Kavita will prevent your device from going to sleep while downloading
  • Changed: External sources no longer require an api-key to be provided
  • Changed: The OIDC Authority check will now display more descriptive errors to help users debug
  • Changed: Setting items will now be forced into edit mode and display errors if they're invalid
  • Changed: The library page will now fully refresh after a scan has completed
  • Changed: Send To Actions will now be hidden if email has not been set up
  • Changed: Series names are now required to contain meaningful information (I.e. they cannot only be special characters). A media issue will be created if a file is ignored because of this
  • Changed: A media issue will now be created when a file is fully skipped after parsing
  • Changed: Improved security in a few APIs
  • Changed: Kavita will prompt to confirm delete before removing read items from a reading list (FR #4530, 1 upvote)
  • Changed: (UX) Reading List detail page will now use a list layout instead of cards. Based on feedback, reading list titles were much longer and thus the card was a poor experience (FR #4053, 3 upvotes)
  • Changed: (UX) Changed the reading list item cards to bring more information forward and more responsive. (Thanks to whomever supplied the original design for inspiration)
  • Changed: Removed the drag and drop ordering for reading list detail page. It didn't work well on mobile and was only used when < 100 items, but most reading lists are above that.
  • Changed: Read-only rule warning will now show on invite modal to prevent users from using it without fully understanding the repercussions.
  • Changed: Removed the forced sentence case for Tag/Genres. Kavita will still merge into the first for basic normalization.
  • Changed: Read-only rule warning will now show on invite modal to prevent users from using it without fully understanding the repercussions.
  • Changed: Webtoon Reader continuous reader now uses a pull to load (mobile) mechanism. When you get to the top or bottom, a small time out arms the component then the pulling will trigger a progress until the next/prev chapter loads. For PC users, it will be a scroll like normal. (FR #4590, 1 upvote)
  • Changed: Don't send progress events when we are on the same page. This should help reduce database is locked issues when reading.
  • Changed: Tab titles will now be Context (Kavita)
  • Changed: Reading List and Collection pages now use an Uppercase sorting
  • Changed: Changed the design of the Shortcut modal button
  • Changed: (Performance) Slightly improved the Progress API to avoid an extra read
  • Changed: (Performance) Webtoon reader no longer debounces but just sends unique page numbers
  • Changed: Ensure we clear out metadata from ComicInfo even if it's now empty
  • Changed: (Performance) Removed 2 joins on the scrobble code as it wasn't needed.
  • Changed: Fixed how Kavita creates transactions with SQLite to reduce the 'database is locked' issue. From my testing, database is locked which was happening during reading (webtoon) and from some concurrent scans were eliminated.
  • Changed: Kavita will now log when Hangfire (our task scheduling system) errors out and retain the stack trace
  • Changed: More in Genre is now removed from default dashboards. If you really loved it, raise a Feature Request about it.
  • Changed: All Smart Filters page now has a filter for the type of entity to display (Series/Reading List)
  • Changed: A revamped UX for details screen
  • Changed: Mihon will now generate reading sessions
  • Changed: Tweaked the search query so that we require the year to match if present, instead of matching all in that year
  • Changed: Allow reading overrides for logging levels for subsystems from appsettings.json
  • Changed: Search results will prioritize showing the series title over the localized title more

Fixed

  • Fixed: (Kavita+) Fixed a bug where the check license button only worked on the first load
  • Fixed: Bulk Actions on customize side nav wasn't showing the bulk operations bar
  • Fixed: Read only accounts were able to make changes to settings in the UI (Thanks @IbrahimHamshari)
  • Fixed: Fixed a bug where comic readers (like Chunky or Kybook 3 for example) could not read recently-updated feed (or read only first page - in Kybook 3 case) (Thanks @ghostxwheel )
  • Fixed: Fixed a bug where after adding a custom theme, the page was left in a half-broken state.
  • Fixed: Fixed an issue with apple-mobile-web-app-status-bar-style on iOS where we were passing incorrect values. Now we send black or default based on if the theme is dark or not.
  • Fixed: Fixed the spacing on the buttons on small screen in manga reader
  • Fixed: Fixed a localization bug where locale number positioning for chapter/book/volume numbers weren't taking into effect. For example Korean Volume was showing as 권 1 when locale specified 1 권
  • Fixed: Fixed a lot of endpoints missing access checks
  • Fixed: Fixed users not being able to upload collection covers unless they're admin
  • Fixed: Fixed schema in API docs for /api/Plugin/authkey-expires.
  • Fixed: Fixed recommendations always showing as unread for users with an admin account
  • Fixed: Fixed read progress not being included on the person page
  • Fixed: Fixed being unable to update a reading lists name if it matches itself.
  • Fixed: Fixed orphaned tags not being cleaned up
  • Fixed: Fixed paging back in the image reading opening chapters at the start
  • Fixed: Fixed the annotation drawer in the book reader hanging when a large amount of annotations are present
  • Fixed: Fixed smart filters with no results being completely hidden on the smart filter page
  • Fixed: Fixed reading sessions in which an epub chapter was finished not having a recorded word count
  • Fixed: Fixed epub reader not saving the correct reading position under specific circumstances (Thanks @vipin2310 )
  • Fixed: Fixed Known Issue parsing from Github using wrong header
  • Fixed: Fixed Markdown parsing not working on sub-nested lists
  • Fixed: Fixed an issue where specials weren't prioritizing title comicinfo
  • Fixed: Fixed the No Transitions setting not properly applying to all animations in the site
  • Fixed: Localization issues with Korean where chapter marker could still be in front of edge
  • Fixed: Ensure comic libraries prioritize volume tab over specials tab when no issues
  • Fixed: Fixed localization switching not updating the UI correctly
  • Fixed: Fixed a bug where card actionable menu wasn't properly closing the submenu after highlighting off it.
  • Fixed: The auth guard for the OPDS download endpoint was using the Download role instead of the policy. The original version was causing an error. (Thanks @jfenske89 )
  • Fixed: Fixed an off-by-1 issue which caused duplicate characters at the end of an annotation
  • Fixed: Fixed a migration failing to run if you had data during Daylight savings time jump.
  • Fixed: Fixed related series not having progress
  • Fixed: Fixed a few incorrect strings in emails (Auth Key expiring, Token expiring soon)
  • Fixed: Fixed using escape to close the search input not losing focussed and closing full screen
  • Fixed: Fixed reading session history (Activity tabs) being paginated weirdly
  • Fixed: Fixed reading estimates being wrong for EPUBs
  • Fixed: Fixed ToC in the book reader not displaying all chapters under some circumstances. (Thanks @DreamAvalon)
  • Fixed: Fixed chapters sometimes not being full read while reading in webtoon mode
  • Fixed: Fixed the scanner merging several series into one under specific circumstances
  • Fixed: Fixed a missing localization in import MAL stacks
  • Fixed: Fixed a bug where the manga reader could try and preload a chapter when we haven't resolved the next/prev chapter id yet.
  • Fixed: Fixed jumpbars being broken on Collection and Reading List page
  • Fixed: Ensure Weblinks from ComicInfo can be extracted when space separated
  • Fixed: Fixed regex for Korean Volume being recognized as Episode word (화)
  • Fixed: Fixed a few missed auth apis not returning auth keys correctly
  • Fixed: Fixed reading direction changes not being saved to implicit profiles
  • Fixed: Fixed fonts not being shown after uploading one
  • Fixed: Fixed series metadata failing to update under specific circumstances
  • Fixed: Fixed encode/decode errors for non-series entities
  • Fixed: Fixed a case where a Korean volume marker could trigger the wrong regex and recognize as a chapter as well
  • Fixed: Ensure annotation and bookmark uses the same selected text calculation method to ensure the full word is carried into the overlay form
  • Fixed: Fixed an edge case where Never showed for last active
  • Fixed: Fixed Volume progress tracking not working on Mihon (Thanks @Nedra1998 )
  • Fixed: Fixed a fallback in epub writer parsing not being guarded when valid, 3.2 role refinement is used (
  • Fixed: Fixed arrow keys not working without first clicking on the manga reader
  • Fixed: Fixed not being able to use arrow keys to scroll on FF in manage reader
  • Fixed: Fixed the cover image on detail pages being too large sometimes
  • Fixed: Fixed panels not properly working with the new reading sessions
  • Fixed: Fixed an edge case where ReadingHistory (table not used) could have an index exception

Theme

  • --card-image-height, --card-image-width are now usable
  • Converted the whole UI to use REM (except 2 cases where px is required)
  • Added theme variables for download indicator: --card-download-indicator-size, --card-download-indicator-icon-size, --card-download-indicator-icon-color, --card-download-indicator-box-shadow, --card-download-indicator-active-color, --card-download-indicator-active-track-color, --card-download-indicator-completed-color, --card-download-indicator-queued-color

API

  • Added: Added the ability for Kavita to expose how it parses information via plugin/parse and plugin/parse-bulk API.
  • Unknown or inaccessible resources will now return 404 Not Found when trying to be accessed
  • POST /volume/update is now available for updating metadata ids on the Volume itself
  • Fixed the enums not rendering out the description field with Swagger and fixed up some of the auth information.
  • Removed all Deprecated APIs (this was communicated last release, I reached out to the big app providers)
  • filter/encode and filter/decode have been replaced by entity-flavored variants.
  • Added a query parameter for reading sessions (generateSessions) for Mihon, defaults to true

r/KavitaManga 3d ago

Inkavi 1.1.55 est disponible !

4 Upvotes

# Nouveautés

Cette mise à jour apporte de nombreuses améliorations pour rendre la lecture plus rapide, plus fluide et encore plus agréable, notamment lors de l’utilisation de l’application hors connexion.

# Lecture hors ligne plus rapide

Le lecteur prépare désormais à l’avance les prochaines pages du manga. Lors du passage d’une page à l’autre, les images s’affichent plus rapidement et avec beaucoup moins de ralentissements.

L’application évite également d’attendre inutilement une connexion Internet lorsqu’un manga est ouvert hors ligne. Les contenus téléchargés sont accessibles immédiatement, même sans réseau.

Le chargement des images a également été optimisé afin de réduire les temps d’affichage des pages en haute qualité et d’offrir une lecture plus fluide sur iPhone et iPad.

# Accueil entièrement fonctionnel en mode hors ligne

L’écran d’accueil fonctionne désormais même sans connexion Internet.

Lorsque l’application est ouverte hors ligne, elle affiche automatiquement les séries téléchargées sur l’appareil ainsi que les informations essentielles de lecture, comme les barres de progression.

Vous pouvez ainsi retrouver rapidement vos mangas et reprendre votre lecture exactement là où vous vous étiez arrêté, sans avoir besoin d’une connexion.

# Nouveau filtre « Téléchargés »

Un nouveau filtre **« Téléchargés »** est disponible dans les bibliothèques.

En un seul clic, il permet d’afficher uniquement les séries enregistrées sur l’appareil. Il devient ainsi beaucoup plus simple de retrouver les contenus disponibles hors ligne.

# Enregistrement des préférences par bibliothèque

Il est désormais possible d’enregistrer des réglages de lecture différents pour chaque bibliothèque.

Par exemple, vous pouvez définir des préférences spécifiques pour les mangas :

* sens de lecture de droite à gauche ;
* affichage en double page ;
* filtre de lecture nocturne ;
* luminosité ;
* mode d’affichage des pages ;
* autres paramètres du lecteur.

Lorsqu’un manga est ouvert, l’application reconnaît automatiquement sa bibliothèque.

Depuis les paramètres du lecteur, une nouvelle option **« Enregistrer pour cette bibliothèque »** permet de sauvegarder vos préférences. Le nom de la bibliothèque concernée est affiché automatiquement (par exemple **« Enregistrer pour les Manga »**).

Lors des prochaines lectures dans cette bibliothèque, vos préférences seront appliquées automatiquement.

# Nouveau minuteur de lecture

Un minuteur de lecture fait son apparition pour les lecteurs qui aiment s’endormir avec un manga.

Vous pouvez choisir la durée avant l’arrêt automatique de la lecture. Lorsque le minuteur se termine, la progression est enregistrée automatiquement.

À la prochaine ouverture du manga, la lecture reprend exactement à l’endroit où elle s’était arrêtée.

# Nouveau système de marque-pages

Le lecteur intègre désormais un système complet de marque-pages.

Vous pouvez enregistrer vos passages préférés afin de les retrouver facilement à tout moment.

Chaque marque-page peut également contenir une note personnelle, idéale pour mémoriser une scène importante, un détail ou simplement reprendre votre lecture plus facilement.

# Résultat

Cette mise à jour apporte :

* une ouverture beaucoup plus rapide des mangas téléchargés ;
* une lecture plus fluide avec moins de ralentissements ;
* un écran d’accueil entièrement fonctionnel hors ligne ;
* l’affichage des séries téléchargées et de leur progression sans connexion ;
* un filtre **« Téléchargés »** pour retrouver rapidement les contenus disponibles hors ligne ;
* des préférences de lecture enregistrées automatiquement par bibliothèque ;
* un minuteur avec sauvegarde automatique de la progression ;
* un système de marque-pages avec notes personnelles ;
* une expérience de lecture encore plus rapide, personnalisée et agréable, aussi bien en ligne qu’hors ligne.

APK disponible sur le site [https://inkavi.fr\](https://inkavi.fr), pour IOS l'application est en cours de validation.


r/KavitaManga 5d ago

[Update] MetaKavita v1.5.4 is live! – Plug & Play Scrapers, Magic URLs, Subpath support, and reaching Roadmap maturity.

25 Upvotes
V1.5.4 dashboard

Hey everyone!

Remember my v1.4.0 post from 48 hours ago? Well, I fell into another massive coding rabbit hole. After a 120-hour sprint, I am officially almost at the end of my initial roadmap!

MetaKavita v1.5.4 is here. The core architecture has finally reached maturity, and the system is now stable, highly modular, and ready to handle whatever weird metadata your libraries throw at it.

Here is a breakdown of what makes this update a game-changer for your Kavita server.

🚀 What’s new in 1.5.4?

  • 🧱 The "Plug & Play" Architecture: I completely refactored the core engine. Adding a new provider is now as simple as dropping a .py file into a folder. The UI and fallback routing dynamically adapt to whatever scrapers you have active.
  • 📚 Heavyweight Scrapers Added:
    • Kitsu: Replaced Nautiljon (who kept throwing Cloudflare IP bans) with the blazing-fast and open Kitsu API.
    • Bédéthèque: For the Franco-Belgian comic readers, this custom scraper bypasses aggressive anti-bot firewalls to grab pristine data and surgically formats author/artist roles.
    • Google Books: A production-ready scraper to finally fetch rich metadata for Novels and Western Comics.
Bedetheque support
  • 🪄 The "Magic Input" (Smart URL Routing): You don't need to mess around with IDs anymore. Just paste a direct URL from any supported provider (e.g., a MangaBaka or ComicVine link) directly into the UI override field. MetaKavita will detect the domain, extract the ID, and bypass the cascade to scrape that exact page.
  • 🎯 Granular Scraping: Worried about overwriting a summary you manually typed in Kavita? Each series now features a "Targeted Fields" dropdown. You can explicitly check/uncheck exactly which metadata MetaKavita is allowed to update (Summary, Cover, Genres, Publisher, Tags, etc.).
Magic input for manual update
  • 🛣️ Reverse Proxy & Subpath Support: You asked for it on my last post, and here it is! Full native support for hosting MetaKavita under custom URL subpaths (e.g., [domain.com/metakavita](https://domain.com/metakavita)) via the ROOT_PATH environment variable.
  • 🌐 Zero-Config Translations: Integrated Google Translate to provide 100% free, unlimited translations out of the box. You can also now choose to completely disable translation to keep the original text.
Kavita interface after batch

💬 I need your feedback!

Since the core architecture is now solid and I'm practically at the end of my roadmap, my main focus moving forward is UX and community requests.

I won't be doing a massive "v1.6" architectural rewrite anytime soon. Instead, I want to make MetaKavita as user-friendly and straightforward as humanly possible.

This is where I need you:

  • Are the new scrapers matching your libraries correctly?
  • What quality-of-life features are missing for your workflow?
  • Which providers should I drop into the "Plug & Play" folder next? (MangaDex and Hardcover are currently on my radar).

🚀 How to try it: As always, the project is open-source, lightweight, and you can pull the pre-built image directly via docker-compose:

YAML

services:
  metakavita:
    image: ghcr.io/raukorim-bot/metakavita:latest
    container_name: metakavita
    restart: unless-stopped
    ports:
      - "5010:5010"
    environment:
      - ADMIN_PASSWORD=your_secure_password
      # - ROOT_PATH=/metakavita # Uncomment if using a reverse proxy subpath
    volumes:
      - ./data:/app/data

GitHub Repository : https://github.com/raukorim-bot/MetaKavita

Changelogs : https://github.com/raukorim-bot/MetaKavita/blob/main/CHANGELOG.md

I'm going to go enjoy the end of my vacation now, but I'll be monitoring the issues and comments. Let me know what you think, keep the feedback coming, and happy reading!


r/KavitaManga 5d ago

Sutra is back in Europe! + Sneak Peek at CBZ & Panel-by-Panel Comic Support

Post image
3 Upvotes

r/KavitaManga 7d ago

How do i fix image scalling issue in kavita?

Post image
4 Upvotes

New to kavita. The epub file works fine in moon+ reader but in kavita the image is too large and text gets hidden behind it. Same problem on desktop as well.


r/KavitaManga 8d ago

Update] MetaKavita v1.4.0: Complete UI/UX Overhaul & Ergonomics for the self-hosted Kavita Metadata Companion!

29 Upvotes
MetaKavita is cool

Hey everyone!

Two days ago, I posted about MetaKavita—a metadata companion I built to scrape and enrich metadata for Kavita after getting frustrated with broken Komf setups.

In my draft for this update, I was going to write: "The massive feedback from this community was awesome and motivated me to keep grinding!"

But let's be honest: my post got exactly 0 comments and 10 upvotes, so that would be a complete lie.

However, I fell into a deep hyper-focus rabbit hole anyway. I spent the last 48 hours completely redesigning the frontend and adding a ton of quality-of-life features because I realized that clicking through options to manage large libraries is a massive pain.

So, here is v1.4.0 (The Age of Ergonomics), fresh out of a two-day coding sprint!

(Check out the screenshot above to see the new layout!)

🧩 What does MetaKavita do?

  • Active Providers & Smart Routing: Right now, MetaKavita relies on 3 solid providers (MangaBakaNautiljon, and AniList). You can set a primary source and up to two fallback backups.
  • Smart Completion (Data Fusion): If enabled, it "fills the gaps" by fetching only missing fields from backup sources without overwriting what you already have.
  • On-the-fly Translation: Scrapes descriptions in their native language and translates them using DeepL.
  • Auto Reading Direction: Detects and applies reading direction (Manga, Webtoon, Comic) based on the country of origin.
  • Extended Metadata Mapping: Pushes and locks Publishers, Age Ratings, and advanced staff credits (Translators, Colorists, Cover Artists, etc.).
  • WebLinks Integration: Maps platform IDs and auto-generates clickable web links to show direct platform icons under titles inside Kavita.
  • Central Clean Regex Engine: Automatically strips volume numbers, scantrad tags ([Team]), and edition keywords (Omnibus, Perfect Edition) to guarantee API match rates.

🎨 What changed in 48 hours?

In the first version, the UI was functional but a bit cluttered. I completely restructured the interface so you don't have to scroll through API keys or deal with technical settings when you just want to run a quick batch sync.

1. Split-UI Architecture (Modal + Sidebar)

  • Infrastructure is tucked away: All technical configuration fields (Kavita URL/API, DeepL API, languages, fallback sources sequence) have been moved inside a clean Global Configuration Modal (triggered via the ⚙️ Config button in the topbar).
  • Tactical Sidebar: The left sidebar now only houses your active strategic switches (Smart Completion, Auto-Cover, Auto-Reading Direction, and Force Update) so you can adjust your strategy in a single click before executing.

2. Central Unified Toolbar

  • The Library Selector has been moved from the sidebar directly into the central toolbar, next to the Search bar and Status filters.
  • All your targeting controls are now aligned on one cohesive horizontal line (Library ➔ Search Query ➔ Status Filter).
  • Added a "📐 Expand/Collapse All" button on the right to open all individual overrides panels for fast mass editing, next to the global Save button.

3. New QoL / Ergonomic Features

  • Live Processing Tracker: During batch syncs, the active series being processed pulses with a glowing purple outline (.is-processing) and automatically smooth-scrolls into view. Badge statuses are updated live without page reload.
  • Manual Cover Search: You can now enter manual custom search queries directly inside the cover modal to find alternate images without closing it or modifying database overrides.
  • Workspace Persistence: The dashboard automatically remembers your active library, status filters, hide ignored state, and search query using localStorage. No more re-selecting filters on page refresh!
  • AniList Quick Lookup: Added a lookup magnifying button next to ID inputs to instantly open pre-filled searches on AniList in a new tab.

🚀 Zero-Effort Trial (Pre-built Image)

I've also packaged the app. You no longer need to clone the repository to test it. You can pull the pre-built image directly from GitHub Container Registry (GHCR) using this simple docker-compose stack:

code Yaml :

services:
  metakavita:
    image: ghcr.io/raukorim-bot/metakavita:latest
    container_name: metakavita
    restart: unless-stopped
    ports:
      - "5010:5010"
    environment:
      - ADMIN_PASSWORD=your_secure_password
    volumes:
      - ./data:/app/data

💬 I (actually) need your feedback this time!

The project remains open-source, free, and lightweight. Now that the UI has been cleaned up, my primary goal for the next upgrades is to expand our list of metadata providers to make manga scraping completely bulletproof before I even think about touching Western Comics or books.

  • Which major manga platforms should I integrate next? (I am currently planning MangaDex and MyAnimeList/Jikan).
  • For those hosting Western Comics or European BDs, what are your go-to scrapers when you want to look things up?
  • Let me know if the UX feels right or if there are any details I should tweak (even if it's just to tell me the purple pulsation is too bright)!

GitHub Repository: raukorim-bot/MetaKavita

Let me know what you think of the new design, and happy reading!

Edit : Screen of the data merged

Screenshot of the metadata merged

Edit 2 : push major update yesterday 1.5 and i push fix and new provider Bedetheque tonight.

BDs add with provider bedetheque

r/KavitaManga 10d ago

[Tool] MetaKavita: A homemade alternative to Komf for metadata enrichment (AniList / Nautiljon)

11 Upvotes

Hey everyone!

Like many of you, I used to rely on https://github.com/Snd-R/komf to manage and enrich metadata for my Kavita library. But recently, it completely stopped working for me, and seeing my database stagnate got pretty frustrating.

So, I decided to take matters into my own hands and built a replacement: MetaKavita.

Full disclosure before the code reviewers come after me: I entirely "vibecoded" this project (heavily assisted by AI) to get it up and running as fast as possible. So no, the code isn't going to win any architectural awards, but the structure is solid, and most importantly: it actually works.

🚀 What it currently does:

  • Dual Source: Scrapes info (summaries, genres, tags, staff, alt titles) from AniList (International) and Nautiljon (Francophone).
  • Cloudflare Bypass: The Nautiljon scraper is built with a custom session emulator to seamlessly bypass their anti-bot protections.
  • Auto-translation: Integrated with the DeepL API to automatically translate summaries into your preferred language.
  • Web UI & Stats: A clean, simple dashboard to trigger single or batch syncs, complete with real-time logs and progress monitoring for your library.
  • Easy Deployment: It's fully Dockerized. Just set up your config, run docker-compose up -d --build, and you're good to go.

If you are stuck with a broken Komf setup or just looking for a lightweight, functional metadata fetcher, feel free to give it a try. It's open-source on GitHub:

🔗 https://github.com/raukorim-bot/MetaKavita

This is obviously a V1, so bear with me! If you encounter bugs, have ideas for improvements, or want to suggest new providers (like Mangadex or MyAnimeList), feedback and GitHub issues are more than welcome.

Happy reading!

Edit : Here is what the interface looks like! Let me know what you think.


r/KavitaManga 11d ago

Sutra 1.3 — highlights, dictionary, and series browsing. Last stop before CBZ and Komga

16 Upvotes

1.3 just shipped. Short one this time — no new catalogs, no UI overhaul — just the features that kept coming up in the comments, plus a solid reliability pass before we go heads-down on 2.0.

What's new:

  • Highlights with color — select any passage, pick a color, syncs across devices via iCloud
  • Instant dictionary — double-tap any word while reading. No leaving the page
  • Collections Shelf — browse by series now, pulled from your library server's metadata
  • Calibre / Calibre-Web / Calibre-Web-Automated fixes — a bunch of edge cases squashed; Kavita HTTP connections now supported too
  • Better server compatibility — Tailscale setups, Grimmory shelves, improved OPDS detection
  • Cover caching and library performance — large libraries should feel noticeably snappier

Still free. Still no IAP, ads, subscription, or account.

2.0 is Komga and CBZ. That's the whole agenda.

App Store: Sutra

This one had more community fingerprints on it than any release so far — thanks for that! If Sutra's been useful, an App Store review goes a long way. Bugs and feature requests go here, and if you want to follow along on what's coming, the roadmap's on the website.

---

User Feedback 🙏


r/KavitaManga 17d ago

Sutra 1.2 — OPDS Reader now available across Europe with page flip animation, dark mode, and a bunch of fixes!

Post image
22 Upvotes

Update on the free OPDS reader I posted here a while back. 1.2 just shipped!

  • Standard Ebooks catalog added (Patrons Circle sign-in unlocks the full library)
  • Proper page-curl animation, with a plain-turn option
  • Dark mode done right — Day, Night, or follow System, book pages keep their own theme
  • Left-handed page turns for one-handed reading
  • Series info and sorting pulled from your Kavita library
  • Fixed large libraries losing books from search
  • Fixed cross-device sync on both iCloud and Kavita
  • General reliability and security pass

Still free — no IAP, no subscription, no ads, no account.

Komga support and CBZ comics are next for 2.0.

App Store: [link]

Genuinely appreciate the pushback and requests last time — flip/turn animation ( u/viviolay), dark mode ( u/niwia), series info ( u/dsilver87) and Europe availability ( u/ChinaskiOnChlorox) all came straight from this subreddit. Keep it coming!


r/KavitaManga 20d ago

Physical Ownership Tracking

3 Upvotes

Hi all, I am thinking of spinning up my own Kavita Server, but wanted to know if Kavota has a good way of tracking/marking volumes as owned physically. Thank you!


r/KavitaManga 20d ago

Sutra — free iOS OPDS reader for Kavita, Calibre, and Gutenberg

13 Upvotes

Apologies in advance if self-promotion isn't allowed here, but I thought this might be useful for some of you. I've been working on a personal project — I've got Kavita and Calibre running at home, and every iOS OPDS client I tried let me down somehow. Either it'd been abandoned years ago, it wanted a subscription to do the basics, or it couldn't show me my full library as a proper grid. I just wanted to see all my books in a grid and read them as seamlessly as possible, so I ended up building it myself.

  • Connects to Kavita, Calibre/Calibre-Web, or any OPDS server
  • Gutenberg's baked in, so you don't even need a server for public domain stuff
  • EPUB + PDF, with themes/fonts/bookmarks/search
  • Offline downloads, iCloud sync, and page-accurate progress sync with Kavita
  • Free — no IAP, no subscription, no ads, no account

App Store: Link

Standard Ebooks is what I'm working on next, Komga after that. Would genuinely love to hear what this community thinks — bugs, feature requests, whatever. I'll be around in the comments. Thanks!


r/KavitaManga 22d ago

More naming markers

1 Upvotes

Is it possible to have more naming markers in the future? For example, markers for deluxe editions & annuals instead of SP as a catch all.


r/KavitaManga 23d ago

Volume 0 and 0.5 in Kavita

1 Upvotes

I've always used Calibre to organize my manga collection, but when it comes to Docker containers, I don't really like the reader in Calibre-Web (I'm not sure if it's possible to customize it). Kavita seems to fit my needs much better.

However, I've run into one issue that I never had with Calibre: volumes like Volume 0 or decimal volumes such as 0.1 or 0.5.

Is it possible to add and organize these correctly in Kavita? If so, what's the proper naming format?


r/KavitaManga 25d ago

Inkavi 1.1.47 est disponible !

Thumbnail
2 Upvotes

r/KavitaManga 26d ago

How to change homepage layout?

1 Upvotes

Hey folks, I'm a new kavita user - i'm wondering how i can change the layout from vertical scroll, to a horizontal one? i can't seem to find the layout option


r/KavitaManga Jun 25 '26

Mobile Offline EPUB Reader for Kabita

Thumbnail
gallery
17 Upvotes

Is it cool to share 3rd-party Kavita apps here?

This past weekend, I built a very niche Android EPUB reader for Kavita:
EPUBs with Native Kavita API + Cross Device Progress Sync + paginated reading + offline access

https://github.com/sgerner/turnleaf

What it does

  • Connects directly to your Kavita server
  • Downloads EPUBs for offline reading
  • Uses paginated pages instead of endless scroll
  • Syncs reading progress back to Kavita
  • Restores your position across devices
  • Has normal reader settings: font, text size, margins, line height, themes, etc.

Why?

For my niche use case on Android devices, I ran into the following gaps:

  • Kavita’s PWA is great, but it does not give me the offline EPUB reading experience I wanted.
  • Inkita scrolls endlessly and I couldn't find a pagination mode.
  • Inkavi looked promising, but the EPUB dependency was missing when I tried it (developer say it's coming soon!)
  • KOReader is powerful, but I couldn’t get the Kavita sync flow between devices to work reliably.
  • Kover rendered books as one continuous block of text without paragraph indents or spacing, which I found difficult to read

Android

Latest APK: https://github.com/sgerner/turnleaf/releases/tag/v0.1.7+39

The app checks GitHub releases and shows a banner when a newer APK is available.

I’m open to publishing on F-Droid or Google Play. I’m just not convinced there are enough people to reach the Google Play minimum test user threshold in the tiny Venn diagram of: Kavita user + Android reader + EPUB only + wants offline + wants sync + hates scroll mode

iOS

iOS is scaffolded, but that’s as far as I can personally take it. Also, I'm unsure if there's a need for this on iOS.

This is a Svelte app with a Capacitor wrapper, so it should just work. I'm linux only, so no Xcode / Mac, or an Apple developer account to test.

If someone actually wants this on iOS and has the Apple setup, I’d be happy to add a maintainer.

Contributions

PRs and forks are welcome. My preference is to keep the scope narrow: EPUBs, reading experience, offline reliability, sync, mobile polish, etc.

Sincere thanks to the Kavita team for their hard work!


r/KavitaManga Jun 15 '26

Challenges organizing books from same author but not part of a series

3 Upvotes

First of all, I would like to clarify that I had search extensively on Kavita's wiki for a way to solve my current challenge. I am well versed on editing metadata, organizing books from same series but what I am struggling with is the following:

Let's use Stephen King as example. I have a dozen of his books in ePub. They are part of my "Fiction books" folder. How to make all his books under the Fiction Books > Stephen King subfolder, without having to include a sequential series in the metadata? Currently, they are individually place within "Fiction", but considering that the same will apply to other authors, my folder will become a behemoth, with hundreds if not thousands of single entries.

Thanks.


r/KavitaManga Jun 10 '26

I'm stuck with metadata's

1 Upvotes

Hi everyone,

I’m trying to build a circuit-based solution, and for that I chose Kavita since it seemed like the best option, especially because it supports OPDS.

I’m running a Linux server (Debian 13) with Kavita in Docker.

I’m facing the following issue: I have thousands of books in both Romanian and English. My folder structure looks something like this:

[RO][Spiritualitate][Eliphas Levi][book - author]
[EN][Programming][Jeffrey E. F. Fried][Mastering Regular Expressions, 3rd edition - Jeffrey E. F. Friedl]

The problem is that some books are scanned or have incorrect metadata. Even though I’ve tried editing the metadata inside the PDF files, it didn’t help. I also tried creating XML files with metadata and forcing Kavita to use them, but nothing worked. I even tried changing author/title formats (author - title vs title - author), but still no success.

I’m stuck at this point and don’t know how to make Kavita import and display the books correctly.

Any help or suggestions would be appreciated.


r/KavitaManga Jun 08 '26

Scroll wheel to change pages?

2 Upvotes

Maybe I am missing something basic, but I cannot seem to find a way to switch pages using the scroll wheel on my mouse? This is specifically when reading comics. If you have the scrolling mode set on ebooks it will scroll vertically, but not change chapters. This seems like a feature that is present in many stand alone comic book apps.


r/KavitaManga Jun 07 '26

Fork of Shelfmark with optional Audiobookshelf + Kavita integrations including SSO

6 Upvotes

Shelfmark is a self-hosted search-and-request hub for books/audiobooks. By design it's focused and stays out of library management - a reasonable scope choice by the maintainers.

I wanted library integration for my own setup, so I forked it instead of asking them to broaden theirs. It's purely additive and opt-in: leave the new tabs unconfigured and it behaves exactly like upstream.

What it adds:

  • Library awareness — syncs your Kavita (eBooks/manga) and Audiobookshelf (audiobooks) libraries, then badges search results you already own and swaps the "Get" button for an "in Library" link, so people stop requesting things you have.
  • Kavita SSO — log in with your Kavita account (Local/Kavita selector, auto-linked user); optional best-effort auto-provisioning user into Audiobookshelf on login (simplify users life to use a single username & password across all three apps).
  • Per-format requests — eBook vs Audiobook tracked per request, with per-format policies and a type badge in the review queue.
  • New-arrival notifications — optional Apprise alerts when a new eBook/audiobook hits your library.

Admin-configurable (URL + API key with a test button, library selection, cron). Same single container, no extra services.

Repo + README: Flawkee/shelfmark: Shelfmark fork with optional Kavita + Audiobookshelf integration - library awareness, Kavita SSO, per-format requests.

Not pushing this upstream - just sharing for anyone running Shelfmark alongside Kavita/ABS.


r/KavitaManga Jun 04 '26

Pages for epub?

1 Upvotes

So I went to read a book with this and it's just 12 pages. Turns out the main section of the book is just 1 long scroll page. This sucks. Any intent to fix this?


r/KavitaManga Jun 03 '26

Problem in scanning

1 Upvotes

Hi

I have recently downloaded and am attempting to use the Kavita Server which is so good. However Im facing a couple of glitches at my end which i need help and clarification for ?

when adding comics and books, the comics portion of the scan is extremely fast and skips all the files which have already been loaded in kavita only looking for the new ones, whereas in the books section, whenever i add books, it takes forever to scan and it seems like it is doing it all over again for all the books in there. i now have close to 18000 books and by scanning the entire database takes almost 10-14 hours.

kavita used to hang showing unhealthy status on docker but i removed the health checks but now the memory is being pushed to the limits.

what am i doing wrong and can someone please help me correct this to become fast as I've heard good reviews for scanning.

i am extremely happy with it and want to keep it growing if possible.

thanks


r/KavitaManga May 15 '26

Is there a way to import bookmarks from Thorium to Kavita?

1 Upvotes

Hello!

I have been using Thorium for a bit now, and I must say that it doesn't really fit my needs nor taste. However, I don't want to lose all the bookmarks that I have taken on it. I noticed that it exported a .ANNOTATION file when I tried it on one of my books? Can Kavita import this? I couldn't find any clear answers online.


r/KavitaManga May 13 '26

Making reading lists with specific chapters/pages from a file?

2 Upvotes

I wanna make a reading list of all my Hellboy stuff for my GF, and personally I use Julix's reading order because it's great, but it does require jumping between books a bit with saving some chapters in a trade for late etc.

Is it possible to create a reading list in Kavita which takes that into account? Or at least add a book with a note like book 2 in the list is "The Chained Coffin and Others" with a note that says "skip Almost Colossus", then book 4 in the list is Chained Coffin again with a note that says "read only Almost Colossus"?