Manifest Reference

Every field the plugin.yaml manifest supports, as the engine actually parses it.

Browse documentation

Every plugin has a plugin.yaml manifest, and the whole document sits under a top-level plugin: key. This is the real, parsed shape. Fields not listed here are ignored.

A minimal manifest

plugin:
  id: markdown-exporter
  name: Markdown Exporter
  version: 1.0.0
  description: Exports the unified model to Markdown documentation.

id, name, version, and description are required. The id is lowercase with digits and hyphens; version is semantic versioning, MAJOR.MINOR.PATCH.

Identity and metadata

FieldRequiredNotes
idyesLowercase, digits, hyphens. The plugin’s stable identifier.
nameyesHuman-readable name.
versionyesSemantic version.
descriptionyesOne line on what the plugin does.
authorno
licenseno
homepageno
categorynoFor example exporter, curation-engine, page, tool.
languagenoThe language the plugin was written in.
tagsnoA list of strings.

Loading

plugin:
  loadOnStart: true   # load at startup; omit for lazy loading on first use

loadOnStart is a boolean. A plugin without it loads lazily the first time something calls it.

Resources and access

A plugin only gets the network and filesystem access it declares here.

plugin:
  resources:
    max_memory: 16777216   # bytes; defaults to 8 MB
    timeout_ms: 30000      # per-call timeout in ms; defaults to 30000
    filesystem:
      - /data/imports      # paths the plugin may read
    network:
      http: true
      allowed_hosts:
        - api.example.com
        - "*.amazonaws.com"

A request to a host not in allowed_hosts is denied at the boundary, and the plugin has no way to reach a path outside filesystem.

Capabilities and authorization

plugin:
  requires-capabilities:
    - network.http
    - marketplace.ai
  requires-authorization: false

requires-capabilities lists the host capabilities the plugin needs, as dot-paths. The host grants them before the plugin runs; until then the plugin stays locked. See permissions for the full model.

Schedules

A plugin can ask to run a handler on an interval:

plugin:
  schedules:
    - handler: refresh
      interval-ms: 60000

Lifecycle and events

Lifecycle hooks and the events a plugin emits or subscribes to are declared in WIT, not in the manifest. A lifecycle: or subscribes: block in the YAML is ignored.