atmos list components
Use this command to list all components in your Atmos configuration, optionally filtering by stack. View components in multiple output formats including tables, JSON, YAML, and CSV.
Usage
Execute the list components command like this:
atmos list components
This command lists Atmos components in all stacks or in a specified stack:
atmos list components -s <stack>
Run atmos list components --help to see all the available options
Examples
atmos list components
atmos list components -s tenant1-ue2-dev
Filter by component type:
# List only real (non-abstract) components
atmos list components --type real
# List abstract components
atmos list components --type abstract
# List all components including abstract
atmos list components --type all
Filter by enabled/locked status:
# List only enabled components
atmos list components --enabled=true
# List only locked components
atmos list components --locked=true
Include abstract components:
# Include abstract components (normally hidden by default)
atmos list components --abstract
# Equivalent: show all component types
atmos list components --type all
Output in different formats:
# JSON format
atmos list components --format json
# YAML format
atmos list components --format yaml
# CSV format with custom delimiter
atmos list components --format csv
Custom columns:
# Simple field names (auto-generates templates)
atmos list components --columns component,stack,type
# Named columns with custom templates
atmos list components --columns "Name={{ .component }},Stack={{ .stack }}"
# Named columns with simple field reference
atmos list components --columns "MyStack=stack,MyType=type"
# Mix of formats
atmos list components --columns component,"Status={{ if .enabled }}Active{{ else }}Disabled{{ end }}"
Sort results:
# Sort by component name ascending
atmos list components --sort component:asc
# Sort by multiple columns
atmos list components --sort "stack:asc,component:desc"
Flags
--stack/-s- Filter by stack name pattern (supports glob patterns like
plat-*-prod).
Environment variable:ATMOS_STACK --format/-f- Output format:
table,json,yaml,csv,tsv,tree. Overridescomponents.list.formatconfiguration in atmos.yaml (default:table).
Environment variable:ATMOS_LIST_FORMAT --columns- Columns to display. Supports simple field names (e.g.,
component,stack,type), named columns with templates (e.g.,"Name={{ .component }}"), or named with field reference (e.g.,"MyStack=stack"). Overridescomponents.list.columnsconfiguration in atmos.yaml. Environment variable:ATMOS_LIST_COLUMNS --type/-t- Component type:
real,abstract,all(default:real).
Environment variable:ATMOS_COMPONENT_TYPE --abstract- Include abstract components in output. Equivalent to
--type all.
Environment variable:ATMOS_ABSTRACT --enabled- Filter by enabled status (omit for all,
--enabled=truefor enabled only,--enabled=falsefor disabled only).
Environment variable:ATMOS_COMPONENT_ENABLED --locked- Filter by locked status (omit for all,
--locked=truefor locked only,--locked=falsefor unlocked only).
Environment variable:ATMOS_COMPONENT_LOCKED --sort- Sort by column:order (e.g.,
component:asc,stack:desc). Multiple sort columns separated by comma.
Environment variable:ATMOS_LIST_SORT --identity/-i(optional)- Authenticate with a specific identity before listing components.
This is required when stack configurations use YAML template functions
(e.g.,!terraform.state,!terraform.output) that require authentication.atmos list components --identity my-aws-identity
Environment variable:ATMOS_IDENTITY
Configuration
You can customize the default output format and columns displayed by atmos list components in your atmos.yaml:
Default Format
# atmos.yaml
components:
list:
format: yaml # Default format: table, json, yaml, csv, tsv
Precedence: CLI --format flag > Config file > Environment variable ATMOS_LIST_FORMAT > Default (table)
Custom Columns
# atmos.yaml
components:
list:
format: table
columns:
- name: Component
value: "{{ .atmos_component }}"
- name: Stack
value: "{{ .atmos_stack }}"
- name: Type
value: "{{ .atmos_component_type }}"
- name: Enabled
value: "{{ .enabled }}"
- name: Description
value: "{{ .metadata.description }}"
Available Template Fields
Column value fields support Go template syntax with access to:
.atmos_component- Atmos component name.atmos_stack- Stack name.atmos_component_type- Component type (terraform,helmfile, etc.).component- Terraform/Helmfile component path.vars- All component variables (e.g.,.vars.region,.vars.tenant).settings- Component settings.metadata- Component metadata (e.g.,.metadata.description,.metadata.component).env- Environment variables.enabled- Whether component is enabled (boolean).locked- Whether component is locked (boolean).abstract- Whether component is abstract (boolean)
Template Functions
Columns support template functions for data transformation:
components:
list:
columns:
- name: Component (Upper)
value: "{{ .atmos_component | upper }}"
- name: Region
value: "{{ .vars.region | default \"N/A\" }}"
- name: Status
value: "{{ if .enabled }}Enabled{{ else }}Disabled{{ end }}"
- name: Short Description
value: "{{ .metadata.description | truncate 50 }}"
Available functions:
upper,lower- String case conversiontruncate- Truncate string with ellipsislen- Length of arrays/stringsdefault- Provide default value if emptytoString- Convert value to stringternary- Conditional expression
Override Columns via CLI
Override configured columns using the --columns flag. The flag supports multiple formats:
Simple field names (auto-generates templates and title-case names):
# Display component, stack, and type columns
atmos list components --columns component,stack,type
# Include enabled status
atmos list components --columns component,stack,enabled
Named columns with templates (full control over display name and value):
# Custom column names with templates
atmos list components --columns "Name={{ .component }},Stack={{ .stack }}"
# Complex templates with conditionals
atmos list components --columns "Status={{ if .enabled }}Active{{ else }}Disabled{{ end }}"
Named columns with field reference (auto-wraps field in template):
# Shorthand: Name=field becomes Name={{ .field }}
atmos list components --columns "MyComponent=component,MyStack=stack"
Mixed formats:
# Combine simple fields and named columns
atmos list components --columns component,"CustomType={{ .type | upper }}"
Related Commands
atmos list instances- List all component instances across stacksatmos list stacks- List all stacksatmos describe component- Get detailed component configuration