# atmos config

Your `atmos.yaml` configures how Atmos works in your project, including where to
find components and stacks and how to run your tools. Use `atmos config` to inspect
those settings, automate changes in setup scripts or CI, and validate your
configuration. Edits preserve comments, YAML anchors, Atmos YAML functions, and
Go templates.

## Usage

```shell
atmos config get <path>
atmos config set <path> <value> [--type <type>]
atmos config delete <path>
atmos config list [path-pattern] [--format <format>]
atmos config format
atmos config schema [output-path]
atmos config validate
```

By default these commands target the `atmos.yaml` (or `.atmos.yaml`) in the current
directory or git root. Use the global `--config` flag to target a specific file.

## Subcommands

- [`atmos config get`](/cli/commands/config/config-get) — read a value by path.
- [`atmos config set`](/cli/commands/config/config-set) — set a value by path.
- [`atmos config delete`](/cli/commands/config/config-delete) — delete a value by path.
- [`atmos config list`](/cli/commands/config/config-list) — list editable setting paths.
- [`atmos config format`](/cli/commands/config/config-format) — format the active `atmos.yaml` file.
- [`atmos config schema`](/cli/commands/config/config-schema) — print the JSON Schema for `atmos.yaml`.
- [`atmos config validate`](/cli/commands/config/config-validate) — validate `atmos.yaml` against its JSON Schema.

## Examples

```shell
# Read the configured log level.
atmos config get logs.level

# Set a string value.
atmos config set logs.level Debug

# Set a typed (boolean) value.
atmos config set --type=bool components.terraform.apply_auto_approve true

# Delete a value.
atmos config delete logs.file

# List every editable path.
atmos config list

# Format the active atmos.yaml file.
atmos config format

# Target a specific file.
atmos config set logs.level Trace --config ./atmos.yaml
```
