The powerful, fast & free book scanner

Give your books
the digital life
they deserve.

From your phone camera to a curated, searchable PDF At your desk, in the library, or wherever you are. No flatbed, no bulky rig: just you and your phone.

Every build runs the page-dewarp fit on the CPU — the LM solver needs no GPU. Prefer a package manager? CLI install.

The macOS · Windows · Linux desktop app is free & source-available. The iOS app is free too, but closed-source.

FREE No paywall
no in-app purchase
no subscription

Coming soon on your iPhone

The Aglaïa point-and-shoot capture screen on iPhone
Point & shoot capture
Use a remote, your voice, or let Aglaïa do it for you
A page photographed under uneven light — grey and skewed.
The same page after Aglaïa — flat, clean, deskewed.
before after
Fully automatic processing
Drag slider to compare
Searchable Markdown export on iPhone
Searchable Markdown & PDF
Apple OCR or Mistral OCR (API key)
Tip the developer

You don't have to settle
for crufty book photos.

You don't have to endure endless flatbed scanning sessions either.

Curved pages, skew, perspective, uneven illumination,
and dozens of issues that make you go « eewww… » when you look at your documents.
Aglaïa turns the camera and the laptop you already have into a proper scanner.
All automatic. Fully customizable.

3 scanning challenges,
1 standard pipeline to rule them all…

The following examples were all run with default settings. No fiddling needed — and when one page needs it, you can still edit that page's crop, rotation and dewarp by hand.

A book spread photographed at a desk under overhead light.
The same spread after Aglaïa: two flat, deskewed, dewarped pages.
before after
Easy mode 😁 at a desk with overhead lights
A book spread under uneven light — one page in shadow, the other bright.
The same spread after Aglaïa: even, clean, binarized text edge to edge.
before after
Medium mode 🤨 on a library chair, uneven illumination
A thick book whose pages curl steeply into the spine.
The same spread after Aglaïa: the curl flattened, baselines straight.
before after
Hard mode 😭 thick book, extreme page curl

A powerful pipeline architecture

Whether you're scanning books, spiral-bound reports, or loose sheets of paper, there's a specially curated pipeline for you.

Capture / Import

Point your phone or webcam at the page and shoot — hands-free with voice control, no flatbed, no app-switching. Already have files? Import your PDFs and images straight in.

Process

Isolate the text content, straighten it, and remove perspective and page-curvature distortion. Make your text pop with advanced binarization techniques.

Read

Fast and coarse or slow and precise; local (Apple Vision, Apple Document AI, Surya, GLM-OCR) or cloud-based (Mistral OCR) — use the OCR that suits your project.

Export

A clean, searchable PDF for your digital archives or printouts? A well-structured Markdown file to feed your favorite LLM workflows? Both at once, with the OCR provenance, in one textpack archive for your library? Aglaïa gives you what you need — and a text layer it checks, rather than a PDF that only looks searchable.

Scan anywhere with the continuity camera

Put your phone on your desk, your book on a chair, et voilà !

With a typical capacity of more than 1 page per second and a sub-2 seconds latency per scan, you may not turn the pages fast enough to overwhelm Aglaïa.

Overhead diagram: a person at a laptop, an iPhone on a stand acting as the camera, pointed at an open book propped on a chair.

Take full advantage of your computing power

Flattening a curved page is a fitting problem, and fitting is where the time goes. Aglaïa solves it with a Levenberg–Marquardt optimizer written for this problem in particular: analytic Jacobians instead of finite differences, and a Hessian whose sparse arrowhead structure is exploited rather than ignored — so each iteration costs a fraction of the general-purpose solve, and there are far fewer of them.

No idea what I am talking about? IT’S FAST 🔥🔥🔥

  • Apple MacBook M4 base (4 P-cores) 0.6 s/page
  • AMD Ryzen 9 7900X 0.3 s/page

headless mode · full chain, dewarp included · longer bar = more pages per minute

How much resolution do you want? — Yes!

