Magnitide Get the app
Open source · macOS, Windows and Linux

A fast, modern ebook library manager that starts from the calibre library you already have.

Magnitide opens your calibre library as it is, read-only, so calibre keeps working alongside it. Underneath is a native Rust core and a Tauri desktop app, built to stay quick with 50,000 books and more.

GPL-3.0 · In active development: see the roadmap for what's done and what's next.

Magnitide: the library as a grid of covers, beside its shelves, in the Light theme
Your books by their covers, at the size you like, beside your shelves: drag books onto one, or make a shelf for every series or author.

What it does

Everything a library manager should, on your own files, in your own folders.

Starts from calibre

Open your calibre library as it is, read-only. Magnitide never writes to it, so calibre keeps working. When you're ready to edit, import it into a Magnitide library of its own: books become copy-on-write clones where the disk allows it (no extra space on APFS, Btrfs or XFS), and your custom columns come too.

Browse and find

Covers, or a sortable, resizable, reorderable table. Search with author:, tag:,series: and your own fields (#pages:300), quotes and - to exclude. Shelves of your own, and a details panel with everything about a book.

Edit one book or many

Author sort names, omnibus editions, several series per book, custom fields of eight kinds. Find Metadata looks books up on Open Library and Google Books and lets you take what you want, field by field. Folders and file names follow your edits, and metadata can be written back into EPUB files.

E-readers

Kobo, Kindle and other devices show up when plugged in. Books go over in the format each reads best, converted from EPUB to KEPUB or AZW3 natively (calibre is only a fallback), and shelves become collections on a Kobo, for Kobo's own app and KOReader alike.

On your network

An optional library server with an OPDS catalogue for reading apps, a simple page for e-reader browsers (Kobo's gets KEPUBs made on the fly), and KOReader progress sync. Off by default, read-only, with an optional password and a QR code to scan.

Make it yours

Nine themes (light, dark, sepia, the four Catppuccin flavours, Dracula and Alucard), any of their accents, an interface size from 80% to 200%, and add-on theme files that are checked colour data, not CSS. This page wears them too: try the theme menu at the top.

Plugins, two ways

Magnitide has a plugin API of its own, and runs the calibre plugins you already rely on.

Magnitide plugins

Small, sandboxed WebAssembly components in .mgp files, added in Settings → Plugins. A plugin can do only what its package declares, gets a fresh instance per call, and a crash is a plugin error, not an app crash.

  • Metadata sources that join Find Metadata.
  • Import hooks that run on files as they're added.
  • Metadata readers and writers for formats.
  • Library tools in the book menu, with progress in the job bar and questions mid-run.

Written in any language with a WebAssembly toolchain. A Rust SDK, a template and two example sources (Open Library, Goodreads) are in the repository.

The API and SDK →

Your calibre plugins, unchanged

Metadata sources join Find Metadata. Toolbar plugins work on the selected books from the Plugins button or the book menu; their windows open as in calibre, and what they change comes back into the library through Magnitide's own editing. File-type plugins run when books are added, and readers and writers handle their formats.

They run in whichever host you choose:

Your installed calibreA calibre Magnitide downloads for itselfEstuary: no calibre needed (experimental)

Conversion, catalog, device, store, viewer and editor plugins aren't supported.

Hosts, coverage and limits →

Built to be trusted with a library

Your calibre library is never written to Magnitide reads metadata.db and the book folders and changes nothing. Its tests check the file is unchanged byte for byte.
Import costs almost no disk Books are cloned copy-on-write on APFS, Btrfs and XFS, and copied elsewhere. Your calibre library stays where it was.
Plugins stay in their box A Magnitide plugin sees no files, network or library beyond what its manifest asks for, with a memory cap and a time limit.
185 msto open 50,000 books A synthetic 50,000-book calibre library loads in about 185 ms, and an unindexed search across all of it takes about 35 ms, on an M3 Max.
Network only when you ask Metadata lookup, downloads and the library server are the only things that touch the network, and the app's web view never contacts third-party hosts.
Kindle and Kobo without calibre EPUB → KEPUB and EPUB → AZW3 are built in, so sending to a device doesn't need calibre installed.

Get Magnitide

Builds are published on GitHub Releases. Magnitide is in active development, so expect rough edges and frequent updates.

  • macOS 13 or later
  • Windows 10 or later, with the WebView2 runtime (built in to Windows 11)
  • Linux with WebKitGTK 4.1 (Ubuntu 22.04 or later)

Arch Linux: the magnitide-bin package is on its way to the AUR. Until then, build it from the repository (it repackages the release's .deb):

git clone https://github.com/obscuredetour/magnitide.git
cd magnitide/packaging/aur/magnitide-bin && makepkg -si

Or build from source

  1. Install Rust with the wasm32-wasip2 target, Node with pnpm, and the Tauri CLI:
    rustup target add wasm32-wasip2
    cargo install tauri-cli --version "^2" --locked
    pnpm --dir crates/app/ui install
  2. Run it with live reload, or build the app bundle:
    cd crates/app
    cargo tauri dev
    cargo tauri build --bundles app

Details in the README.