Scriptoria — a research workbench for IIIF manuscripts.
Web
scriptoria→ 127.0.0.1:8000 · CLIscriptoria-cli "<manifest-url>"
git clone https://github.com/nikazzio/scriptoria.git
cd scriptoria
python3 -m venv .venv &&source .venv/bin/activate
pip install -e .
scriptoriaflowchart LR
A[🔍 Discovery] --> B[📚 Library]
B --> C[📖 Studio]
C --> D[📤 Output]
A -. search/resolve .-> R[(Provider Registry)]
B -. local assets .-> V[(Vault)]
C -. manifests .-> V
D -. export jobs .-> V
| Tab | What it does |
|---|---|
| Discovery | Resolve URLs, IDs, shelfmarks. Search 10+ IIIF libraries. |
| Library | Browse and manage your local manuscript collection. |
| Studio | Document workspace — Mirador viewer, OCR transcription, page actions. |
| Output | PDF inventory, thumbnail-level actions, export job queue. |
- 10+ IIIF providers — Vatican, Gallica, Harvard, Bodleian, Heidelberg, LoC, Archive.org, Cambridge, e-codices, Institut
- Provider registry — shared resolution for web UI and CLI
- PDF export profiles — local and remote high-res modes with quality presets
- Centralized HTTP — retries, exponential backoff, per-library network policies
- Local-first workflow — reproducible storage, no cloud dependencies
scriptoria-cli "https://digi.vatlib.it/iiif/MSS_Urb.lat.1779/manifest.json"Any IIIF-compliant manifest URL works directly.
| 🗂️ Docs Home | 🚀 Getting Started |
| 🏗️ Architecture | ⚙️ Config Overview |
| 💻 CLI Reference | 📖 Wiki |
pytest tests/ # tests
ruff check . --fix # lint
ruff format .# format
ruff check . --select C901 # complexityscriptoria: command not found
source .venv/bin/activate && pip install -e .ruff: command not found
source .venv/bin/activate && pip install -r requirements-dev.txtPort 8000 already in use
Stop the conflicting process and restart scriptoria.
Studio opens without a document
Expected. Open an item from Library, or use the recent-work hub at /studio.
Built for manuscript-heavy research workflows · GPL-3.0-or-later