# atmos list settings

Use this command to list component settings across all stacks in a comparison table. View how settings vary between environments to quickly spot configuration differences and validate consistency.

## Usage

```shell
atmos list settings [flags]
```

## Description

The `atmos list settings` command helps you inspect component settings across different stacks. It provides a tabular view where:

- Each column represents a stack (e.g., dev-ue1, staging-ue1, prod-ue1)
- Each row represents a key in the component's settings
- Cells contain the settings values for each key in each stack (only scalars at this time)

The command is particularly useful for:

- Comparing component settings across different environments
- Verifying settings are configured correctly in each stack
- Understanding component configuration patterns across your infrastructure

## Flags

- **`--query string`** — Dot-notation path query to filter settings (e.g., `.settings.templates`). Uses a simplified path syntax, not full JMESPath.
- **`--max-columns int`** — Maximum number of columns to display (default: `50`)
- **`--format string`** — Output format: `table`, `json`, `yaml`, `csv`, `tsv` (default: `table`)
- **`--delimiter string`** — Delimiter for csv/tsv output (default: `,` for csv, `\t` for tsv)
- **`--stack string`** — Filter by stack by wildcard pattern (e.g., `*-dev-*`, `prod-*`, `*-{dev,staging}-*`)
- **`--identity` / `-i` (optional)** — Authenticate with a specific identity before listing settings.This is required when stack configurations use YAML template functions(e.g., `!terraform.state`, `!terraform.output`) that require authentication.`atmos list settings --identity my-aws-identity`Can also be set via `ATMOS_IDENTITY` environment variable.
- **`--process-templates`** — Enable/disable Go template processing in Atmos stack manifests (default `true`). Go template functions include `atmos.Component(...)`.Environment variable: `ATMOS_PROCESS_TEMPLATES`
- **`--process-functions`** — Enable/disable YAML functions processing in Atmos stack manifests (default `true`). YAML functions include `!terraform.state`, `!terraform.output`, `!store`, `!aws.*`, etc. This is distinct from Go template functions like `atmos.Component(...)`, which are controlled by `--process-templates`.Environment variable: `ATMOS_PROCESS_FUNCTIONS`
- **`--error-mode`** — How to handle unavailable requested values, including missing Terraform state and unavailable implicit authentication (default `warn`). `warn` substitutes `(computed)` and prints one summary; `silent` omits the summary; `strict` fails. Default identities authenticate only when an evaluated value needs credentials. Explicit `--identity` or `ATMOS_IDENTITY` failures, malformed configuration, invalid expressions, and dependency cycles remain fatal.Environment variable: `ATMOS_LIST_ERROR_MODE`

## Examples

List all settings:

```shell
atmos list settings
```

List settings for specific stacks:

```shell
# List settings for dev stacks
atmos list settings --stack '*-dev-*'

# List settings for production stacks
atmos list settings --stack 'prod-*'
```

List specific settings using path queries:

```shell
# Query template settings
atmos list settings --query '.settings.templates'

# Query validation settings
atmos list settings --query '.settings.validation'

# Query specific template configurations
atmos list settings --query '.settings.templates.gomplate'
```

Output in different formats:

```shell
# JSON format for machine processing
atmos list settings --format json

# YAML format for configuration files
atmos list settings --format yaml

# CSV format for spreadsheet compatibility
atmos list settings --format csv

# TSV format with tab delimiters
atmos list settings --format tsv
```

### Custom Column using Stack Name

You can use available variables like `.stack_name` in your column definitions:

```yaml
# In atmos.yaml, under the appropriate scope (values, vars, settings, or metadata)
list:
  columns:
    - name: "Stack"
      value: "{{ .stack_name }}"
    - name: "Setting"
      value: "{{ .key }}"
    - name: "Value"
      value: "{{ .value }}"
```

## Example Output

```shell
> atmos list settings
┌──────────────┬──────────────┬──────────────┬──────────────┐
│              │   dev-ue1    │  staging-ue1 │   prod-ue1   │
├──────────────┼──────────────┼──────────────┼──────────────┤
│ templates    │ {...}        │ {...}        │ {...}        │
│ validation   │ {...}        │ {...}        │ {...}        │
└──────────────┴──────────────┴──────────────┴──────────────┘
```

:::tip

- For wide tables, try using more specific queries or reduce the number of stacks
- Stack patterns support glob matching (e.g., `*-dev-*`, `prod-*`, `*-{dev,staging}-*`)
- Settings are typically found under component configurations
  :::
