# output

The step-level `output` field overrides the workflow-level [output](/workflows/output) mode for a single step.

```yaml
workflows:
  verbose-deploy:
    output: log
    steps:
      - name: plan
        type: atmos
        command: terraform plan vpc
        output: viewport
        viewport:
          height: 4
          padding: 2
```

A live viewport follows recent stdout and stderr, collapses on success, and reveals
full output on failure. See [live viewport](/workflows/output#live-viewport) for sizing
and noninteractive behavior.

Supported values are `raw`, `log`, `viewport`, and `none`. See workflow-level [output](/workflows/output) for the value definitions. Any other value, such as `capture` or `stream`, fails validation before the step runs, and the error lists the valid modes. For `capture` and `stream`, the error also points to `exec.run`: in a [script step](/steps/type/script), `exec.run(argv, output="capture")` captures a command's output, and the `exec.run`, `component.exec`, and `atmos.*` functions accept `stream`, `capture`, and `viewport`. This applies to `shell`, `script`, `atmos`, and `container` steps and to the workflow-level `output`.

A templated `output` value is rendered first and validated after rendering. If the rendered text is not one of the supported modes, the step fails with the same error that lists the valid modes.

Terminal-handoff steps such as `tty`, `interactive`, and `exec` own the terminal while they run, so normal output capture modes do not apply in the same way.
