atmos ai skill
Use this command to manage community and custom AI skills. Install skills from GitHub repositories, list installed skills, and remove skills you no longer need.
Declare skill sources, select clients, and pin revisions in your Atmos configuration.
See also: Agent Skills Directory to browse every skill |
AI Skills Configuration for configuring skills in atmos.yaml
Description
Skills are specialized AI assistants that provide expert knowledge for specific domains. They follow the Agent Skills open standard and can be installed from GitHub repositories.
The atmos ai skill command lets you:
- Install official skills by name (offline) or community skills from GitHub
- List the full catalog of available skills alongside what's installed
- Update installed skills from bundled content, local sources, or Git repositories
- Reconcile declared sources with exact revision locks and owned client copies
- Remove skills you no longer need
--skill FlagYou can use installed skills with any Atmos command via the global --skill flag (requires --ai).
The skill's system prompt is sent to the AI provider for domain-specific analysis.
atmos terraform plan vpc -s ue1-prod --ai --skill atmos-terraform
See Global Flags for details.
What Are Agent Skills?
Atmos ships 57 official agent skills that give AI coding assistants deep, accurate knowledge of Atmos
conventions, stack configuration, Terraform orchestration, authentication, validation, and more -- browse them all in
the Agent Skills Directory. They live in the agent-skills/ folder at the root of the Atmos repository
and work across Claude Code, Gemini CLI, OpenAI Codex, Cursor, Windsurf, GitHub Copilot, and more.
Each official skill is a self-contained package with:
- SKILL.md -- The primary instruction file (under 500 lines) with YAML frontmatter metadata
- references/ -- Deeper reference files that the AI loads only when the task requires them
Skills use a three-tier progressive disclosure pattern so AI context windows stay focused:
- Router (
AGENTS.md) -- A lightweight index that maps user tasks to the right skill - Skill (
SKILL.md) -- Domain-specific instructions, patterns, and examples - References (
references/*.md) -- Detailed specifications, schemas, and command references
The AI loads the router first, identifies which skill applies, loads that skill, and only pulls in reference files when deep detail is needed. You do not invoke skills manually -- your AI tool activates the right skill automatically based on your question. For step-by-step client setup, see Configure AI Assistants.
Official SKILL.md Format
name- Unique identifier for the skill (must match the directory name).
description- Human-readable summary of what the skill teaches.
metadata.category- Groups the skill in the Agent Skills Directory (e.g.
orchestrators,security,ci-automation). references- Optional list of deeper reference files the AI should load when more detail is needed.
Skills build on two open standards: AGENTS.md for project-level AI instructions, and
Agent Skills (SKILL.md) for packaging AI capabilities with instructions,
references, and assets.
Contributing an Official Skill
Official skills are maintained in the Atmos repository under agent-skills/. To contribute one:
- Follow the existing folder structure:
agent-skills/skills/<skill-name>/SKILL.md - Keep the primary
SKILL.mdunder 500 lines for optimal context usage - Place detailed reference material in
references/subdirectories - Update
AGENTS.mdto include your skill in the routing table - Use YAML frontmatter with
name,description,metadata(containingcopyright,version, andcategory), and optionallyreferencesfields
New skills appear automatically in the Agent Skills Directory -- no separate doc update needed. See the Atmos Contributing Guide for general contribution guidelines.
Usage
atmos ai skill <subcommand> [flags]
Subcommands
atmos ai skill install
Install a skill by its bundled name (offline), from a local or Git source, or from a declared source label.
The official Atmos skills are embedded in the binary, so installing one by its bare name (for example atmos-terraform) works fully offline — no network or Git clone required. Run atmos ai skill list to see every available skill. You can also install any skill from a GitHub repository. Omit <source> entirely to install every bundled skill at once.
Atmos keeps a canonical copy in .atmos/skills/content/<name> and distributes additional copies into detected clients' directories (.github/skills/ for VS Code/Copilot, .claude/skills/ for Claude Code, .gemini/skills/ for Gemini). Declared client selections take precedence over detection; --client/--all-clients override the selection for this invocation. --path adds a manual destination alongside the canonical copy and skips client distribution.
Use --scope user (or --global) for user-level canonical and client copies (~/.atmos/skills/content/, ~/.claude/skills/, ~/.copilot/skills/, ~/.gemini/skills/). A declaration's configured scope is used unless overridden. Without an explicit or declared scope, an interactive install prompts for project or user scope; --yes, a non-TTY session, or CI skips the scope picker and defaults to project. Installation still requires confirmation: pass --yes in non-interactive runs. --force permits replacing modified owned files and does not skip confirmation.
An unowned destination or symbolic link causes reconciliation to fail without overwriting that destination. --force does not claim ownership or write through links.
Usage:
atmos ai skill install [source] [flags]
Flags:
--force- Replace modified owned copies. Does not overwrite unowned destinations or skip confirmation.
-y, --yes- Skip the confirmation prompt.
--path- Add a manual install directory while retaining the canonical Atmos copy. Relative paths resolve against the current working directory. With this flag,
--scope,--global,--client, and--all-clientsare ignored and are not saved for later updates. A new ad-hoc installation uses project scope; a declared source retains its configured scope. -c, --client- AI client to distribute the skill to (repeatable):
claude-code,vscode,gemini. Defaults to auto-detected clients. --all-clients- Distribute the skill to every supported AI client.
--scope- Override the declaration's scope with
projectoruser. Wins over--global. Without an explicit or declared scope, an interactive invocation prompts; otherwise the default isproject. Also supported throughATMOS_AI_SKILL_SCOPE. -g, --global- Alias for
--scope user.
Install also accepts the source and reconciliation flags.
Examples:
# Install an official skill by name (offline)
atmos ai skill install atmos-terraform
# Install every bundled skill at once (offline)
atmos ai skill install
# Install a skill from GitHub
atmos ai skill install github.com/user/skill-name
# Install a specific version
atmos ai skill install github.com/user/skill-name@v1.2.3
# Force reinstall
atmos ai skill install github.com/user/skill-name --force
# Install without confirmation
atmos ai skill install github.com/user/skill-name --yes
# Install to a custom directory (skips auto-distribution)
atmos ai skill install atmos-terraform --path .github/skills
# Distribute to a specific AI client
atmos ai skill install atmos-terraform --client vscode
# Distribute to every supported AI client
atmos ai skill install atmos-terraform --all-clients
# Distribute into each client's personal, user-level directory
atmos ai skill install atmos-terraform --scope user
atmos ai skill list
List Atmos skills — both the official skills bundled with Atmos and any community skills installed on this system. A filled dot (●) marks an installed skill; a hollow dot (○) marks one that is available to install. The official catalog is embedded in the binary, so listing works offline.
Usage:
atmos ai skill list [flags]
Flags:
-d, --detailed- Show detailed information for each skill, including source, version, install date, and location.
--installed- Show only installed skills, hiding the rest of the available catalog.
-f, --format- Output format:
table,json,yaml,csv, ortsv. Structured formats omit prose headers and ignore--detailed. Also supported throughATMOS_AI_SKILL_FORMAT.
Examples:
# List all skills (available and installed)
atmos ai skill list
# Show only installed skills
atmos ai skill list --installed
# Show detailed information
atmos ai skill list --detailed
atmos ai skill update
Refresh installed skills from their recorded sources. This updates bundled content to the version shipped in the running Atmos binary, refreshes local snapshots, and resolves moving Git refs. Revisions managed through !version continue to follow the selected version lock; update that lock before changing a managed revision.
Omit <name> to update installed sources in project scope; use --scope user for user installations. A named source or skill uses its declaration's scope unless overridden. Upgrading the Atmos binary alone does not refresh previously installed skill content.
Modified owned copies require --force; this is separate from --yes, which skips confirmation. A manual installation keeps its recorded manual destination on update. New client destinations require explicit client selection when updating a manual installation.
Usage:
atmos ai skill update [name] [flags]
Flags:
--force- Replace modified owned skill copies with source content. Does not skip confirmation or overwrite unowned destinations. Also supported through
ATMOS_AI_SKILL_FORCE. -y, --yes- Skip the confirmation prompt.
--path- Select a manual destination alongside the canonical Atmos copy. Relative paths resolve against the current working directory. Distribution flags are ignored, as for install.
-c, --client- AI client to distribute the updated skill to (repeatable):
claude-code,vscode,gemini. Defaults to auto-detected clients. --all-clients- Distribute the updated skill to every supported AI client.
--scope- Override the selected source's scope with
projectoruser. No-argument update defaults to project scope. Wins over--global. -g, --global- Alias for
--scope user.
Update also accepts the source and reconciliation flags.
Examples:
# Update a single bundled skill if a newer version is available
atmos ai skill update atmos-terraform
# Update every installed bundled skill that has an update available
atmos ai skill update
# Skip the confirmation prompt
atmos ai skill update --yes
# Update and redistribute to a specific AI client
atmos ai skill update atmos-terraform --client vscode
# Replace locally modified owned copies and skip confirmation
atmos ai skill update --source Team --force --yes
atmos ai skill uninstall
Remove owned installed copies, including recorded client destinations in the selected scope. Omit <name> to uninstall recorded skills in that scope. Removal requires confirmation unless --force is supplied; --dry-run previews it without prompting. Source declarations remain in configuration.
Use --scope user (or --global) if the skill was installed with --scope user, so cleanup targets each client's personal, user-level skill directory instead of the project one. When neither --scope nor --global is given and the command is running in an interactive terminal, Atmos prompts you to choose project or user scope; --force, a non-TTY session, or CI skips the prompt and defaults to project.
User installations require an explicit user scope or an interactive user-scope selection. The non-interactive default never expands to both scopes. Symbolic links are rejected and left untouched. Client copies from legacy installations without ownership records are also retained.
Usage:
atmos ai skill uninstall [name] [flags]
Flags:
-f, --force- Skip confirmation and allow deleting modified owned copies. Does not delete unowned destinations or symbolic links.
-c, --client- Limit removal to recorded copies for these clients (repeatable):
claude-code,vscode,gemini. Without a client filter, all owned copies in the selected scope are considered. The canonical copy is retained while other client copies remain. --all-clients- Remove the skill from every supported AI client.
--scope- Distribution scope:
project(default) oruser. Useuserto clean up a skill that was installed with--scope user. Wins over--globalif both are set. When omitted (along with--global) in an interactive terminal, Atmos prompts you to choose; non-interactive runs (--force, no TTY, or CI) fall back toproject. -g, --global- Alias for
--scope user.
Uninstall also accepts the source and reconciliation flags.
Examples:
# Uninstall a skill
atmos ai skill uninstall skill-name
# Uninstall every installed skill at once
atmos ai skill uninstall
# Uninstall without confirmation
atmos ai skill uninstall skill-name --force
# Remove the skill from a specific AI client only
atmos ai skill uninstall skill-name --client vscode
# Remove the skill from every supported AI client
atmos ai skill uninstall skill-name --all-clients
# Remove a skill that was installed with --scope user
atmos ai skill uninstall skill-name --scope user
Creating and Publishing Your Own Skill
Skills installed via atmos ai skill install <github-url> follow the same Agent Skills open standard format -- a single SKILL.md file with YAML frontmatter and a Markdown body containing the system prompt.
your-skill-repo/
├── SKILL.md # Skill definition (required)
├── README.md # Documentation (recommended)
├── examples/ # Usage examples (optional)
└── LICENSE # License file (recommended)
The frontmatter declares metadata and tool access. The Markdown body is the AI system prompt.
name- Unique skill identifier in kebab-case.
display_name- User-facing display name.
version- Semantic version (e.g.,
1.2.3). author- Author name or organization.
description- Brief description of skill purpose.
category- One of:
general,analysis,refactor,security,validation,optimization. atmos.min_version- Minimum compatible Atmos version.
tools.allowed- Tools the skill can use. Tools in
restrictedrequire user confirmation each time. repository- GitHub repository URL.
Publishing Your Skill
Create a GitHub repository with a valid SKILL.md, tag a release, and share it:
Share your skill in Atmos Discussions and add the atmos-skill topic to your repository.
- Repository: prefix with
atmos-skill-, use kebab-case (e.g.,atmos-skill-cost-optimizer) - Skill name: no prefix, kebab-case (e.g.,
cost-optimizer) - Display name: title case (e.g., "Cost Optimizer")
Tool Access and Security
Skills declare which tools they need. Review the tools.allowed section before installing any skill.
Always review skill source code on GitHub before installing skills that request:
- File write access (
edit_file,write_stack_file,write_component_file) - Command execution (
execute_bash_command,execute_atmos_command)
Use the restricted field to require user confirmation for sensitive operations. A tool listed in both allowed and restricted means the skill can use it, but the user must approve each invocation.
Troubleshooting
Skill Not Found After Installation
Skill may be disabled or the registry is corrupted. Check with atmos ai skill list and inspect ~/.atmos/skills/registry.json.
Version Compatibility Error
Error: skill requires Atmos >= 1.50.0, but current version is 1.48.0
Upgrade Atmos (brew upgrade atmos) or install an older skill version (atmos ai skill install user/skill@v0.9.0).
Invalid Metadata Error
The skill's SKILL.md has malformed frontmatter. Report the issue to the skill author or try a different version tag.
Registry Corruption
Declarative management
Use declarative sources to share skill selections and lock exact source revisions across a team.
| Command | Effect |
|---|---|
add <source> --name <label> | Create a configuration declaration |
set <label> <field> <value> | Edit a declaration |
remove <label> | Remove a declaration, retaining installations |
sync [label] | Install or reconcile declared sources |
sync --prune | Also remove obsolete owned copies |
sync --check | Check installation state offline |
sync --frozen | Install only from matching locks |
sync --recover | Recover an interrupted transaction |
Installation commands accept --source <label> to select a declaration explicitly and --track
to select the version track. Configuration commands and reconciliation support --dry-run.
The existing no-argument install continues to install all bundled skills.
Configuration command flags
atmos ai skill add ./team-skills --name Team
atmos ai skill set Team clients '[claude-code, gemini]'
atmos ai skill set Team ref '!version team-skills'
atmos ai skill remove Team --dry-run
set supports source, ref, kind, subpath, scope, plugins, include, exclude, and
clients. List-valued fields take a YAML list. set and remove select the declaration using
their positional label; they reject --name. Edits preserve comments and file permissions.
For a declaration present in multiple configuration layers, removal requires one explicit --config file.
--name- Declaration label for
addonly. Required when adding a source. --dry-run- Print the proposed configuration without writing it. Supported by
add,set, andremove.
Source and reconciliation flags
These flags are registered on install, update, uninstall, and sync. Their applicability
depends on the operation:
--source- Select a declared or recorded source explicitly. Use this when a source label conflicts with a bundled skill or local path.
--track- Select the version track for resolution. On uninstall, an explicit track restricts removal to installations recorded for that track; omitting it does not add a track filter.
--dry-run- Preview reconciliation without changing declarations, skill locks, or installed copies. May fetch sources to construct the preview. Cannot be combined with
--check. --frozen- Require matching resolution locks for install or sync. Can write installed copies and does not imply dry-run. Incompatible with update. Uninstall removes recorded copies without resolving a new source revision.
--check- Check installation state offline without writing skill state. Supported by install and sync; incompatible with update, uninstall, or
--dry-run. Exits nonzero for missing, stale, modified, or obsolete copies. --prune- Remove obsolete owned copies during reconciliation. Modified copies require force. Uninstall already removes selected owned copies, so prune adds no additional removal scope there.
Named legacy updates reject --dry-run, --check, and --frozen rather than sending these
options to an updater that cannot enforce them. Reinstall the legacy skill to establish ownership
before using source reconciliation.
Sync flags
sync [label] reconciles declarations without a confirmation prompt. It supports the shared flags
above plus the following:
--scope- Override declaration scope with
projectoruser. Also supported throughATMOS_AI_SKILL_SCOPE. -c, --client- Limit target clients to
claude-code,vscode, orgemini. Also supported throughATMOS_AI_SKILL_CLIENT. --force- Replace modified owned copies or permit pruning them. Also supported through
ATMOS_AI_SKILL_FORCE. --recover- Recover an interrupted transaction for this project. Cannot be combined with
--dry-run,--check, or--frozen.
Related Commands
Ask a one-time question
Start or resume an AI chat session
Run Atmos and shell commands via AI prompts
Manage AI chat sessions