Learning in public — this reference is being written in the open. Unfinished pages are excluded from search engines.
paged.IDML Reference
The Paged PlatformPlugin SDK

Build a plugin

Fork the template, declare a manifest, implement activate(), and ship — the shortest path from zero to a working paged plugin against the published packages.

Tier: IntermediateIntermediateIItutorial

In short start from plugin-template — a runnable starter that consumes only the published @paged-media packages (no workspace links). Declare a manifest, implement activate(host), validate, and load.

1. Fork the template

The template is a clean-checkout proof: it builds against the published canaries with nothing else wired. Clone it, install, and you have a bundle that activates in the editor.

2. Declare the manifest

Give the bundle an id (reverse-DNS, e.g. media.example.hello), an apiVersion, and the capabilities and contributions it needs. Request the least you can — the host grants only what you declare.

3. Implement activate(host)

The host handle (@paged-media/plugin-api) is the typed surface for everything your manifest authorized: read/edit the document, register a panel or tool, publish or consume data, render to a scene layer. Editing the document uses the same mutation channel the scripting layer drives.

4. Validate and load

paged-plugin validate manifest.json

The CLI checks the manifest against the schema before the host ever sees it. A manifest that requests an unknown capability or malformed contribution fails here.

Learn from the real ones

The five first-party plugins are the worked examples — see the plugins overview for what each one does and how it uses the contract.

On this page