Spooldoc 0.1.0, the first release
Spooled files into PDF or HTML documents, with definitions in YAML, HTML templates, jobs that watch a queue, the agent and a job log.
Spooldoc turns IBM i spooled files into documents. It watches your output queues, extracts each spooled file into JSON with a definition you write in YAML, renders it with an ordinary HTML template into PDF or HTML, and keeps the files. The agent proposes the first definition and template from a sample spooled file, and you check every extracted field next to the page.
Try it
You need Docker and an IBM i 7.4 or later.
git clone https://github.com/Strom-Capital/spooldoc.git && cd spooldoc
printf 'BETTER_AUTH_SECRET=%s\nSPOOLDOC_SECRET_KEY=%s\n' "$(openssl rand -base64 32)" "$(openssl rand -base64 32)" > .env
docker compose up -d
Open http://localhost:3000, create the first account, add a server and
start a job from one of its output queues.
Getting started walks through the first run. The
image was ghcr.io/strom-capital/spooldoc:0.1.0, for amd64 and arm64.
What works
- *SCS spooled files, and XML printed into a spooled file.
- Definitions in YAML: fields by label, pattern or position, tables, multi-line records, and several page groups in one spooled file.
- HTML templates with your logos, images and fonts, rendered to PDF or delivered as HTML.
- Jobs that run on demand or watch a queue, by polling or in real time through a data queue, then hold, move or delete the spooled file.
- The agent, with Anthropic, Google, OpenAI, OpenRouter, Vercel AI Gateway or a local model. Values are masked before page text leaves the server.
- A job log with every run, its steps, errors and files.
Until 1.0, a minor release can include breaking changes, so read the release notes before you upgrade.
Tell us
Questions go to Q&A, ideas to Ideas, bugs to the issues. We would especially like to hear what you print today and what you would want it turned into. Please replace real customer, host and library names before you paste anything.
The 0.1.0 release is on GitHub, and so is the announcement.
All changes in 0.1.0 are in the changelog.

