Libratory

A reading room for the books you already own

Libratory turns a shelf of PDFs into chapter-marked audiobooks — and then keeps them, so you can clean up a bad scan, translate a chapter, ask a book a question, or search every word you own. The models run on your machine. Nothing is uploaded anywhere.

Free for noncommercial use · source on GitHub · Linux and Windows run the same thing in Docker

How it works

Two ways in, a loop in the middle, and more than one way out. You can stop anywhere along it.

  1. In

    A PDF you drop, or a book posted to the JSON API by a script.

  2. Extract

    Text back in seconds, chapters detected or drawn by hand. OCR when the scan needs it.

  3. Transform, as often as you like

    Translate, rewrite, clean up. Every variant is kept beside the original and can be narrated on its own.

  4. Narrate

    A local model, a macOS system voice, or a cloud engine if you have a key.

  5. Out

    An M4B with real chapter markers, a PDF or EPUB of the chapters you pick, or a synced EPUB carrying audio and text together.

What you get after the audiobook

The conversion is the easy half. The rest is what makes a messy PDF collection worth keeping.

Per-chapter control

Edit the text, exclude a chapter, re-synthesize just that one. Nothing retries silently behind your back.

Cleanup that reads

An AI pass strips OCR artifacts, running heads and hyphen breaks before the voice ever sees them.

Translations and rewrites

Any chapter in another language, or shortened, or explained simply — the original text is always kept beside it.

Ask, and keep the answer

Question a chapter or a whole book. Every answer is saved as a note, and any note can become a chapter you narrate.

Chat across the shelves

Hybrid full-text and semantic search over the content of every book, with citations that open the PDF at the page.

Digests

Pick ten books, get one audiobook with a summary chapter for each — or drive it from a script through the JSON API.

Exports

PDF and EPUB of the chapters you choose, or a synced EPUB that carries the audio and the highlighting with it.

A library, not a converter

Nested folders, drag and drop, cross-folder search, and separate workspaces for separate people.

Voices

Pick the language first and you get every voice that can read it, grouped by engine, each with a preview.

Local, on the GPU

Kokoro for English, French, Spanish, Italian, Portuguese, Hindi and Mandarin. KugelAudio covers 24 European languages, and there are three Bulgarian narrators.

Local, on the CPU

Pocket TTS runs at about 12× realtime with no GPU at all, and can clone a voice from a twenty-second sample. Every macOS system voice you have installed works too.

Cloud, if you want it

Cartesia and ElevenLabs are one API key away, for the languages the local models do not reach. Optional, and never required.

Get it

A Mac gets an app. Everywhere else gets the same server in one container.

macOS

you're on this

Apple Silicon. A DMG that installs its own runtime — no checkout, no terminal.

Download the DMG

Not notarized yet, so the first launch needs Right-click → Open. Intel Macs are not built for: the Metal narrators would have nothing to run on.

Linux

you're on this

x86_64 or arm64. One container holds the server, the UI and both Python environments.

git clone https://github.com/subev/libratory.git
cd libratory
docker compose --profile app up -d --build

Then open localhost:3034. A CPU is enough; no GPU required.

Windows

you're on this

The same container, through Docker Desktop and WSL2.

git clone https://github.com/subev/libratory.git
cd libratory
docker compose --profile app up -d --build

There is no native Windows app yet. This route is new, so if something does not work, let us know and it will get fixed.

Start with one book

The one that has been sitting unread the longest.

Drop in the PDF and hear the first chapter.