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

Plugin SDK

How third parties extend paged — the plugin contract, the manifest, the capability model, and the lifecycle. The capability and contribution vocabularies are generated from the manifest schema.

Tier: IntermediateIntermediateIIexplanation

In short a paged plugin is a bundle that declares a manifest — an identity, the capabilities it needs (document access, rendering surfaces, network, storage, …), and the contributions it adds (tools, panels, commands, object types). The host grants only what the manifest declares; capabilities are a closed, enforced vocabulary. The five first-party content plugins (draw, web, image, sheets, data) are built on this same contract.

The packages

  • @paged-media/plugin-api — the type-only contract: the editor-host handles and the manifest types. No runtime code; a plugin compiles against it.
  • plugin-sdk — runtime helpers: the BundleHost adapter, the loader, the gesture kit.
  • plugin-cli — a zero-dependency manifest validator (paged-plugin validate).

The manifest

Every bundle ships a manifest.json. Its fields, capability vocabulary, and contribution kinds are a single source of truth (a JSON Schema, per ADR-019); the pages here are generated from it.

FieldRequiredShapeNotes
idrequiredstringReverse-DNS plugin identity; namespace prefix for all contribution ids.
namerequiredstring
versionrequiredstring
apiVersionrequiredstring
publisheroptionalstring

Where to go next

On this page