What's Changed
Note
This is a pre-release beta!
This release adds authentication, an in-app reader, file downloads, and restructures the CLI around explicit subcommands.
- Optional password authentication: Serve mode gains
--enable-authwith cookie-based sessions. Includes a frontend login page, password change UI, and session management in settings. - In-app reader with annotation deep linking: Book detail pages now link into a full in-app reader powered by foliate-js. Highlights and bookmarks open directly at the corresponding position.
- Item file downloads: Original book/comic files can now be downloaded from the library UI when available.
- Explicit CLI subcommands: The implicit serve-vs-export mode detection has been replaced with
serve,export,set-password,list-languages, andgithubsubcommands. All flags now support environment variable overrides (KOSHELF_*).
New API endpoints
POST /api/auth/login— authenticate and receive a session cookiePOST /api/auth/logout— end the current sessionPUT /api/auth/password— change the authentication passwordGET /api/auth/sessions— list active sessionsDELETE /api/auth/sessions/:id— revoke a specific session
Warning
Breaking CLI changes: KoShelf now uses subcommands (koshelf serve, koshelf export, koshelf set-password). The previous flag-based mode detection (-o for export, otherwise serve) no longer works. Update scripts and container entrypoints accordingly.
Full Changelog: v2026.3.0...2026.4.0b1