# 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"
    ]
  }
}
```

## 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
