# atmos describe stacks

Use this command to show the fully deep-merged configuration for all stacks and the components in the stacks.

## Usage

Execute the `describe stacks` command like this:

```shell
atmos describe stacks [options]
```

This command shows configuration for stacks and components in the stacks.

:::info YAML Functions and Authentication
By default, `atmos describe stacks` executes YAML template functions (e.g., `!terraform.state`, `!terraform.output`) and Go templates during stack processing. When these functions access remote resources requiring authentication, use the `--identity` flag to authenticate before execution. You can disable function/template processing with `--process-functions=false` or `--process-templates=false` flags.
:::

:::tip
Run `atmos describe stacks --help` to see all the available options
:::

## Examples

```shell
atmos describe stacks
atmos describe stacks -s tenant1-ue2-dev
atmos describe stacks --file=stacks.yaml
atmos describe stacks --file=stacks.json --format=json
atmos describe stacks --components=infra/vpc
atmos describe stacks --components=echo-server,infra/vpc
atmos describe stacks --components=echo-server,infra/vpc --sections=none
atmos describe stacks --components=echo-server,infra/vpc --sections=none
atmos describe stacks --components=none --sections=metadata
atmos describe stacks --components=echo-server,infra/vpc --sections=vars,settings,metadata
atmos describe stacks --components=test/test-component-override-3 --sections=vars,settings,component,deps,inheritance --file=stacks.yaml
atmos describe stacks --components=test/test-component-override-3 --sections=vars,settings --format=json --file=stacks.json
atmos describe stacks --components=test/test-component-override-3 --sections=deps,vars -s=tenant2-ue2-staging
atmos describe stacks --process-templates=false
atmos describe stacks --process-functions=false
atmos describe stacks --skip=terraform.output
atmos describe stacks --skip=terraform.output --skip=include
atmos describe stacks --skip=include,eval
atmos describe stacks --query <yq-expression>
# Authenticate before describing (when YAML functions require credentials)
atmos describe stacks --identity my-aws-identity
atmos describe stacks --identity # Interactive selection
# Disable authentication (use AWS SDK defaults)
atmos describe stacks --identity=false
atmos describe stacks -i my-aws-identity -s tenant1-ue2-dev
```

:::tip
Use the `--query` flag (shorthand `-q`) to filter the output.
:::

## Flags

- **`--stack` / `-s` (optional)**
  Filter by a specific stack.
  Supports names of the top-level stack manifests
  (including subfolder paths),
  and Atmos stack names (derived from the context vars).
- **`--file` (optional)**
  If specified, write the result to the file.
- **`--format` (optional)**
  Specify the output format: 
  `yaml`
   or 
  `json`
   (
  `yaml`
   is default).
- **`--components` (optional)**
  Filter by specific Atmos components
  (comma-separated string of component names).
- **`--component-types` (optional)**
  Filter by specific component types: 
  `terraform`
   or 
  `helmfile`
  .
- **`--sections` (optional)**
  Output only the specified component sections.
  Available component sections: 
  `backend`
  , 
  `backend_type`
  , 
  `component`
  , 
  `deps`
  ,
  `env`
  , 
  `inheritance`
  , 
  `metadata`
  , 
  `remote_state_backend`
  ,
  `remote_state_backend_type`
  , 
  `settings`
  , 
  `vars`
  .
- **`--process-templates` (optional)**
  Enable/disable processing of all 
  `Go`
   templates
  in Atmos stacks manifests when executing the command.
  Use the flag to see the stack configurations
  before and after the templates are processed.
  If the flag is not provided, it's set to 
  `true`
   by default.
  `atmos describe stacks --process-templates=false`
  .
- **`--process-functions` (optional)**
  Enable/disable processing of all Atmos YAML functions
  in Atmos stacks manifests when executing the command.
  Use the flag to see the stack configurations
  before and after the functions are processed.
  If the flag is not provided, it's set to 
  `true`
   by default.
  `atmos describe stacks --process-functions=false`
  .
- **`--skip` (optional)**
  Skip processing a specific Atmos YAML function
  in Atmos stacks manifests when executing the command.
  To specify more than one function,
  use multiple 
  `--skip`
   flags, or separate the functions with a comma:
  `atmos describe stacks --skip=terraform.output --skip=include`
  `atmos describe stacks --skip=terraform.output,include`
  .
- **`--query` / `-q` (optional)**
  Query the results of the command using 
  `yq`
   expressions.
  `atmos describe stacks --query <yq-expression>`
  .
  For more details, refer to https://mikefarah.gitbook.io/yq.
- **`--identity` / `-i` (optional)**
  Authenticate with a specific identity before describing stacks.
  This is required when YAML template functions (e.g., 
  `!terraform.state`
  , 
  `!terraform.output`
  )
  need to access remote resources requiring authentication.
  Use without a value for interactive identity selection:
  `atmos describe stacks --identity`
   (interactive)
  `atmos describe stacks --identity my-aws-identity`
   (specific identity)
  For more details, refer to 
  [Authentication](/cli/commands/auth/usage)
  .

:::note Provenance Tracking
To see provenance information (where configuration values originated with file:line:column details), use `atmos describe component <component> -s <stack> --provenance` for individual components. The `describe stacks` command does not currently support provenance display.
:::
