# Atmos Profiles

> Atmos profiles: profile directories, --profile and ATMOS_PROFILE activation, profile merge behavior, environment switching, and routing profile-specific auth/toolchain/config overrides

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

---


# Atmos Profiles

Use this skill when configuring or troubleshooting Atmos profiles: named configuration overlays
selected with `--profile` or `ATMOS_PROFILE`.

## Purpose

Profiles let teams switch configuration contexts without changing the base project config. Use them
for developer, CI, tenant, cloud account, or environment-specific overrides.

```bash
atmos --profile developer terraform plan vpc -s dev
ATMOS_PROFILE=ci atmos terraform deploy vpc -s prod
```

Use `--profile` with no value in an interactive terminal to open a multi-select picker of every
discovered profile. Non-interactive contexts (CI, scripts) must pass `--profile=<name>` or
`ATMOS_PROFILE` explicitly.

## Profile Layout

Keep profile files focused and aligned with the sections they override:

```text
profiles/
  developer/
    atmos.yaml
    auth.yaml
  ci/
    atmos.yaml
    auth.yaml
```

Profile configuration is merged into the active Atmos configuration. Put shared defaults in the
base config, then keep each profile to the smallest override needed.

## Profile Config

Configure the profile search location in root config when the default location is not sufficient:

```yaml
profiles:
  base_path: profiles
```

Example `profiles/ci/auth.yaml` override:

```yaml
auth:
  providers:
    github-oidc:
      kind: github/oidc
      region: us-east-1
  identities:
    deploy:
      kind: aws/assume-role
      via:
        provider: github-oidc
```

## Routing

| Need | Load |
|---|---|
| Profile activation, directory layout, merge behavior | stay in `atmos-profiles` |
| Auth providers, identities, OIDC, SSO, keyring in profiles | `atmos-auth` |
| CI use of `ATMOS_PROFILE` | `atmos-ci` |
| Tool versions or registries that differ by profile | `atmos-toolchain` |
| Base paths and profile-relative file layout | `atmos-project-layout` |

## Guardrails

- Keep profile overrides small and predictable; avoid duplicating the whole base `atmos.yaml`.
- Use the same provider and identity names across profiles when callers should not care which
  profile is active.
- Prefer `ATMOS_PROFILE` in CI and `--profile` for one-off local commands.
- Verify the active merged configuration with `atmos describe config` or the relevant
  `atmos describe component` command.

