Atmos Root Configuration

SkillDev tools

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

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Atmos Root Configuration skill

What this skill tells your AI

The instructions your AI receives, as published by cloudposse/atmos in agent-skills/skills/atmos-config/SKILL.md and read by ahel’s review.

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:

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.

Modular Imports

Use import to split root config into focused files:

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

NeedLoad
Root discovery, merge order, imports, minimal bootstrapstay in atmos-config
Project paths, base_path, path conventions, relative path resolutionatmos-project-layout
Profiles, --profile, ATMOS_PROFILE, profile directory merge behavioratmos-profiles
Global CLI behavior, settings, logs, errors, env, docs, metadataatmos-settings
Stack manifests, inheritance, stack imports, vars, locals, stack namingatmos-stacks
Component structure, abstract components, metadata, component inheritanceatmos-components
Terraform/OpenTofu commands, backend defaults, Terraform component settingsatmos-terraform
Helmfile, Packer, or Ansible component behavioratmos-helmfile, atmos-packer, atmos-ansible
Workflows section and workflow syntaxatmos-workflows
Custom commands and aliasesatmos-custom-commands
Auth providers, identities, keyring, cloud auth conventionsatmos-auth
Stores and store-backed YAML functionsatmos-stores
Tool versions, dependencies.tools, registries, shell/PATH integrationatmos-toolchain
Native CI, GitHub Actions, Atlantis, matrices, CI outputsatmos-ci
Schemas and validation policy configurationatmos-schemas, atmos-validation
Templates and YAML functionsatmos-templates, atmos-yaml-functions
Vendoring external componentsatmos-vendoring
Introspection commands and querying resolved configatmos-introspection

For a compact map of top-level sections, read 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.

Signals

GitHub stars
1k
Forks
175
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
atmos-config
Source
github.com/cloudposse/atmos