# atmos list values

Use this command to list component configuration values across all stacks in a comparison table. View how a component's configuration varies between environments to spot differences and validate settings.

## Usage

```shell
atmos list values [component] [flags]
```

## Description

The `atmos list values` command helps you inspect component values 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 configuration
- Cells contain the values for each key in each stack

The command is particularly useful for:

- Comparing component configurations across different environments
- Verifying values are set correctly in each stack
- Understanding how a component is configured across your infrastructure

## Flags

- **`--query string`** — Dot-notation path query to filter values (e.g., `.vars.enabled`). Uses a simplified path syntax, not full JMESPath.
- **`--abstract`** — Include abstract components in the output
- **`--max-columns int`** — Maximum number of columns to display (default: `10`)
- **`--format string`** — Output format: `table`, `json`, `csv`, `tsv` (default: `table`)
- **`--delimiter string`** — Delimiter for csv/tsv output (default: `,` for csv, `\t` for tsv)
- **`--identity` / `-i` (optional)** — Authenticate with a specific identity before listing values.This is required when stack configurations use YAML template functions(e.g., `!terraform.state`, `!terraform.output`) that require authentication.`atmos list values vpc --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`

## Examples

List all values for a component:

```shell
atmos list values vpc
```

List only variables for a component (using the alias):

```shell
atmos list vars vpc
```

List values with a custom path query:

```shell
# Query specific variables
atmos list values vpc --query .vars.enabled

# Query environment settings
atmos list values vpc --query .vars.environment

# Query network configuration
atmos list values vpc --query .vars.ipv4_primary_cidr_block
```

Include abstract components:

```shell
atmos list values vpc --abstract
```

Limit the number of columns:

```shell
atmos list values vpc --max-columns 5
```

Output in different formats:

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

# CSV format for spreadsheet compatibility
atmos list values vpc --format csv

# TSV format with tab delimiters
atmos list values vpc --format tsv

# Note: Use JSON or CSV formats when dealing with wide datasets
# The table format will show a width error if the data is too wide for your terminal
```

### 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: "Key"
      value: "{{ .key }}"
    - name: "Value"
      value: "{{ .value }}"
```

## Example Output

```shell
> atmos list vars vpc
┌──────────────┬──────────────┬──────────────┬──────────────┐
│              │   dev-ue1    │  staging-ue1 │   prod-ue1   │
├──────────────┼──────────────┼──────────────┼──────────────┤
│ enabled      │ true         │ true         │ true         │
│ name         │ dev-vpc      │ staging-vpc  │ prod-vpc     │
│ cidr_block   │ 10.0.0.0/16  │ 10.1.0.0/16  │ 10.2.0.0/16  │
│ environment  │ dev          │ staging      │ prod         │
│ namespace    │ example      │ example      │ example      │
│ stage        │ dev          │ staging      │ prod         │
│ region       │ us-east-1    │ us-east-1    │ us-east-1    │
└──────────────┴──────────────┴──────────────┴──────────────┘
```

### Nested Object Display

When listing values that contain nested objects:

1. In table format, nested objects appear as `{...}` placeholders
2. Use `--format json` or `--format yaml` to see the complete nested structure
3. You can query specific nested paths using the dot notation: `--query .vars.tags.Environment`

Example JSON output with nested objects:

```json
{
  "dev-ue1": {
    "cidr_block": "10.0.0.0/16",
    "tags": {
      "Environment": "dev",
      "Team": "devops"
    },
    "subnets": [
      "10.0.1.0/24",
      "10.0.2.0/24"
    ]
  }
}
```

## Try it out

### demo-stacks

Copy the example into a new directory and make it your own:

```shell
atmos init examples/demo-stacks
cd demo-stacks
```

Inspect the values for myapp across the example stacks.

```shell
atmos list values myapp
```

- [Installation guide](/install)
- [Explore the example](/examples/demo-stacks)
- [Initialization and repository settings](/cli/commands/init#examples-and-source-directories)

## Related Commands

- [atmos list components](/cli/commands/list/components) - List available components
- [atmos describe component](/cli/commands/describe/component) - Show detailed information about a component
