Command line (paged)
The `paged` binary — open, author, render, export and verify documents from a shell, driving the same typed engine door the editor's worker uses. Generated from the binary's own parser.
In short One binary that opens IDML or .paged, authors through the script
bridge, renders what the editor renders, exports IDML / .paged / PDF, reads
back everything the engine knows about a document, and verifies the result.
cargo build --release -p paged-cli # → target/release/pagedpaged new— Mint a blank documentpaged script— Author a document by running a `.js` file against itpaged gen— Emit the built-in corpus fixturespaged inspect— Report what the engine made of a documentpaged read— Ask the engine one of its diagnostic questionspaged parts— List, read and write a `.paged` container's content partspaged describe— Print the capability catalog — what this engine can be asked to dopaged render— Rasterise a page to PNGpaged export— Write the document out as IDML, `.paged`, or PDFpaged digest— Print the document's verification digestspaged diff— Compare two PNGs — ΔE2000 and SSIM. Exits 1 when they differ beyond the budgetpaged session— Speak the headless NDJSON engine protocol on stdin/stdoutpaged package— Collect the document, its linked files and its fonts into one folder (InDesign's File ▸ Package)paged place— Put an image file into a graphic framepaged set— Set one property of any object (ADR 132, `Mutation::Set`)paged get— Read one property of any object, as its wire value JSON (`RequestGet`, the read twin of `set`)paged invoke— Apply one wire operation to a document (`Mutation`, by its tag)paged ops— List every wire operation and whether `paged invoke` sends itpaged query— List the objects a selector names, one canonical address per line
Why it is the same engine
paged drives WorkerCore::dispatch — the typed door the editor's worker
uses, the same match arms and the same model calls, with no JSON in between. So
the CLI cannot apply a mutation the editor cannot, or load a document with
options the editor cannot express, and it inherits fonts, colour management, PDF
export, the container-parts door, scripting and undo without reimplementing any
of them.
That is the parity contract, and it has a matching limit worth stating: paged
cannot resolve an external Links/photo.jpg off the filesystem. Neither can the
editor's canvas — images reach it as bytes already in the container. The older
paged-inspect binary can, which is why it still exists.
Fonts and colour: the ordering rule
Fonts are registered before the document is loaded, because the registry seeds shaping at load and a later registration cannot retroactively shape anything. A colour profile is registered and then made the working space after the load, because the model binds its profile at load time. Getting either backwards produces a document that looks right in the log and wrong on the page.
Two flags that read alike and are not:
--fonts <dir|file>registers families. This is what makes a face available to text that names it, and whatpaged read font-faceserves back.--font <file>is only the fallback face, for text that names no family at all.
Core ships no fallback face of its own. Text whose family nothing answers for is not shaped, and an unshaped page renders white — so the CLI says so on stderr rather than letting a blank PNG look like a renderer bug.
The command reference
Every command below, every flag, and every default is read out of the binary's parser at build time. If a flag is here, the binary has it.
Author
Make a document, or change one.
Mint a blank document
--size <SIZE>— letter | legal | tabloid | a3 | a4 | a5, or WxH in points Defaultletter.--format <FORMAT>— idml | paged Defaultpaged.-o, --out <OUT>— Output file
Author a document by running a `.js` file against it
<doc>— IDML or `.paged` document to author into<script>— The script--timeout <TIMEOUT>— Wall-clock ceiling in milliseconds, or "none" to disable the deadline (the loop, recursion and stack guards still apply) Default60000.--max-loop-iterations <MAX_LOOP_ITERATIONS>— Loop-iteration ceiling Default10000000.-o, --out <OUT>— Write the authored document here. The format follows the extension: .paged, .idml or .pdf. Without it the script's changes are not saved (the run warns when there were any)--render <FILE.png>— Also rasterise a page of the result here--page <PAGE>— Which page `--render` takes (1-based, or a page id) Default1.--dpi <DPI>— Render resolution Default144.--standard <STANDARD>— "pdf17" (default) or "pdfx4". X-4 needs a resolvable output intent — give one here or let the document's profile serve Defaultpdf17.--output-intent <OUTPUT_INTENT>— Output-intent profile NAME, resolved against what this run registered. Defaults to the working space--output-condition <OUTPUT_CONDITION>— Human-readable output condition for the OutputIntent dict--marks— Crop marks, registration marks, colour bars, page info--pages <FROM-TO>— 0-based inclusive page range, e.g. `0-9`--bookmarks— Write the document's bookmarks as the PDF outline--tagged— Create Tagged PDF: a structure tree of stories and paragraphs, as InDesign's "Create Tagged PDF" writes it--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Emit the built-in corpus fixtures
Emit one built-in fixture
--sample <SAMPLE>— Fixture name; an unknown one lists them all--out <OUT>— Output directory; the file lands at `<out>/<sample>.idml` Defaultcorpus/generated.
Emit every built-in fixture. Prefer this over a copied name list
--out <OUT>— Output directory for the whole set Defaultcorpus/generated.
Read
Ask the engine what a document holds — the same questions the editor’s Inspector asks.
Report what the engine made of a document
<doc>— IDML or `.paged` document--json— Emit JSON instead of a table--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Ask the engine one of its diagnostic questions
Every `<Layer>`, with its visible / locked / printable flags
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
One typed document collection
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<name>— Collection name, in the wire spelling
The frames a story flows through, in order
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<story_id>— Story `Self` id (from `paged read collection <doc> stories`)
A story's text content
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<story_id>— Story `Self` id
Every settable property of one style definition, in the shapes `SetStyleProperty` takes
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<collection>— paragraph | character | object | cell | table<style_id>— Style `Self` id, e.g. `ParagraphStyle/Body`
Plugin placeholder fields the document carries
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
A swatch resolved to screen RGB through the colour settings
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<swatch_id>— Swatch `Self` id, e.g. `Color/Black`
Resolve arbitrary channel values through the document's profiles
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<space>— CMYK | RGB | LAB | Gray--value <VALUE>(repeatable) — Channel values, repeatable and in `space` order--tint <TINT>— Tint percentage, 0..100--model <MODEL>— Process | Spot
A gradient's stops, resolved
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<gradient_id>— Gradient `Self` id
Every property of one element — the Inspector's own read
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<id>— `kind:id` address, e.g. `textFrame:u12`
Bounds and transform of one or more elements
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<ids>(repeatable) — `kind:id` addresses
The leaf page items inside a group, recursively
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<group_id>— Group `Self` id (bare, not an address)
A path element's anchors, with their control handles
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<id>— `kind:id` address of a path-carrying element
A text frame's composed glyphs as outlines in page space, one run per fill colour (what "Create Outlines" inserts)
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<id>— `textFrame:<id>` address
Snap a page point to the anchors, alignment lines, guides and outlines around it — what the Pen or a dragged anchor would land on
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<page>— The page's `Self` id[point](repeatable) — The point, page-local pt--camera-scale <CAMERA_SCALE>— Screen px per pt (the tolerance is 4 screen px). Default 1--exclude <EXCLUDE>(repeatable) — `kind:id` addresses to leave out of the targets--grid— Also snap to the document grid (off by default, as in InDesign)
The planar arrangement of overlapping paths — the faces the pathfinder region verbs address
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<ids>(repeatable) — `kind:id` addresses, front to back--point <X> <Y>(repeatable) — Answer only the face under this page point
Measure a string in a registered face
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<family>— Registered family name (see `--fonts`)<text>— The string to measure--size-pt <SIZE_PT>— Point size to measure at Default12.--style <STYLE>— Style within the family, e.g. `Bold`
The bytes of a placed image, as the engine holds them
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<element_id>— Element `Self` id of the frame holding the image-o, --out <OUT>— Write the bytes here (the reply's metadata still prints)
The bytes of a registered font face
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")<family>— Registered family name (see `--fonts`)--style <STYLE>— Style within the family, e.g. `Bold`-o, --out <OUT>— Write the bytes here
Export the swatches as an Adobe `.ase` library
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")--group <GROUP>— Limit to one colour group-o, --out <OUT>— Write the `.ase` here
List, read and write a `.paged` container's content parts
List the parts under a path prefix
<doc>— `.paged` container (an IDML package carries no parts)[prefix]— Prefix to list; empty lists everything Default.--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Read one part's bytes
<doc>— `.paged` container<path>— Part path inside the container-o, --out <OUT>— Write the bytes here instead of stdout--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Write one part and save the container back
<doc>— `.paged` container<path>— Part path inside the container<from>— File whose bytes become the part--caller <CALLER>— Name the writing caller, as a bundle adapter does--save <SAVE>— Save the container back to this path (or `--save` alone to overwrite the input)--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Delete one part and save the container back
<doc>— `.paged` container<path>— Part path inside the container--caller <CALLER>— Name the deleting caller, as a bundle adapter does--save <SAVE>— Save the container back to this path (or `--save` alone to overwrite the input)--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Print the capability catalog — what this engine can be asked to do
--compact— One JSON line instead of an indented block
Render and export
Produce the artefact.
Rasterise a page to PNG
<doc>— IDML or `.paged` document--page <PAGE>— Page to render: a 1-based number or a page id. Default: 1--all— Render every page; `-o` must then be a directory--dpi <DPI>— Resolution. 72 makes one pixel one point Default144.-o, --out <OUT>— Output PNG (or directory, with `--all`)--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Write the document out as IDML, `.paged`, or PDF
<doc>— IDML or `.paged` document--format <FORMAT>— idml | paged | pdf Defaultpdf.-o, --out <OUT>— Output file--standard <STANDARD>— "pdf17" (default) or "pdfx4". X-4 needs a resolvable output intent — give one here or let the document's profile serve Defaultpdf17.--output-intent <OUTPUT_INTENT>— Output-intent profile NAME, resolved against what this run registered. Defaults to the working space--output-condition <OUTPUT_CONDITION>— Human-readable output condition for the OutputIntent dict--marks— Crop marks, registration marks, colour bars, page info--pages <FROM-TO>— 0-based inclusive page range, e.g. `0-9`--bookmarks— Write the document's bookmarks as the PDF outline--tagged— Create Tagged PDF: a structure tree of stories and paragraphs, as InDesign's "Create Tagged PDF" writes it--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Verify
Compare a result against a reference, deterministically.
Print the document's verification digests
<doc>— IDML or `.paged` document--compact— One JSON line instead of an indented block--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Compare two PNGs — ΔE2000 and SSIM. Exits 1 when they differ beyond the budget
<reference>— The reference, first — the order is load-bearing<candidate>— The candidate--json— Emit the verdict as JSON instead of a line of prose--heatmap <HEATMAP>— Also write a ΔE heatmap PNG here--heatmap-scale <HEATMAP_SCALE>— ΔE mapped to peak heatmap intensity Default5.
Protocol
Speak the engine’s wire protocol directly.
Speak the headless NDJSON engine protocol on stdin/stdout
Other
Commands this page has not been taught to group yet.
Collect the document, its linked files and its fonts into one folder (InDesign's File ▸ Package)
<doc>— IDML or `.paged` document-o, --out <OUT>— The package folder--instructions <INSTRUCTIONS>— Text for `Instructions.txt`, instead of the default note--json— Print the report as JSON instead of text--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Put an image file into a graphic frame
<doc>— IDML or `.paged` document<frame>— The graphic frame, as `rectangle:<id>` (also oval:/polygon:)<image>— Image file. PNG / JPEG / WebP / TIFF / GIF / BMP — the formats the engine decodes--fit <FIT>— `<FrameFittingOption>` fitting mode, e.g. FillProportionally--transform <A,B,C,D,TX,TY>— The placed image's own transform, `a,b,c,d,tx,ty` — how a crop is expressed exactly rather than approximated by a fit-o, --out <OUT>— Write the result here. The format follows the extension--standard <STANDARD>— "pdf17" (default) or "pdfx4". X-4 needs a resolvable output intent — give one here or let the document's profile serve Defaultpdf17.--output-intent <OUTPUT_INTENT>— Output-intent profile NAME, resolved against what this run registered. Defaults to the working space--output-condition <OUTPUT_CONDITION>— Human-readable output condition for the OutputIntent dict--marks— Crop marks, registration marks, colour bars, page info--pages <FROM-TO>— 0-based inclusive page range, e.g. `0-9`--bookmarks— Write the document's bookmarks as the PDF outline--tagged— Create Tagged PDF: a structure tree of stories and paragraphs, as InDesign's "Create Tagged PDF" writes it--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Set one property of any object (ADR 132, `Mutation::Set`)
<doc>— IDML or `.paged` document<target>— An address: `doc`, `rectangle:<id>`, `swatch:<id>`, `layer:<id>`, …<path>— A `propertySchemas` path for the target's kind<value>— JSON (`12`, `true`, `[0,0,100,100]`) or a plain string (`3mm`)-o, --out <OUT>— Write the result here. The format follows the extension--standard <STANDARD>— "pdf17" (default) or "pdfx4". X-4 needs a resolvable output intent — give one here or let the document's profile serve Defaultpdf17.--output-intent <OUTPUT_INTENT>— Output-intent profile NAME, resolved against what this run registered. Defaults to the working space--output-condition <OUTPUT_CONDITION>— Human-readable output condition for the OutputIntent dict--marks— Crop marks, registration marks, colour bars, page info--pages <FROM-TO>— 0-based inclusive page range, e.g. `0-9`--bookmarks— Write the document's bookmarks as the PDF outline--tagged— Create Tagged PDF: a structure tree of stories and paragraphs, as InDesign's "Create Tagged PDF" writes it--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Read one property of any object, as its wire value JSON (`RequestGet`, the read twin of `set`)
<doc>— IDML or `.paged` document<target>— An address: `doc`, `rectangle:<id>`, `swatch:<id>`, `layer:<id>`, …<path>— A `propertySchemas` path for the target's kind--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Apply one wire operation to a document (`Mutation`, by its tag)
<doc>— IDML or `.paged` document<op>— The operation's wire tag (`insertTextFrame`, `linkFrames`, …)[args]— The arguments: inline JSON, `-` for stdin, or a JSON file-o, --out <OUT>— Write the result here. The format follows the extension--standard <STANDARD>— "pdf17" (default) or "pdfx4". X-4 needs a resolvable output intent — give one here or let the document's profile serve Defaultpdf17.--output-intent <OUTPUT_INTENT>— Output-intent profile NAME, resolved against what this run registered. Defaults to the working space--output-condition <OUTPUT_CONDITION>— Human-readable output condition for the OutputIntent dict--marks— Crop marks, registration marks, colour bars, page info--pages <FROM-TO>— 0-based inclusive page range, e.g. `0-9`--bookmarks— Write the document's bookmarks as the PDF outline--tagged— Create Tagged PDF: a structure tree of stories and paragraphs, as InDesign's "Create Tagged PDF" writes it--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
List every wire operation and whether `paged invoke` sends it
--json— Emit JSON (`[{op, invokable, reason?}]`) instead of one per line
List the objects a selector names, one canonical address per line
<doc>— IDML or `.paged` document<selector>— The selector--json— Print the engine's reply envelope as JSON--fonts <DIR|FILE>(repeatable) — Font file or directory to make available, repeatable--font-family <NAME[/STYLE]=PATH>(repeatable) — Bind one family (and optionally a style) to a file, repeatable: `--font-family "Fraunces/Italic=/path/Fraunces-Italic.ttf"`--font <FILE>— Fallback face for text no registered family answers for. Absent, the face the CLI bundles (Inter) stands in--no-default-font— No fallback face: text no registered family answers for is not set, and the run says so (to see what a document is missing)--cmyk-profile <NAME|FILE>— CMYK profile: a file path, or a name to resolve against the host's installed profiles (e.g. "Coated FOGRA39")
Addressing an element
The read commands that take an element accept the same kind:id address
paged.set takes — one grammar, shared by the command line and the scripting
bridge:
textFrame:u12 rectangle:u3 oval:u7 polygon:u4 graphicLine:u9 group:u2
storyRange:Story/u1@0..6A malformed address is refused with the list of forms, not a stack trace.
Related
- Scripting (
paged.*)IntermediateII· explanationwhatpaged scriptruns. - API referenceIntermediateII· referencethe other programmable surfaces.
Sandbox & budgets
The execution model for paged.* scripts — a pure ECMAScript sandbox with no I/O, plus the runtime budgets that keep scripts safe — generated from the engine catalog.
Plugin SDK
Paged's plugin platform lets external bundles contribute tools, panels, commands, and document behavior to the editor through a small, versioned contract — the same surface Paged's own first-party plugins are built on.