Skip to main content
Parse one JSON document per command instead of scraping log lines. Under --output json, every terminating command answers with exactly one schema-1 envelope on stdout. Long-running commands stream the same shape as lifecycle frames.

Envelope shape

The error object:

Success and failure examples

Where human copy goes

The EXTENSION_OUTPUT environment variable is the machine-mode switch. When it is json or ndjson, frames own stdout and human copy moves aside:
  • Informational lines and warnings go quiet, or move to stderr where a stream needs them.
  • Error copy is never suppressed. It always writes to stderr, so a launch failure stays visible while stdout stays parseable.
Pipe stdout to your parser and keep stderr for humans. The two never mix.

Published contract artifacts

The extension-develop package ships the contract as importable files under the ./contract/* export: Validate your consumer against the schema, and pin your tests to the golden fixtures. Codes may be added, never renamed or removed.

Next steps