Releases: subev/libratory
Release list
v26.828.2
The updater tells you what it is doing.
Clicking "Download it" used to be followed by nothing at all until the restart prompt appeared some minutes later — no size beforehand, no progress during, and no way to tell a slow download from a stuck one. It is about 190 MB, which is a long time to be told nothing.
The dialog now says how big the download is before you agree to it, and the Dock icon carries a progress bar while it runs. The bar is cleared whether the download finishes or fails.
One quirk of updaters: the code that downloads an update is the code inside the version you are already running. So installing this release will still be silent — 26.828.2 is the first build that can show you progress, and you will see it on the release after this one.
v26.828.1
Documentation and a test script — no functional change to the app. It exists mainly to prove the in-app updater works now, which it could not do before 26.828.0 was signed.
Both READMEs still walked you through Gatekeeper calling the app damaged, and through System Settings → Open Anyway. Since 26.828.0 neither happens, and an instruction that is wrong costs more than one that is missing.
scripts/vm-verify.sh also stopped clearing the quarantine flag before testing a downloaded build. Surviving that flag is exactly what notarisation buys, so clearing it asserted nothing — it now looks for a stapled ticket and, finding one, makes Gatekeeper's own verdict the assertion. A locally built DMG is still ad-hoc, so that path keeps the old behaviour and says which one it took.
If you are on 26.828.0, this one should install itself.
v26.828.0
Signed with a Developer ID certificate and notarised by Apple. macOS opens it normally now — no "damaged" warning, no Privacy & Security detour, no Terminal command.
This is the last version you install by hand. Updating to it from an earlier build still fails, and the reason is exact: an ad-hoc signature's designated requirement is a hash of its own code, so no future build can ever satisfy it. A Developer ID signature's requirement is "signed by team M72SXNJ42P" instead, which every later build satisfies. From this version onward the in-app updater installs updates on its own.
Also in this build: the app icon is rendered from a master per size rather than one SVG scaled to all of them, so it stops collapsing into mush at 16 and 32 px. And the README admits that Windows has worked for a while.
Download Libratory-arm64.dmg, drag it to Applications, open it. You still need Docker Desktop or OrbStack running — the app explains that on first launch and links to both. The first start downloads about 2.4 GB and takes a while; later ones take seconds.
v26.827.3
Adds Help → Check for Updates…, and makes a build that cannot update say so.
The app checks for updates at launch and every six hours, so there was no way to ask right now — and a copy built locally rather than installed from a release carries no update feed at all, which it responded to with silence. Silence looks exactly like "you are up to date".
Now it tells you which it is.
Turns PDFs and EPUBs into audiobooks you can read along with, on your own machine. Apple Silicon Macs only. Download pdf2audio-26.827.3-arm64.dmg below.
First time opening it: this build is not signed with an Apple certificate, so macOS refuses it once. Drag it to Applications, double-click, then open System Settings → Privacy & Security, scroll to the bottom and click Open Anyway. If that button is not there, run xattr -dr com.apple.quarantine /Applications/pdf2audio.app in Terminal.
Updates cannot install themselves yet — macOS only lets signed apps replace themselves, so the app will find a new version and point you here to download it.
You also need Docker — Docker Desktop or OrbStack, installed and running.
First launch downloads about 2.4 GB and takes a while; later ones take seconds.
Something broke? Help → Report a problem opens an issue with the details already filled in.
v26.827.2
Two things about optional model downloads, both found by using the app on a machine that had none of them.
Downloads show how far along they are
"Downloading Marker layout and OCR…" with no number, for five gigabytes, is indistinguishable from a hang. It now reads "Downloading Marker layout and OCR… 2.1 / 5.0 GB (42%)" and updates every couple of seconds.
A book that arrives before the models do is no longer marked failed
Dropping in a PDF before downloading the embedding models put a red "index failed" badge on it. Nothing was broken — keyword search worked the whole time, and the 4.2 GB semantic-search download simply had not been offered yet.
Those books now say "search pending", and — the part that actually matters — they index themselves as soon as the models land. No re-upload, no restart.
If you have a book stuck on "index failed"
Install this version, then download the BGE-M3 models from the chat page. Anything waiting gets picked up automatically.
Turns PDFs and EPUBs into audiobooks you can read along with, on your own machine. Apple Silicon Macs only. Download pdf2audio-26.827.2-arm64.dmg below.
First time opening it: this build is not signed with an Apple certificate, so macOS refuses it once. Drag it to Applications, double-click, then open System Settings → Privacy & Security, scroll to the bottom and click Open Anyway. If that button is not there, run xattr -dr com.apple.quarantine /Applications/pdf2audio.app in Terminal.
You also need Docker — Docker Desktop or OrbStack, installed and running.
First launch downloads about 2.4 GB and takes a while; later ones take seconds.
Something broke? Help → Report a problem opens an issue with the details already filled in.
v26.827.1
Fixes a first run that could never get past the database step.
What was wrong
The app copies a handful of files out of itself into your application-support folder on first launch — among them the Docker configuration that describes the database. That copy was happening after the step that reads it, so a first run asked Docker to open a file nothing had written yet:
open …/Library/Application Support/pdf2audio/docker-compose.yml: no such file or directory
Anyone whose folder already had that file — which is to say, the machine it was built on — never saw it. A first install always did.
If you hit this
Install this version over the old one and open it. Nothing to clean up.
Thanks to @si3792, who found this and the download timeout in v26.827.0 within ten minutes of each other, both by pressing the Report button.
Turns PDFs and EPUBs into audiobooks you can read along with, on your own machine. Apple Silicon Macs only. Download pdf2audio-26.827.1-arm64.dmg below.
First time opening it: this build is not signed with an Apple certificate, so macOS refuses it once. Drag it to Applications, double-click, then open System Settings → Privacy & Security, scroll to the bottom and click Open Anyway. If that button is not there, run xattr -dr com.apple.quarantine /Applications/pdf2audio.app in Terminal.
You also need Docker — Docker Desktop or OrbStack, installed and running.
First launch downloads about 2.4 GB and takes a while; later ones take seconds.
Something broke? Help → Report a problem opens an issue with the details already filled in.
v26.827.0
Fixes a first-run failure on any connection that is not very fast.
What was wrong
The database step downloads a 644 MB Postgres image the first time you run the app, and it was given a two-minute limit. Past that it was killed mid-download and reported as "Postgres would not start", leaving no database container behind. On the machine this was built on the image was already cached, so the step always took under a second and the problem was invisible until someone else ran it.
Now it has thirty minutes, shows Docker's download progress while it works, and — if it does fail — says what Docker actually reported instead of guessing.
If you hit this
Just install this version over the old one and open it. Nothing to clean up; the download resumes from wherever it got to.
Turns PDFs and EPUBs into audiobooks you can read along with, on your own machine. Apple Silicon Macs only. Download pdf2audio-26.827.0-arm64.dmg below.
First time opening it: this build is not signed with an Apple certificate, so macOS refuses it once. Drag it to Applications, double-click, then open System Settings → Privacy & Security, scroll to the bottom and click Open Anyway. If that button is not there, run xattr -dr com.apple.quarantine /Applications/pdf2audio.app in Terminal.
You also need Docker — Docker Desktop or OrbStack, installed and running. The app links to both if it is missing.
First launch downloads about 2.4 GB and takes a while; later ones take seconds.
Something broke? Help → Report a problem opens an issue with the details already filled in.
v26.826.0
Turns PDFs and EPUBs into audiobooks you can read along with, on your own machine. Everything runs locally except the optional cloud voices.
Download pdf2audio-26.826.0-arm64.dmg below. Apple Silicon Macs only.
First time opening it
This build is not signed with an Apple certificate, so macOS will refuse it once.
- Open the DMG and drag pdf2audio to your Applications folder.
- Double-click it. macOS will say it cannot be opened because the developer cannot be verified.
- Open System Settings → Privacy & Security, scroll to the bottom, and click Open Anyway.
- Confirm Open.
If that button is not there, open Terminal and run:
xattr -dr com.apple.quarantine /Applications/pdf2audio.app
Then open the app normally. Both do the same thing — they tell macOS you trust a download it cannot verify for you.
You also need Docker
Your library lives in a database, and Docker is the free program that runs it. Install Docker Desktop or OrbStack, open it once, and leave it running. The app checks on first launch and links to both if it is missing.
First launch takes a while
About 2.4 GB, once — a Python environment, a voice model, and the database image. Later launches take seconds. The window shows each step as it goes, and says which one failed if one does.
Known limits
- Updates cannot install themselves yet. The app notices a new version and downloads it, but macOS only lets signed apps replace themselves — so for now a new version means downloading the DMG again.
- PDF/EPUB export and the Hacker News feed work from a source checkout but not in the packaged app yet.
Something broke? The app writes a crash.log next to its data and can open a prefilled issue for you — Help → Report a problem, or the Report this button if it fails to start.
Bundled CLI tools (arm64) — ffmpeg 7.1.1, poppler 25.05.0
Not an app release. This is the ffmpeg / pdftotext / pdfinfo bundle that ships inside the macOS app, with its whole dylib closure relocated to @loader_path and ad-hoc re-signed by scripts/bundle-tools.py.
It exists as an artefact because Homebrew has no versioned formula for these and upgrades them under you — a build machine installing "ffmpeg" gets a different one each month, and the difference reaches every user as a book that extracts differently. Pinning the built bundle is the only way to make the tools inside a DMG the ones somebody tested.
Rebuild it with python3 scripts/bundle-tools.py on a machine with the pinned Homebrew versions, then upload a new tools-N and update scripts/pins.json.
Intro videos
Narrated intro videos — the audio is synthesized by pdf2audio itself (the app narrating its own playbook). Video 1: The core idea — from PDF to audiobook.