Free software · AGPL-3.0 · Version 0.6.0

Translate whole books, not just passages.

Libris is a self-hosted translator for books and long series. It remembers every name from volume 1 to volume 7, and its autopilot carries each book from import to a finished EPUB.

Runs on your own server with Docker. Works with the model you choose, local or hosted.

Libris showing a passage of an English book next to its French translation, under the book's progress from import to export.

Made for

  • Readers of webnovels and series

    Translate the volumes and chapters you follow, with names that stay the same from one volume to the next.

  • Translators

    Get a complete first draft, then compare, correct and lock what matters. Your corrections always win.

  • Self-hosters

    One Docker Compose stack on your Linux server. Your library and translations never leave it.

  • Developers

    Send an EPUB, chapters or JSON to a REST API and get the translated book back, with a report.

More than a translation of each passage

A machine that translates one passage at a time forgets who is speaking, what a place is called and which term was chosen three chapters ago. Libris reads the book first and keeps what it learns.

A memory that follows the series

Before translating, Libris builds a Book Bible for each volume: characters, relations, places and terms. Series share a Series Bible and a glossary, so a name chosen in volume 1 is still the same in volume 7. A volume only learns from the volumes before it, never from later ones.

Example, written for this page

Tide KeeperGardien des marées Glossary term, locked · since volume 1

  1. Volume 1 The Tide Keeper never left the lighthouse. Le Gardien des marées ne quittait jamais le phare.
  2. Volume 7 Even now, the Tide Keeper waited for Mara. Même à présent, le Gardien des marées attendait Mara.

An autopilot that finishes the book

Analysis, translation, review, a final AI review and AI arbitration run on their own, with no step for you to validate. A failed passage is retried with other strategies; when a provider is down, Libris waits, retries, then switches to a fallback provider. Every decision is logged in a report.

  • Bounded rounds: at most three by default, then the book is settled.
  • A passage nobody could translate keeps its original text, with the reason.
  • Jobs survive restarts and resume from their last checkpoint.

How it works

From a file to a translated book, with nothing you have to approve along the way.

  1. Add your book

    Drop an EPUB or chapter files. The import proposes the series and the volume or chapter numbers, and says why.

  2. The autopilot works

    Libris analyses the book, builds its memory, translates, reviews and settles the open points on its own.

  3. Read if you wish

    Follow the progress, open any passage, correct it or lock a term. Nothing waits for you.

  4. Download

    Get the EPUB, checked with EPUBCheck, or the chapters as text, Markdown or a ZIP, with the autopilot's report.

What you get

  • Series and memory

    A library of series with numbered volumes or a continuous flow of webnovel chapters. Book Bible, Series Bible, character identities and relations, and a two-level glossary.

  • Autopilot

    Recovery of failed passages, fallback providers during outages, AI arbitration of the remaining doubts, and a decision log you can filter by stage or passage.

  • Faithful formats

    EPUB 2 and 3 with their layout, styles and resources preserved, checked with EPUBCheck. TXT, Markdown, HTML and DOCX chapters. JSON through the API.

  • You stay in control

    Side-by-side editor with version history, AI suggestions to accept or refuse, locked terms. Passages you corrected or validated are never changed by the autopilot.

  • Your model, your costs

    OpenAI-compatible servers, local or hosted, the OpenAI and Anthropic APIs, and an optional Codex/ChatGPT bridge. Paid operations show a token and cost estimate before they start.

  • Automation API

    A versioned REST API with scoped tokens, idempotent requests and signed webhooks. Send a book, receive the translation and its report.

  • Your books stay home

    Books and translations stay on your server. Only the passages being processed are sent to the model providers you configure.

  • Interface in English and French, light and dark themes, usable from phone to wide screen.

    Automation API

Install Libris

You need a Linux (amd64) machine with Docker Engine and Docker Compose v2, Git, and access to a language model. No GPU is needed on the Libris server when the model runs elsewhere.

  1. Download Libris and run the installer:

    bash
    git clone https://github.com/HeartBtz/Libris.git
    cd Libris
    ./scripts/install-docker.sh

    The installer creates a .env file with generated secrets, pulls heartbtz/libris:0.6.0 and starts the stack. It never overwrites an existing configuration or deletes data, so you can run it again safely.

  2. Open http://localhost:8088 on the same machine and sign in as admin. The generated password is in .env:

    bash
    grep '^BOOTSTRAP_' .env

    On a remote server, open an SSH tunnel first: ssh -L 8088:127.0.0.1:8088 you@your-server. For network or HTTPS access, follow the Docker guide.

Then translate a first book

  1. Settings › LLM providers: add your model's endpoint, model name and key.
  2. Add content in the library: pick an EPUB or chapter files and choose a series.
  3. Choose the provider and languages, then Import and run the whole pipeline.
  4. Follow the progress on the book page and download the result when it is ready.

Only import books you have the right to translate. Output quality, languages, speed and cost depend on the model you use.

Read the full Docker guide

Questions

How much does it cost?

Libris itself is free software. What you pay is the model: a hosted API bills its tokens, a server of your own costs its hardware. Before a paid operation starts, Libris shows its token and cost estimate. Identical passages you already translated are reused without a model call.

Which models can I use?

Any server that speaks the OpenAI-compatible Chat Completions protocol, local or hosted, plus the OpenAI and Anthropic APIs. An optional bridge lets you translate with Codex through a ChatGPT account. Each provider has its own concurrency limit and prices, and can serve as a fallback for another.

Which languages?

The ones your model handles well: output quality and languages depend on the model you use. Books translated into Arabic, Hebrew, Persian or Urdu are exported right to left. The Libris interface itself is in English and French.

Do my books leave my server?

Your books, translations and history stay on your server. Only the passages being processed are sent, to the model providers you configure and nowhere else. API keys are stored encrypted.

Do I need a GPU?

Not for Libris. A Linux (amd64) machine with Docker and 2 GB of free memory is enough when the model runs elsewhere, on a hosted API or on your own inference server.

Which formats are supported?

In: EPUB 2 and 3, chapters as TXT, Markdown, HTML or DOCX files, and JSON through the API. Out: the translated EPUB with its layout, checked with EPUBCheck, or text, Markdown and a ZIP of chapters. Fixed-layout and DRM-protected EPUBs are not supported.

Is there a hosted version?

No. Libris is software you install and run yourself; this site does not sell or operate a service.

What is the license?

Libris is licensed under the GNU AGPL-3.0-only. If you modify it and let people use it over a network, you must offer them the corresponding source. The rights to the books you import are your responsibility.

Your next series, translated on your server.

Install Libris with Docker in a few minutes, or read the code first.