Toolchain Configuration
The toolchain feature enables you to manage CLI tool versions (Terraform, kubectl, helm, etc.) directly within Atmos, ensuring consistency across your team and CI/CD environments.
You will learn
- Manage tool versions with
.tool-versionsfiles - Install CLI binaries from GitHub releases and other sources
- Integrate with the Aqua registry ecosystem for 1,000+ pre-configured tools
- Verify package checksums and signatures when registry metadata provides them
- Version control your tools for team consistency
- Automatic tool provisioning in workflows
Basic Configuration
Configure toolchain behavior in your atmos.yaml:
Configuration Options
file_pathPath to the
.tool-versionsfile that tracks tool versions for your project.- Default:
.tool-versions - Supports relative or absolute paths
- Compatible with asdf format
- Default:
install_pathDirectory where toolchain binaries will be installed.
- Default:
.tools - Supports relative or absolute paths
- Tools are organized by name and version:
.tools/bin/{os}/{tool}/{version}/{tool}
- Default:
versions_fileAlternative name for
file_path. Usefile_pathfor consistency.tools_dirAlternative name for
install_path. Useinstall_pathfor consistency.
Package Verification
Atmos verifies downloaded toolchain packages before extraction when registry metadata includes checksums, signatures, or attestations. The default behavior is non-breaking: verification runs when metadata is available, and packages without verification metadata can still install.
See Toolchain Verification for checksum policies, signature policies, verifier CLI resolution, and strict verification settings.
Tool Versions File
Create a .tool-versions file to track tool dependencies:
This file follows the asdf format:
- One tool per line
- Format:
<tool-name> <version> - Commit to version control for team consistency
Installing Tools
Install all tools from .tool-versions:
atmos toolchain install
Install a specific tool:
atmos toolchain install terraform@1.9.8
atmos toolchain install kubectl@1.28.0
Directory Structure
After installation, tools are organized as follows:
.tools/
├── bin/
│ └── darwin/ # OS-specific directory
│ ├── terraform/
│ │ └── 1.9.8/
│ │ └── terraform # Binary
│ ├── kubectl/
│ │ └── 1.28.0/
│ │ └── kubectl
│ └── helm/
│ └── 3.13.0/
│ └── helm
└── cache/
└── downloads/ # Downloaded archives
Advanced Configuration
For advanced toolchain features, see:
- Registries - Configure tool registries (Aqua, custom, inline)
- Aliases - Define tool name aliases
- Verification - Configure checksum, signature, and attestation verification
Complete Example
Environment Variables
Configure toolchain behavior via environment variables:
ATMOS_TOOLCHAIN_FILE_PATH- Override the tool versions file path
ATMOS_TOOLCHAIN_INSTALL_PATH- Override the tool installation directory
ATMOS_GITHUB_TOKENorGITHUB_TOKENGitHub personal access token for:
- Higher API rate limits (5,000 req/hour vs 60 unauthenticated)
- Access to private repositories
- Better reliability during bulk operations
CLI Precedence
Configuration is resolved in this order (highest to lowest priority):
- CLI flags:
atmos toolchain install --install-path=/custom/path - Environment variables:
ATMOS_TOOLCHAIN_INSTALL_PATH=/custom/path - Configuration file:
toolchain.install_pathinatmos.yaml - Defaults:
.toolsfor install_path,.tool-versionsfor file_path
Related Documentation
- Toolchain Commands - Full command reference
- Workflows - Integrate toolchain with workflows
- Stack Dependencies - Declare tool requirements per component