Output formats
Operator-facing commands default to human-readable text output. Commands that
are useful in CI or automation can also emit JSON through --format=json.
Plan JSON
automax plan \
--job jobs/local-smoke.yaml \
--inventory inventory/local.yaml \
--format=json
The JSON plan includes the generated run id and every planned node:
{
"run_id": "20260523-120000-local-smoke-abc12345",
"nodes": [
{
"target": "controller",
"node_id": "task.smoke:step.local:substep.echo",
"task_id": "smoke",
"step_id": "local",
"substep_id": "echo",
"plugin": "command.local.run",
"tags": []
}
]
}
Run JSON
automax run \
--job jobs/local-smoke.yaml \
--inventory inventory/local.yaml \
--state-dir .automax/runs \
--format=json
The JSON summary contains the run id, final status, target summaries, failed nodes and resume commands:
{
"run_id": "20260523-120000-local-smoke-abc12345",
"rc": 0,
"status": "success",
"summary": {
"targets": 1,
"nodes": 1,
"success": 1,
"failed": 0,
"skipped": 0,
"changed": 1,
"artifacts": 0
}
}
Resume JSON
automax resume <run-id> --state-dir .automax/runs --only-failed --format=json
The JSON contract mirrors run --format=json, making it safe to consume from CI
pipelines and wrapper scripts.
Text remains the default
The default output is still optimized for humans:
automax run --job job.yaml --inventory inventory.yaml
Use JSON only when another tool needs to parse the result.