atmos-toolchain
Original:🇺🇸 English
Translated
Toolchain management: install/exec/search/env commands, Aqua registry integration, version pinning, multi-tooling execution
1installs
Sourcecloudposse/atmos
Added on
NPX Install
npx skill4agent add cloudposse/atmos atmos-toolchainTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Atmos Toolchain
Purpose
The Atmos toolchain manages CLI tool installation and versioning natively, using the Aqua package registry
ecosystem. It replaces external version managers (asdf, mise, aqua CLI) with a built-in system that
integrates directly with atmos.yaml configuration.
Core Concepts
.tool-versions File
The file (asdf-compatible format) declares which tools and versions a project needs:
.tool-versionstext
terraform 1.9.8
opentofu 1.10.3
kubectl 1.28.0
helm 3.13.0
jq 1.7.1- One tool per line, format:
toolname version [version2 version3...] - Multiple versions per tool are supported; first version is the default
- File location: project root (default), overridable via in atmos.yaml
toolchain.file_path
Tool Installation Path
Tools are installed to (default) in a structured layout:
.tools/text
.tools/bin/{os}/{tool}/{version}/{binary}Override via in atmos.yaml or env var.
toolchain.install_pathATMOS_TOOLCHAIN_PATHRegistries
Atmos supports three registry types for discovering and downloading tools:
Aqua Registry -- The primary source, providing 1,000+ tools:
yaml
registries:
- name: aqua
type: aqua
source: https://github.com/aquaproj/aqua-registry/tree/main/pkgs
priority: 10Inline (Atmos) Registry -- Define tools directly in atmos.yaml:
yaml
registries:
- name: custom
type: atmos
priority: 150
tools:
owner/repo:
type: github_release
url: "asset_{{.Version}}_{{.OS}}_{{.Arch}}"
format: tar.gzFile-Based Registry -- Local or remote Aqua-format files:
yaml
registries:
- name: corporate
type: aqua
source: file://./custom-registry.yaml
priority: 100Priority System: Higher numbers are checked first. First match wins.
Typical ordering: inline (150) > corporate (100) > public aqua (10).
Aliases
Map short names to fully qualified tool identifiers:
yaml
toolchain:
aliases:
terraform: hashicorp/terraform
tf: hashicorp/terraform
kubectl: kubernetes-sigs/kubectlConfiguration in atmos.yaml
yaml
toolchain:
install_path: .tools # Where to install tools
file_path: .tool-versions # Path to version file
aliases:
terraform: hashicorp/terraform
tf: hashicorp/terraform
registries:
# Inline tools (highest priority)
- name: my-tools
type: atmos
priority: 150
tools:
jqlang/jq:
type: github_release
url: "jq-{{.OS}}-{{.Arch}}"
# Aqua registry (fallback)
- name: aqua
type: aqua
source: https://github.com/aquaproj/aqua-registry/tree/main/pkgs
priority: 10Key Commands
Installation
bash
atmos toolchain install # Install all tools from .tool-versions
atmos toolchain install terraform@1.9.8 # Install specific tool and version
atmos toolchain uninstall terraform@1.9.8 # Remove installed tool
atmos toolchain clean # Remove all installed tools and cacheVersion Management
bash
atmos toolchain add terraform # Add tool to .tool-versions (latest)
atmos toolchain add terraform@1.9.8 # Add with specific version
atmos toolchain remove terraform # Remove from .tool-versions
atmos toolchain set terraform 1.9.8 # Set default version
atmos toolchain get terraform # Get version from .tool-versionsDiscovery
bash
atmos toolchain search terraform # Search across registries
atmos toolchain info hashicorp/terraform # Display tool configuration
atmos toolchain list # Show installed tools
atmos toolchain which terraform # Show full path to binary
atmos toolchain du # Show disk usageExecution
bash
atmos toolchain exec terraform@1.9.8 -- plan # Run specific version
atmos toolchain env --format=bash # Export PATH for shell
atmos toolchain path # Print PATH entriesRegistry Management
bash
atmos toolchain registry list # List all registries
atmos toolchain registry list aqua # List tools in specific registry
atmos toolchain registry search jq # Search across registriesEnvironment Variables
| Variable | Description |
|---|---|
| GitHub token for higher API rate limits |
| Override .tool-versions file path |
| Override tool installation directory |
| Default format for |
Precedence Order
- CLI flags (highest)
- Environment variables
- atmos.yaml configuration
- Defaults (lowest)
Shell Integration
Add to or for automatic PATH setup:
~/.bashrc~/.zshrcbash
eval "$(atmos toolchain env --format=bash)"Other shell formats: , , (for CI).
--format=fish--format=powershell--format=githubTemplate Variables in Registries
Aqua and inline registries support Go templates in asset URLs:
| Variable | Description |
|---|---|
| Full version string |
| Version without 'v' prefix |
| Operating system (linux, darwin, windows) |
| Architecture (amd64, arm64) |
Common Patterns
Project Setup
yaml
# atmos.yaml
toolchain:
aliases:
terraform: hashicorp/terraform
kubectl: kubernetes-sigs/kubectl
registries:
- name: aqua
type: aqua
source: https://github.com/aquaproj/aqua-registry/tree/main/pkgs
priority: 10text
# .tool-versions
hashicorp/terraform 1.9.8
kubernetes-sigs/kubectl 1.28.0
helmfile/helmfile 0.168.0bash
# Install everything
atmos toolchain install
# Verify
atmos toolchain listCI/CD Integration
yaml
# GitHub Actions
- name: Install tools
run: |
atmos toolchain install
eval "$(atmos toolchain env --format=github)"Custom Tool Registry
yaml
toolchain:
registries:
- name: internal
type: atmos
priority: 150
tools:
company/internal-tool:
type: github_release
url: "internal-tool_{{.Version}}_{{.OS}}_{{.Arch}}.tar.gz"
format: tar.gz
- name: aqua
type: aqua
source: https://github.com/aquaproj/aqua-registry/tree/main/pkgs
priority: 10Unsupported Aqua Features
These Aqua features are intentionally not supported to keep Atmos focused:
- ,
github_content,github_archive,go_buildpackage typescargo - ,
version_filterversion manipulationversion_expr - (use multiple registries instead)
import - (use
command_aliasesin atmos.yaml)toolchain.aliases - ,
cosign,minisignsignature verificationslsa_provenance