asdf Integration¶
Updates tool versions in .tool-versions files used by the asdf version manager.
Overview¶
Integration ID: asdf
Manifest Files: .tool-versions
Update Strategy: Line-based parsing and rewriting
Registry: GitHub Releases (per tool via asdf plugin mapping)
Status: ⚠️ Experimental (85% test coverage, version resolution not yet implemented)
What Gets Updated¶
Tool version entries in .tool-versions:
- Each line format:
tool_name version - Comments and formatting preserved
- Multiple versions per tool supported (space-separated)
Example¶
Before:
After:
# Development tools
go 1.25.0
nodejs 22.12.0
terraform 1.10.5
# Build tools
python 3.13.1
ruby 3.3.6
Integration-Specific Behavior¶
File Format¶
Simple line-based format:
uptool updates the first (primary) version for each tool.
Tool Installation¶
uptool updates only .tool-versions. Run asdf install after to install new versions:
GitHub Rate Limits¶
Each tool queries GitHub Releases. Set GITHUB_TOKEN for higher limits:
- Unauthenticated: 60 requests/hour
- Authenticated: 5,000 requests/hour
Configuration¶
version: 1
integrations:
- id: asdf
enabled: true
policy:
update: patch # Conservative for runtimes
allow_prerelease: false
Limitations¶
- Experimental status: Version resolution not yet implemented.
uptool planreturns empty update lists. - Detection only: Currently only scans and detects
.tool-versionsfiles and their dependencies. - No updates yet: Use native
asdfcommands for updates: asdf plugin update --all- Update all pluginsasdf list all <tool>- Check available versionsasdf install <tool> latest- Install latest version- Future implementation: Will query GitHub Releases per tool for version checking.
See Also¶
- CLI Reference -
uptool scan --only asdf - Configuration Guide - Policy settings
- asdf Documentation
- mise Integration - Modern alternative to asdf