E-book library manager

Your calibre library,
light as a paperback.

Dalibre is a calm, fast desktop app for your e-books. It opens the library you already have, in a single 23 MB binary, and grows with plugins anyone can write.

01 · Lightweight

61× smaller
than calibre.

calibre is a toolbox for everything you could do to an e-book. Dalibre does the everyday part, managing your library, and does it in one native binary: written in Go, no webview, no bundled Python, no runtime to install.

calibre 9.181.36 GB
Dalibre 0.123 MB
← that's the whole app

Size on disk on macOS: calibre.app 9.18 as installed, and the Dalibre release binary.

Binary
1 file
Webview
None
Runtime
Built in

02 · Extensible

Plugins bring
the books in.

Plugins add places to get books and to look them up: open catalogues, OPDS servers, the server in your closet. Every one shows up in the same calm UI, because plugins give data and never draw it.

Book sources

Search and browse a catalogue from Get books. Dalibre downloads the file and adds it to your library with the metadata the plugin gave. OPDS catalogs work too.

Built in: Project Gutenberg

Metadata sources

Look a book up by title, authors and identifiers. Candidates show up in Fetch metadata, next to your own values; you pick which fields to take.

Built in: NeoDB (Douban, Goodreads and more)

Writing one takes a folder, a JSON file and some JavaScript.

No build step, nothing to install.

// @ts-check
export async function search({ text, page }) {
  const res = await dalibre.fetch(
    `https://books.example.com/api?q=${text}&p=${page}`
  );
  const { books, next } = await res.json();
  return {
    items: books.map((b) => ({
      id: b.id,
      title: b.title,
      authors: b.authors,
      cover: b.cover,
      formats: [{ format: "EPUB", url: b.epub }],
    })),
    hasMore: Boolean(next),
  };
}
  • Sandboxed

    Runs in QuickJS inside Dalibre, with only the hosts and library access it asks you for.

  • Typed

    dalibre.d.ts gives completions and checks in any editor. TypeScript welcome.

  • Tooling

    dalibre-plugin scaffolds, checks, tries out and packs a plugin from the terminal.

03 · No migration

Keep your library.
Keep calibre, too.

Dalibre reads and writes calibre's own format. Open your library in either app, any day; nothing to import, nothing to export.

  • →Uses calibre's metadata.db schema, triggers and all
  • →Folders and files named the way calibre names them
  • →Edits write metadata.opf, so calibre picks them up
  • →Removed books go to the system trash, not into the void

Less app. More reading.

Dalibre is in development. The first release is on its way.