GitPedia

Citadel

Manage your ebook library without frustrations. Calibre compatible.

From every-day-things·Updated June 18, 2026·View on GitHub·

Manage your ebook library with Citadel. Backwards compatible with Calibre. The project is written primarily in Rust, distributed under the MIT License license, first published in 2024. It has gained significant community traction with 1,258 stars and 18 forks on GitHub. Key topics include: calibre, ebook, ebook-collection, ebook-manager, epub.

Latest release: v0.5.0-nightly.20260615.112Citadel v0.5.0-nightly.20260615.112
June 15, 2026View Changelog →

Citadel

Quality checks
Build

Manage your ebook library with Citadel. Backwards compatible with Calibre.

https://github.com/every-day-things/citadel/assets/17505728/a3879896-8404-4333-98cb-5e1e0060b42e

Citadel is early software; it is likely full of bugs and lacking features.

Project goals

  • Backwards compatible with Calibre: Calibre must be able to read any library that Citadel has edited.
  • Good UX: Citadel must be easy to use and look good.
  • Performant: Citadel must feel much faster than Calibre, and never slower.

Non-goals

  • Ebook reader: Citadel is not an ebook reader. There are already excellent ereader apps: Citadel will open your files in your default apps.
  • ...or editor: If you're editing ebook content (not metadata like titles), Citadel will not be a replacement for you.
  • 100% feature parity: Primarily around Plugins, but there are some advanced features of Calibre we'll likely never build.

Downloading

[!WARNING]
Citadel is very early in development. It may crash, or be missing basic features. It may corrupt your ebook library.

Back up your Calibre library regularly if you use Citadel on it.

(Semi-) stable builds are available in Releases.

Development builds are available from GitHub actions.

Please report any issues or crashes you experience while using any version of Citadel!

Installing on macOS

Builds aren't signed (yet) — if you open Citadel.app directly, you'll get a warning that the file is "damaged".

Removing the Quarantine attribute from the file resolves this. For example,

fish
xattr -d com.apple.quarantine /Applications/Citadel.app/

Developing

As a prerequisite, you'll need to install Bun and Rust.

Then, you can install the packages.

fish
bun install

and start up the app like so:

fish
bun run dev # or just bun dev

Lint & Formatting

To lint all source code, run bun lint. To autoformat, run bun format.

ScopeActionCommand
All codeFormatbun format
All codeFormat (Check)bun format:check
All codeLintbun lint
BackendFormatbun format:backend
BackendLintbun lint:backend
FrontendFormatbun format:web
FrontendLintbun lint:web

App preview without backend

You can run just the frontend with this command, although you WILL see errors as the Rust backend will be missing but is assumed to exist:

fish
bun dev:app

Building

To create a production version of Citadel, you'll need the development prereqs. Then:

bash
bun install bun run build

Auto-updater and releases

Citadel can check for app updates and install them on request. Automatic update checks can be disabled in Settings (Auto updates: On/Off), and installs are always explicit (Install and restart). For maintainer setup and release workflow details, see docs/updater-and-releases.md.

This project would not be possible without the north star created by Kovid Goyal,
Calibre. Without his hard work building
such an extensive and powerful tool, Citadel would not exist.

Huge thanks to Kemie Guaida, who created an
excellent
Calibre redesign Figma prototype,
from which Citadel takes inspiration.
Thank you, Kemie!

Contributors

Showing top 3 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from every-day-things/citadel via the GitHub API.Last fetched: 6/21/2026