# Atmos Config

> Atmos root configuration: atmos.yaml discovery, precedence, deep merging, base_path, imports, minimal bootstrap, and routing to narrower Atmos skills

- Skill: `cloudposse/atmos-config` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add cloudposse/atmos-config`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cloudposse/atmos-config/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: cloudposse (https://skillmd.com/u/cloudposse)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cloudposse/atmos-config

---


# Atmos Root Configuration

Use this skill for the root mechanics of `atmos.yaml`: how Atmos finds config files, merges them,
resolves project-relative paths, imports modular config, and routes section-specific work to the
right skill. Do not use this skill as a catchall for every `atmos.yaml` section.

## Configuration Discovery

Atmos searches for `atmos.yaml` in this order:

1. `--config` CLI flag or `ATMOS_CLI_CONFIG_PATH`.
2. Active profile selected by `--profile` or `ATMOS_PROFILE`.
3. Current working directory.
4. Git repository root.
5. Parent directory walk.
6. Home directory.
7. System directory.

When multiple configuration files apply, Atmos deep-merges them. More specific sources override
broader defaults.

## Root Layout

Use `base_path` for the project root that relative paths resolve from. Keep the root config small
and point subsystem paths at their owning directories:

```yaml
base_path: ""

stacks:
  base_path: stacks
  included_paths:
    - "**/*"
  excluded_paths:
    - "**/_defaults.yaml"
    - "catalog/**/*"
  name_template: "{{ .vars.stage }}"

components:
  terraform:
    base_path: components/terraform

workflows:
  base_path: stacks/workflows
```

For deeper path/layout guidance, load [atmos-project-layout](../atmos-project-layout/SKILL.md).

## Modular Imports

Use `import` to split root config into focused files:

```yaml
import:
  - atmos.d/stacks.yaml
  - atmos.d/components.yaml
  - atmos.d/auth.yaml
  - atmos.d/toolchain.yaml
```

Imported files are deep-merged into the active configuration. Keep imported files aligned with the
subsystem they configure and load the subsystem skill before changing that section.

## Routing

| Need | Load |
|---|---|
| Root discovery, merge order, imports, minimal bootstrap | stay in `atmos-config` |
| Project paths, `base_path`, path conventions, relative path resolution | `atmos-project-layout` |
| Profiles, `--profile`, `ATMOS_PROFILE`, profile directory merge behavior | `atmos-profiles` |
| Global CLI behavior, `settings`, `logs`, `errors`, `env`, `docs`, `metadata` | `atmos-settings` |
| Stack manifests, inheritance, stack imports, vars, locals, stack naming | `atmos-stacks` |
| Component structure, abstract components, metadata, component inheritance | `atmos-components` |
| Terraform/OpenTofu commands, backend defaults, Terraform component settings | `atmos-terraform` |
| Helmfile, Packer, or Ansible component behavior | `atmos-helmfile`, `atmos-packer`, `atmos-ansible` |
| Workflows section and workflow syntax | `atmos-workflows` |
| Custom commands and aliases | `atmos-custom-commands` |
| Auth providers, identities, keyring, cloud auth conventions | `atmos-auth` |
| Stores and store-backed YAML functions | `atmos-stores` |
| Tool versions, `dependencies.tools`, registries, shell/PATH integration | `atmos-toolchain` |
| Native CI, GitHub Actions, Atlantis, matrices, CI outputs | `atmos-ci` |
| Schemas and validation policy configuration | `atmos-schemas`, `atmos-validation` |
| Templates and YAML functions | `atmos-templates`, `atmos-yaml-functions` |
| Vendoring external components | `atmos-vendoring` |
| Introspection commands and querying resolved config | `atmos-introspection` |

For a compact map of top-level sections, read [references/sections-reference.md](references/sections-reference.md).

## Guardrails

- Keep `atmos-config` examples minimal; detailed subsystem examples belong in their narrower skills.
- Before editing a subsystem section, load the owning skill from the routing table.
- Prefer `atmos describe config` or `atmos describe component` when verifying merge or path behavior.

