# step

A step is one entry in a workflow's `steps` array — the unit of work Atmos runs, whether it executes a command or renders interactive UI.

```yaml
steps:
  - name: plan
    type: atmos
    command: terraform plan vpc
    stack: tenant1-ue2-dev
    identity: developer
```

## Common Fields

- **`name`**
  Optional step identifier. Atmos generates names like 
  `step1`
   when omitted. Names are used by 
  `--from-step`
   and by templates such as 
  `{{ .steps.plan.value }}`
  .
- **`type`**
  Step behavior selector. Type 
  `atmos`
   is the default for command steps. See 
  [type](/workflows/steps/type)
  .
- **`command`**
  Command text for command-running step types such as 
  `atmos`
  , 
  `shell`
  , 
  `spin`
  , and 
  `container`
   run actions.
- **`stack`**
  Step-level stack override for 
  `type: atmos`
   steps.
- **`identity`**
  Step-level auth identity. See 
  [identity](/workflows/steps/identity)
  .
- **`env`**
  Step-level environment variables. See 
  [env](/workflows/steps/env)
  .
- **`working_directory`**
  Step-level working directory override. See 
  [working_directory](/workflows/steps/working-directory)
  .
- **`retry`**
  Retry policy for the step. See 
  [retry](/workflows/steps/retry)
  .
- **`output`**
  Step-level output mode override. See 
  [output](/workflows/steps/output)
  .
- **`show`**
  Step-level display settings override. See 
  [show](/workflows/steps/show)
  .
- **`outputs`**
  Declared outputs derived from the step result. See 
  [outputs](/workflows/steps/outputs)
  .

Type-specific fields are documented with [type](/workflows/steps/type).
