Skip to main content

atmos stack

The atmos stack commands read and edit component-relative values (e.g. vars.region) for a component in a stack. Because stack configuration is assembled by deep-merging many manifests, Atmos uses provenance to find the manifest file that actually defines the effective value, then edits that file in place — preserving comments, anchors/aliases, Atmos YAML functions, and Go templates.

atmos stack config get|set|delete|format|list is the canonical command set. The flat commands documented below (get, set, delete, format) are convenience aliases of the matching stack config subcommand. list has no flat form — a flat atmos stack list would collide with the existing atmos list stacks — so use atmos stack config list directly.

Usage

atmos stack get <path> -s <stack> -c <component>
atmos stack set <path> <value> -s <stack> -c <component> [--type <type>] [--file <manifest>]
atmos stack delete <path> -s <stack> -c <component> [--file <manifest>]
atmos stack format -s <stack> -c <component> [--file <manifest>]
atmos stack config list [path-pattern] -s <stack> -c <component> [--format <format>]
atmos stack schema [output-path]
atmos stack validate

Paths are component-relative (e.g. vars.region, settings.spacelift.workspace_enabled).

Subcommands

Examples

# Read a value and see which manifest defines it.
atmos stack get vars.region -s plat-ue2-prod -c vpc

# Set the value in the file that currently provides it.
atmos stack set vars.region us-west-2 -s plat-ue2-prod -c vpc

# Target a specific manifest explicitly (also used to create new keys).
atmos stack set vars.new_flag true --type=bool -s plat-ue2-prod -c vpc --file stacks/deploy/prod.yaml

# Format the manifest files that define a component.
atmos stack format -s plat-ue2-prod -c vpc

# List every editable path for a component (canonical form only, no flat alias).
atmos stack config list -s plat-ue2-prod -c vpc

# Print the stack-manifest JSON Schema.
atmos stack schema

How file resolution works

For set and delete, Atmos describes the component with provenance tracking and looks up the source file of the effective (post-merge) value. When a value is not defined anywhere, or is inherited from a base component under a different key, the command reports where the value resolves and asks you to pass --file to choose the manifest explicitly.