# Describe Settings

The `describe` section of the `atmos.yaml` configures the behavior of the `atmos describe` command output.

## Configuration

**File:** `atmos.yaml`

```yaml
describe:
  settings:
    # Include empty values in the describe output
    include_empty: false
  affected:
    # Override which component sections `atmos describe affected` evaluates.
    # When set, this list fully replaces the built-in defaults.
    sections:
      - vars
      - env
      - providers
      - hooks
```

## Fields

- **`settings.include_empty`**

  When set to `true`, includes fields with empty values (empty strings, empty arrays, null values) in the describe command output.
  Default: `false` (empty values are omitted for cleaner output).
- **`affected.sections`**

  The authoritative list of top-level component sections that `atmos describe affected` compares when computing
  affected components. When empty or unset, Atmos uses the built-in defaults below.

  **Default sections:** `vars`, `env`, `providers`, `required_providers`, `required_version`, `generate`,
  `backend`, `backend_type`, `remote_state_backend`, `remote_state_backend_type`, `auth`, `command`, `dependencies`,
  `source`, `provision`.

  `hooks` is **not** a default — it is operational/execution-time behavior (commands that run before/after an
  operation), not provisioned infrastructure. Add it to this list if you want hook changes to mark a component as
  affected (reported as `stack.hooks`).

  When set, this list **fully replaces** those defaults — it is not additive. To add a custom section (or `hooks`),
  list every default you still want plus the extra section name; to stop evaluating a default, omit it from the list.
  A custom section is reported as `stack.<name>` when it changes.

  `metadata` and `settings` are **always** evaluated and cannot be disabled with this list: `metadata` gates whether a
  component is skipped, and `settings` also drives dependency change detection.

## Examples

### Show All Fields Including Empty

To see all configuration fields even when they have no value:

**File:** `atmos.yaml`

```yaml
describe:
  settings:
    include_empty: true
```

This is useful for:

- Understanding the full schema of component configurations
- Debugging why a field might not be set
- Documentation purposes

### Default Behavior (Cleaner Output)

By default, empty values are omitted:

**File:** `atmos.yaml`

```yaml
describe:
  settings:
    include_empty: false
```

This produces cleaner, more readable output focused on the values that are actually configured.

**Describe Components and Stacks**

Use the describe commands to inspect your component and stack configurations.

Describe Commands[Read more](/cli/commands/describe/usage)
