Terraform and OpenTofu Guide
agentscope-ai/QwenPaw
Guidance for writing and testing Terraform and OpenTofu code: module structure, naming, test approaches, CI/CD workflows, state handling and security scanning.
Component architecture: Terraform root modules, remote source provisioning, abstract components, component inheritance, versioning, mixins, catalog patterns
$ npx skills add cloudposse/atmos --skill atmos-components -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cloudposse/atmos atmos-components --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agent-skills/skills/atmos-components .claude/skills/atmos-components && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "atmos-components" agent skill from https://github.com/cloudposse/atmos/tree/main/agent-skills/skills/atmos-components into .claude/skills/atmos-components/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "atmos-components", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/cloudposse/atmos/tree/main/agent-skills/skills/atmos-componentsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add cloudposse/atmos --skill atmos-components -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cloudposse/atmos atmos-components --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .agents/skills && cp -r skills-src/agent-skills/skills/atmos-components .agents/skills/atmos-components && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "atmos-components" agent skill from https://github.com/cloudposse/atmos/tree/main/agent-skills/skills/atmos-components into .agents/skills/atmos-components/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "atmos-components", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cloudposse/atmos --skill atmos-components -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cloudposse/atmos atmos-components --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/agent-skills/skills/atmos-components .cursor/skills/atmos-components && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "atmos-components" agent skill from https://github.com/cloudposse/atmos/tree/main/agent-skills/skills/atmos-components into .cursor/skills/atmos-components/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "atmos-components", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/cloudposse/atmos.git --path agent-skills/skills/atmos-components--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add cloudposse/atmos --skill atmos-components -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cloudposse/atmos atmos-components --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/agent-skills/skills/atmos-components .gemini/skills/atmos-components && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "atmos-components" agent skill from https://github.com/cloudposse/atmos/tree/main/agent-skills/skills/atmos-components into .gemini/skills/atmos-components/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "atmos-components", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install cloudposse/atmos atmos-componentsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add cloudposse/atmos --skill atmos-components -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .github/skills && cp -r skills-src/agent-skills/skills/atmos-components .github/skills/atmos-components && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "atmos-components" agent skill from https://github.com/cloudposse/atmos/tree/main/agent-skills/skills/atmos-components into .github/skills/atmos-components/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "atmos-components", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cloudposse/atmos --skill atmos-components -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cloudposse/atmos atmos-components --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/agent-skills/skills/atmos-components .opencode/skills/atmos-components && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "atmos-components" agent skill from https://github.com/cloudposse/atmos/tree/main/agent-skills/skills/atmos-components into .opencode/skills/atmos-components/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "atmos-components", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
atmos-componentsComponent architecture: Terraform root modules, remote source provisioning, abstract components, component inheritance, versioning, mixins, catalog patterns
Atmos Components is an agent skill from cloudposse/atmos. Component architecture: Terraform root modules, remote source provisioning, abstract components, component inheritance, versioning, mixins, catalog patterns
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/component-types.md` and `references/examples.md`).
It sits in DevOps & Cloud, covering Infrastructure as code. It works with Terraform. The repository describes itself as: Atmos is the open-source runtime for infrastructure — it builds, authenticates, and ships Terraform, OpenTofu, Packer, Ansible, Kubernetes, Helm, and containers the same way on… The licence is Apache-2.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit bbe58a6. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
terraformFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Atmos Components loads about 3.7k tokens when it runs, and up to ~7.7k if it reads all its reference files. Until then it costs about 43 tokens; SKILL.md has 1,089 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from cloudposse/atmos at commit bbe58a6, republished under its Apache-2.0 licence (© cloudposse). 1,089 words, ~3,670 tokens.
.claude/skills/atmos-components/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Components are the building blocks of infrastructure in Atmos. Each component is an opinionated, reusable unit of infrastructure-as-code -- typically a Terraform root module -- that solves a specific problem. Atmos separates the component implementation (code) from its configuration (stack manifests), enabling one implementation to be deployed many times with different settings.
In Atmos, a component consists of two parts:
components/ directory.components section.This separation is fundamental: you write the Terraform module once, then configure it differently for each environment, region, and account through stack YAML files.
Atmos natively supports three component types:
| Type | Implementation Location | Purpose |
|---|---|---|
| Terraform / OpenTofu | components/terraform/<name>/ | Provision cloud infrastructure resources |
| Helmfile | components/helmfile/<name>/ | Deploy Helm charts to Kubernetes clusters |
| Packer | components/packer/<name>/ | Build machine images (AMIs, VM images) |
Terraform is by far the most common type. Custom commands can extend Atmos to support any tooling.
Components are stored in your project's components/ directory, organized by type:
components/
terraform/
vpc/
main.tf
variables.tf
outputs.tf
versions.tf
eks/
cluster/
main.tf
variables.tf
outputs.tf
s3-bucket/
main.tf
variables.tf
outputs.tf
iam-role/
main.tf
variables.tf
outputs.tf
helmfile/
nginx-ingress/
helmfile.yaml
cert-manager/
helmfile.yaml
packer/
ubuntu-base/
template.pkr.hclThe base path for Terraform components is configured in atmos.yaml:
components:
terraform:
base_path: "components/terraform"Nested directories are supported. A component at components/terraform/eks/cluster/ is referenced as eks/cluster in stack configurations.
Components are configured in the components section of stack manifests:
components:
terraform:
vpc:
metadata:
component: vpc # Points to components/terraform/vpc/
vars:
cidr_block: "10.0.0.0/16"
availability_zones:
- us-east-1a
- us-east-1b
settings:
validation:
check-cidr:
schema_type: jsonschema
schema_path: schemas/vpc.json
eks-cluster:
metadata:
component: eks/cluster # Points to components/terraform/eks/cluster/
vars:
cluster_name: prod-eks
kubernetes_version: "1.28"Each component configuration can include these sections:
| Section | Purpose |
|---|---|
metadata | Component location, inheritance, type, and Atmos behavior |
vars | Input variables passed to Terraform/Helmfile/Packer |
env | Environment variables set during execution |
settings | Integration metadata such as Atlantis, validation, and custom settings |
dependencies | Component, file, folder, and tool dependencies |
hooks | Lifecycle event handlers |
backend / backend_type | Terraform state backend configuration |
providers | Terraform provider configuration |
command | Override the executable (e.g., tofu instead of terraform) |
auth | Authentication identity reference |
Use dependencies.components for component ordering and affected/dependent analysis:
components:
terraform:
app:
dependencies:
components:
- component: vpc
- component: database
stack: plat-ue2-prod
- kind: file
path: configs/app.yaml
- kind: folder
path: src/lambdaUse dependencies.tools for runtime CLIs at global, component-type, or per-component scope; Atmos auto-installs and injects them, so do not add a separate install step.
Do not add new settings.depends_on examples. If a repository already uses that legacy field,
recommend migrating it to dependencies.components.
Components can declare source in stack config for just-in-time provisioning from Git, OCI, S3,
HTTP, or local paths. Treat source provisioning as part of component configuration: it controls
how the component implementation is fetched, while vars, env, backend, and other sections
control how that implementation is run.
Use component source provisioning when different stacks need different remote component versions,
or when the repository should not commit the fetched implementation. When source provisioning is
used, prefer provision.workdir.enabled: true so each component-stack instance gets an isolated
execution directory.
components:
terraform:
vpc:
source: "github.com/cloudposse-terraform-components/aws-vpc.git?ref=1.450.0"
provision:
workdir:
enabled: trueAtmos provisions sources automatically before Terraform commands when needed. Use explicit source commands when an agent needs to inspect, refresh, or clean the fetched implementation:
atmos terraform source pull vpc --stack dev
atmos terraform source describe vpc --stack dev
atmos terraform source list --stack dev
atmos terraform source delete vpc --stack dev
atmos list sourcesFor protected sources, route identity and provider details to atmos-auth. For checked-in copies
of remote components, route to atmos-vendoring; vendoring and source provisioning are alternatives
for obtaining component implementation code.
Mark a component as metadata.type: abstract to create a blueprint that cannot be deployed directly:
components:
terraform:
vpc/defaults:
metadata:
type: abstract
component: vpc
vars:
enabled: true
nat_gateway_enabled: true
max_subnet_count: 3
vpc_flow_logs_enabled: trueAbstract components:
atmos terraform apply (Atmos returns an error).atmos describe stacks output by default.If metadata.type is not specified, the component is real and can be deployed:
components:
terraform:
vpc:
metadata:
inherits:
- vpc/defaults
vars:
vpc_cidr: "10.0.0.0/16"Use metadata.inherits to inherit configuration from a base component:
components:
terraform:
vpc/defaults:
metadata:
type: abstract
component: vpc
vars:
enabled: true
nat_gateway_enabled: true
vpc:
metadata:
inherits:
- vpc/defaults
vars:
nat_gateway_enabled: false # Override inherited valueThe derived component receives all vars, env, settings, hooks, backend, providers, and command from the base, then its own values are deep-merged on top.
A component can inherit from multiple bases. Entries are processed in order with later entries having higher precedence:
components:
terraform:
rds:
metadata:
component: rds
inherits:
- base/defaults # Applied first
- base/logging # Applied second
- base/production # Applied last (highest base precedence)
vars:
name: my-database # Inline has highest precedenceThis enables composing "traits" -- reusable abstract components that represent independent configuration concerns (logging, security, sizing, environment settings).
The metadata.component field maps an Atmos component name to its Terraform root module directory:
components:
terraform:
vpc-main:
metadata:
component: vpc # Uses components/terraform/vpc/
vars:
name: main-vpc
vpc-isolated:
metadata:
component: vpc # Same Terraform module
vars:
name: isolated-vpc
enable_internet_gateway: falseBoth components use the same Terraform code but maintain separate state files and configurations. This is the multiple component instances pattern.
Deploy the same Terraform module multiple times in the same stack by giving each instance a unique Atmos component name:
components:
terraform:
vpc/1:
metadata:
component: vpc
inherits:
- vpc/defaults
vars:
name: vpc-1
ipv4_primary_cidr_block: 10.9.0.0/18
vpc/2:
metadata:
component: vpc
inherits:
- vpc/defaults
vars:
name: vpc-2
ipv4_primary_cidr_block: 10.10.0.0/18Each instance has its own Terraform state and is independently deployable:
atmos terraform apply vpc/1 -s plat-ue2-prod
atmos terraform apply vpc/2 -s plat-ue2-prodAll fields available in the metadata section:
| Field | Type | Description |
|---|---|---|
component | string | Path to Terraform root module relative to components base path |
inherits | list | List of component names to inherit configuration from |
type | string | abstract (non-deployable) or real (default, deployable) |
name | string | Stable logical identity for workspace key prefix |
enabled | boolean | Enable or disable the component (default: true) |
locked | boolean | Prevent modifications to the component |
terraform_workspace | string | Explicit workspace name override |
terraform_workspace_pattern | string | Workspace name pattern with tokens |
custom | map | User-defined metadata (preserved, not interpreted by Atmos) |
The stacks/catalog/ directory is the conventional location for reusable component configurations:
stacks/
catalog/
vpc/
_defaults.yaml # Abstract base for all VPC instances
eks/
_defaults.yaml
cluster.yaml
s3-bucket/
_defaults.yaml
iam-role/
_defaults.yamlCatalog files define abstract components with sensible defaults. Top-level stacks import from the catalog and override only what differs:
# stacks/catalog/vpc/_defaults.yaml
components:
terraform:
vpc/defaults:
metadata:
type: abstract
component: vpc
vars:
enabled: true
nat_gateway_enabled: true
max_subnet_count: 3# stacks/orgs/acme/plat/prod/us-east-1.yaml
import:
- catalog/vpc/_defaults
components:
terraform:
vpc:
metadata:
inherits:
- vpc/defaults
vars:
vpc_cidr: "10.0.0.0/16"Mixins are small, focused configuration snippets that alter component behavior. They are typically stored in stacks/mixins/ and imported into stacks:
stacks/
mixins/
region/
us-east-1.yaml
us-east-2.yaml
us-west-2.yaml
stage/
dev.yaml
staging.yaml
prod.yaml
tenant/
plat.yaml# stacks/mixins/region/us-east-2.yaml
vars:
region: us-east-2
environment: ue2# stacks/orgs/acme/plat/prod/us-east-2.yaml
import:
- mixins/region/us-east-2
- mixins/stage/prod
- catalog/vpc/_defaultsComponents can access outputs from other components using the remote-state module or YAML functions:
# Using YAML functions (state access is the fastest option)
components:
terraform:
eks-cluster:
vars:
vpc_id: !terraform.state vpc vpc_id
subnet_ids: !terraform.state vpc private_subnet_idsFor a cold terraform plan --all, upstream state may not exist yet even though component
dependencies establish deployment order. Put a provider-valid fallback in the YQ expression; the
real state value supersedes it after the upstream component deploys:
components:
terraform:
eks-cluster:
vars:
vpc_id: !terraform.state vpc '.vpc_id // "vpc-mock"'For the Terraform-side approach, use the remote-state module:
# In components/terraform/eks/cluster/remote-state.tf
module "vpc" {
source = "cloudposse/stack-config/yaml//modules/remote-state"
version = "1.5.0"
component = "vpc"
}This reads the VPC component's Terraform outputs from the same or a different stack.
abstract components and inherit from them.metadata.component to share the implementation.metadata.name to maintain stable Terraform workspace key prefixes across version upgrades.atmos describe component: Always verify the resolved configuration before applying changes.atmos describe component vpc -s plat-ue2-prod© cloudposse, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in agent-skills/skills/atmos-components of cloudposse/atmos.
Open the folder on GitHubat commit bbe58a6
Atmos Components next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Atmos Components this skillcloudposse/atmos | 1.4k | — | ~3.7k | Automated safety check: Pass | Apache-2.0 | |
| Terraform and OpenTofu Guideagentscope-ai/QwenPaw | 35k | 6 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Terraform Skillantonbabenko/terraform-skill | 2.4k | 1 repos | ~5.1k | Automated safety check: Pass | Apache-2.0 | |
| Senior DevOps Toolkitmaslennikov-ig/claude-code-orchestrator-kit | 259 | 6 repos | ~1.1k | Automated safety check: Notes | Custom licence | |
| Cloudflarehodgef/apiker | 127 | 7 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Terravision Cloud Diagramspatrickchugh/terravision | 1.6k | — | ~5.6k | Automated safety check: Notes | AGPL-3.0-only |
agentscope-ai/QwenPaw
Guidance for writing and testing Terraform and OpenTofu code: module structure, naming, test approaches, CI/CD workflows, state handling and security scanning.
antonbabenko/terraform-skill
A skill your agent uses when writing, reviewing, or debugging Terraform/OpenTofu modules, tests, CI, scans, or state ops - diagnoses failure mode (identity churn, secrets, blast radius, CI drift…
maslennikov-ig/claude-code-orchestrator-kit
Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…
hodgef/apiker
Comprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), feature flags (Flagship), networking (Tunnel, Spectrum), security (WAF…
patrickchugh/terravision
Draw cloud architecture diagrams for AWS, Azure or GCP with the official provider icon sets, using TerraVision.
dmmulroy/cloudflare-skill
Comprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), networking (Tunnel, Spectrum), security (WAF, DDoS), and…
cloudposse/atmos
A skill your agent uses when implementing, finishing, documenting, or reviewing a fix, repair, remediation, bug fix, debug-and-fix task, workflow fix, infrastructure fix, or any change that should…
cloudposse/atmos
Atmos Terraform linting with TFLint: standalone atmos terraform lint, component-aware config discovery and toolchain versions, TFLint rule configuration, and lifecycle hooks/CI findings.
cloudposse/atmos
Blog post authoring for Atmos: MDX template, frontmatter, website/blog/tags.yml and authors.yml rules, problem-first framing, backtick-opening ban, optional cast embeds, and no-Go-internals leakage.
cloudposse/atmos
Decide whether a PR's new or changed default needs edition-journal handling (pkg/edition, docs/prd/editions.md), and do the mechanical work if so: journal entries, the four-layer default check…
cloudposse/atmos
Migrate to Atmos from native Terraform, Terraform Workspaces, Terramate, Terragrunt, Make, Just, or Task; migrate tool versions from mise or Aqua CLI; migrate AWS/GCP/Azure CLI configs, Leapp…
cloudposse/atmos
Start an hourly background loop that keeps the current branch's PR rebased, its addressed CodeRabbit threads resolved, its CI checks passing, its lint clean, its tests passing with adequate patch…
Works with
Categories
Component architecture: Terraform root modules, remote source provisioning, abstract components, component inheritance, versioning, mixins, catalog patterns. Atmos Components is an agent skill from cloudposse/atmos.
Atmos Components fits situations like: tasks that involve Infrastructure as code.
Run `npx skills add cloudposse/atmos --skill atmos-components -a claude-code`. Or copy the skill folder (agent-skills/skills/atmos-components in cloudposse/atmos) into .claude/skills/atmos-components in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cloudposse/atmos --skill atmos-components -a codex`. Or copy the skill folder (agent-skills/skills/atmos-components in cloudposse/atmos) into .agents/skills/atmos-components in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cloudposse/atmos --skill atmos-components -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/atmos-components, .gemini/skills/atmos-components, .github/skills/atmos-components and .opencode/skills/atmos-components in your project.
Going by SKILL.md and its folder, Atmos Components needs the command-line tools its instructions call (terraform).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Atmos Components is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Atmos Components: Terraform and OpenTofu Guide (agentscope-ai/QwenPaw, 35k stars), Terraform Skill (antonbabenko/terraform-skill, 2.4k stars), Senior DevOps Toolkit (maslennikov-ig/claude-code-orchestrator-kit, 259 stars) and Cloudflare (hodgef/apiker, 127 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cloudposse (a GitHub organization) maintains it in cloudposse/atmos, which has 1,395 GitHub stars. The repository holds 70 skills in this directory. The repository was last updated on October 7, 2026.
Source: cloudposse/atmos on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.