Smart replay — no iterative distortion.

Deskew, keystone correction and dewarp each resample the image. Chain them naïvely and every pass softens and warps the pixels a little more — glyph edges crumble.

Aglaïa keeps track of the operations and at the end composes the perfect blend of geometric and morphological transforms to give you the sharpest result.

Text glyphs degraded and jagged from repeated per-step resampling.
Sequential processing
The same glyphs, crisp and clean, from a single replayed warp.
Smart replay

Simple, but not simplistic

Unleash the computer-vision and data-science nerd within you.

Full CLI automation

Run the end-to-end pipeline from the command line.

A plugin store

Install a processing step, an OCR engine or an export destination in one click — or write your own in Python, for the task at hand.

Freedom to choose

Your OCR engine, your destination: send a finished export to Kindle, to Calibre, to a folder, or to your own library — and tune any page by hand when the automatic answer is not the one you wanted.

Install from the command line

GUI builds: macOS .dmg · Windows installer · Linux AppImage (above). For a CLI-only or scripted setup, use uv or pip on any platform.

# macOS, Apple Silicon
brew tap yb85/aglaia https://github.com/yb85/aglaia
brew trust yb85/aglaia              # Homebrew 6.x: trust the third-party tap

brew install --cask aglaia          # the GUI app (notarized DMG) — recommended
# or, run from a terminal instead of a .app double-click:
brew install aglaia-cli             # same full app, launched via `aglaia …`
brew install aglaia-cli --without-gui   # lighter: CLI-only, no Qt/GUI

aglaia ~/scans/my-book
# build from source with the extras you want
git clone https://github.com/yb85/aglaia.git && cd aglaia

uv sync --extra gui --extra macos   # macOS GUI: Vision, Speech, MLX dewarp
uv sync --extra gui                 # Windows / Linux GUI (Qt only)
uv sync                             # headless: CLI pipeline, no Qt
# add any of:
#   --extra macos    # Apple Vision + Apple Document AI OCR, MLX local VLM OCR
#   --extra cuda     # NVIDIA local VLM OCR (vLLM, Linux)
#   --extra voice    # offline voice control (Vosk, cross-platform)
#   --extra cloud    # Mistral cloud OCR + OS-keychain key storage
#   --extra server   # HTTP job API (`aglaia server`)

uv run aglaia ~/scans/my-book       # GUI; `aglaia run …` to batch headlessly
# from PyPI — installs the `aglaia` command
pip install aglaia                  # lean base: headless pipeline, no Qt
pip install "aglaia[gui]"           # Windows / Linux GUI (Qt)
pip install "aglaia[gui,macos]"     # macOS GUI: Vision, Speech, MLX dewarp

# Local VLM OCR (GLM / Surya) rides the platform backend:
#   pip install "aglaia[macos]"     # Apple Silicon (MLX)
#   pip install "aglaia[cuda]"      # NVIDIA (vLLM)
# Apple Vision OCR needs no extra — it ships with [macos].
# pip install "aglaia[server]"      # HTTP job API (`aglaia server`)

aglaia ~/scans/my-book              # opens the GUI
aglaia run ~/scans/*.jpg            # headless batch

Compared to a commercial scanner with curve removal

Commercial solution Aglaïa
Curve removal
Purpose Facsimile Pure text
Fully automatic Depends on the model
Hardware Specialized rig Mobile phone + laptop
Portability
Price ≥ $330 Free, voluntary donation
Speed 40 pages/min 100–200 pages/min (on a laptop CPU)
Extendable? Closed source / proprietary Desktop source-available*

* The desktop app (macOS · Windows · Linux) is source-available: personal modifications and contributions welcome; competitive redistribution (SaaS, repackaging) prohibited.

Digitize your shelf.

Free — and the desktop app is source-available*, yours to extend.

Every build runs the page-dewarp fit on the CPU — the LM solver needs no GPU. Prefer a package manager? CLI install.

* PolyForm Shield License 1.0.0