Agent skill

Asdf

by jjmartres in jjmartres/opencode

A skill your agent uses whenever the user wants to install, configure, or use asdf (asdf-vm), the universal version manager.

MITAuto-check: notesDevOps & Cloud

Install Asdf

skills CLI
$ npx skills add jjmartres/opencode --skill asdf -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jjmartres/opencode asdf --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jjmartres/opencode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/opencode/skills/asdf .claude/skills/asdf && rm -rf skills-src

Use ~/.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/

Facts

Skill name
asdf
GitHub stars
133
Token cost
~2.1k tokens
SKILL.md length
510 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses whenever the user wants to install, configure, or use asdf (asdf-vm), the universal version manager.

  • The user wants to install
  • SKILL.md covers When to Use This Skill, Core Concepts, Installation and Essential Commands, plus 7 more sections
  • Calls asdf, git and python; reaches github.com
  • Use asdf (asdf-vm)

What it does

Asdf is an agent skill from jjmartres/opencode. Use this skill whenever the user wants to install, configure, or use asdf (asdf-vm), the universal version manager. Trigger for any mention of asdf, .tool-versions files, managing runtime versions, switching between versions of Node.js, Python, Ruby, Go, Terraform, kubectl, Java, Erlang, Elixir, or any other tool managed by asdf. Also trigger when migrating from nvm, pyenv, rbenv, goenv, tfenv, or similar single-language version managers. Use this skill for help with asdf plugins, asdf install, asdf…

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: opencode

It sits in DevOps & Cloud, covering Container orchestration and Infrastructure as code. It works with Bash, Node.js, Kubernetes and Terraform. The repository describes itself as: A powerful, custom opencode configuration, complete with a suite of agents, commands, rules, skills, and a pre-configured MCP server. It's designed to be a flexible starting… The licence is MIT.

When your agent uses it

  • The user wants to install
  • Use asdf (asdf-vm)
  • The universal version manager
  • Any mention of asdf

Example prompts

  • “/asdf”

Requirements

  • Python 3
  • Node.js
  • Compatibility (from SKILL.md): opencode

What it can do on your machine

Read from SKILL.md and the folder at commit 28dc323. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • asdf
    • git
    • python
    • apt
    • brew
    • node
    • terraform
    • kubectl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    Also links to:

    • asdf-vm.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    opencode

    From compatibility in the SKILL.md frontmatter.

Context cost

Asdf loads about 2.1k tokens when it runs. Until then it costs about 158 tokens; SKILL.md has 510 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~158
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:47
    sudo apt install -y git curl

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.

SKILL.md

The full file from jjmartres/opencode at commit 28dc323, republished under its MIT licence (© jjmartres). 510 words, ~2,119 tokens.

Download SKILL.mdSave it as .claude/skills/asdf/SKILL.md (or your agent's skills folder).
name
asdf
description
Use this skill whenever the user wants to install, configure, or use asdf (asdf-vm), the universal version manager. Trigger for any mention of asdf, .tool-versions files, managing runtime versions, switching between versions of Node.js, Python, Ruby, Go, Terraform, kubectl, Java, Erlang, Elixir, or any other tool managed by asdf. Also trigger when migrating from nvm, pyenv, rbenv, goenv, tfenv, or similar single-language version managers. Use this skill for help with asdf plugins, asdf install, asdf set/global/local, troubleshooting shims, Fish/Bash/Zsh shell configuration, and multi-project version isolation workflows.
compatibility
opencode
license
MIT

asdf Version Manager Skill

asdf is a universal CLI version manager — one tool to replace nvm, pyenv, rbenv, tfenv, goenv and more. It manages per-project versions via .tool-versions files and switches versions automatically as you navigate directories.


When to Use This Skill

Use this skill when the user is:

  • Installing or setting up asdf on a new machine (any OS, any shell)
  • Adding plugins for a language or tool (Node.js, Python, Go, Terraform, kubectl, Helm, etc.)
  • Installing or switching versions of any tool managed by asdf
  • Managing .tool-versions files — creating, editing, or understanding version resolution
  • Migrating from single-language version managers like nvm, pyenv, rbenv, goenv, tfenv, or sdkman
  • Configuring shell integration for Bash, Zsh, Fish, or Elvish
  • Debugging version resolution — wrong version active, shims not working, command not found errors
  • Onboarding to a project that uses .tool-versions for reproducible environments
  • Setting up CI/CD pipelines that need deterministic tool versions via asdf
  • Configuring .asdfrc for legacy file support, concurrency, or plugin repository settings

Core Concepts

  • Plugin: Adapter for a specific tool (nodejs, python, terraform, kubectl, etc.)
  • Tool: The actual runtime/binary managed (e.g., Node.js 20.11.0)
  • .tool-versions: Project-level file declaring exact versions; asdf resolves it by traversing up the directory tree to $HOME
  • Shims: Lightweight wrappers in ~/.asdf/shims/ that intercept tool invocations and dispatch to the right version
  • Version scopes: project (.tool-versions in cwd) → parent dirs → $HOME/.tool-versions → env var ASDF_${TOOL}_VERSION

Installation

Dependencies (all platforms)
bash
# Debian/Ubuntu
sudo apt install -y git curl

# macOS
brew install git curl
bash
# Download latest release from https://github.com/asdf-vm/asdf/releases
# Or via git clone (classic method):
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.16.7
Shell Configuration

Fish shell (Jean-Jacques' setup):

fish
# Add to ~/.config/fish/config.fish
source ~/.asdf/asdf.fish

# Install completions
mkdir -p ~/.config/fish/completions
ln -s ~/.asdf/completions/asdf.fish ~/.config/fish/completions/asdf.fish

Bash:

bash
# Add to ~/.bashrc or ~/.bash_profile
. "$HOME/.asdf/asdf.sh"
. "$HOME/.asdf/completions/asdf.bash"

Zsh:

zsh
# Add to ~/.zshrc
. "$HOME/.asdf/asdf.sh"

After configuration, restart shell or source the config file.


Essential Commands

Plugin Management
bash
asdf plugin list all              # Browse all available plugins
asdf plugin list all | grep terra # Search for specific plugins
asdf plugin add nodejs            # Add plugin by shortname (from registry)
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git  # Add by URL
asdf plugin list                  # List installed plugins
asdf plugin update nodejs         # Update a plugin
asdf plugin update --all          # Update all plugins
asdf plugin remove nodejs         # Remove plugin + all its installs
Version Management
bash
asdf list all nodejs              # List all installable versions
asdf list all nodejs 20           # List versions matching prefix
asdf install nodejs latest        # Install latest version
asdf install nodejs 20.11.0       # Install specific version
asdf install                      # Install all versions in .tool-versions
asdf list nodejs                  # List installed versions
asdf uninstall nodejs 18.0.0      # Remove a version
Setting Versions
bash
asdf set nodejs 20.11.0           # Set version in ./.tool-versions (project)
asdf set -u nodejs 20.11.0        # Set version in ~/.tool-versions (global/user default)
asdf set -p nodejs 20.11.0        # Set in nearest parent .tool-versions
asdf set nodejs latest            # Resolve and write latest version
asdf current                      # Show active version for all tools in cwd
asdf current nodejs               # Show active version for one tool
asdf where nodejs                 # Show install path for active version
asdf which node                   # Show shim path for a command

Note: asdf set replaced the older asdf local / asdf global commands in asdf v0.15+. Both still work but asdf set is the modern API.

Environment Variable Override
bash
# Temporarily override without editing .tool-versions
ASDF_NODEJS_VERSION=18.0.0 node --version

Show full SKILL.md (221 more words)Show less

.tool-versions Format

nodejs 20.11.0
python 3.12.2
terraform 1.7.4
kubectl 1.29.2
golang 1.22.1
  • One tool per line, <name> <version>
  • Multiple versions separated by spaces (fallback chain): python 3.12.2 2.7.18
  • Special keywords: system (use OS-installed version), path:~/my/custom/build
  • Commit to version control — this is the contract for the project's tool versions

.asdfrc Configuration

Located at ~/.asdfrc:

ini
# Support .nvmrc, .ruby-version, etc. (per-plugin support required)
legacy_version_file = yes

# Keep downloaded archives (useful for slow connections)
always_keep_download = no

# Concurrency for parallel installs
concurrency = auto

# Plugin repository refresh interval in minutes
plugin_repository_last_check_duration = 60

Common Plugins for DevOps/Cloud (Jean-Jacques' stack)

ToolPlugin add command
Node.jsasdf plugin add nodejs
Pythonasdf plugin add python
Goasdf plugin add golang
Terraformasdf plugin add terraform
kubectlasdf plugin add kubectl
Helmasdf plugin add helm
gcloud CLIasdf plugin add gcloud
Skaffoldasdf plugin add skaffold
Javaasdf plugin add java
Rubyasdf plugin add ruby
Erlangasdf plugin add erlang
Elixirasdf plugin add elixir

Many plugins may require system dependencies — always check the plugin's README before installing.


Migration from Other Version Managers

Enable legacy file support in ~/.asdfrc:

ini
legacy_version_file = yes
Old fileTool
.nvmrcnodejs (via asdf-nodejs)
.node-versionnodejs
.ruby-versionruby (via asdf-ruby)
.python-versionpython (via asdf-python)

Troubleshooting

Shims not working / command not found
bash
asdf reshim nodejs          # Regenerate shims for a plugin
asdf reshim                 # Regenerate all shims
echo $PATH                  # Verify ~/.asdf/shims is early in PATH
type -a node                # Fish: check which binary is resolved
Version not being picked up
bash
asdf current                # See what version is resolved and from where
# Look for "No version set" warnings
# Check .tool-versions exists in project dir or a parent
Plugin install failures
  • Check plugin README for system dependency requirements
  • Ensure git is installed and accessible
  • For nodejs: may need gnupg for keyring verification
Data directory

Default: ~/.asdf/ — override with export ASDF_DATA_DIR=/custom/path in shell config.


Typical Project Onboarding Workflow

bash
# 1. Clone project
git clone <repo> && cd <repo>

# 2. Add plugins for each tool in .tool-versions (if not already added)
asdf plugin add nodejs
asdf plugin add python

# 3. Install all versions specified in .tool-versions
asdf install

# 4. Verify
asdf current

Reference

© jjmartres, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in opencode/skills/asdf of jjmartres/opencode.

Open the folder on GitHubat commit 28dc323

Compare with similar skills

Asdf 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.

Asdf compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Asdf this skilljjmartres/opencode133—~2.1kAutomated safety check: NotesMIT
Carefulyonatangross/orchestkit290—~1.2kAutomated safety check: PassMIT
Security Analyzeraiskillstore/marketplace430—~1.2kAutomated safety check: NotesNone
Eks Best Practicesaws-samples/appmod-blueprints115—~5kAutomated safety check: PassMIT-0
Supercheck Infrastructure Deploymentsupercheck-io/supercheck215—~1.4kAutomated safety check: NotesAGPL-3.0
Cloud Devopsdavila7/claude-code-templates32k4 repos~1.4kAutomated safety check: PassMIT

Similar skills

  • Careful

    yonatangross/orchestkit

    Blocks destructive shell commands once invoked: a PreToolUse Bash guard denies rm -rf outside temp dirs, force pushes and remote branch deletes, git reset --hard, DROP TABLE / DROP DATABASE /…

    290 GitHub stars~1.2k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Security Analyzer

    aiskillstore/marketplace

    Comprehensive security vulnerability analysis for codebases and infrastructure.

    430 GitHub stars~1.2k tokensUpdated today
    SecurityAuto-check: notes
  • Eks Best Practices

    aws-samples/appmod-blueprints

    Official

    Advisory guidance for Amazon EKS architecture and configuration decisions — compute strategy, networking, security, reliability, cost, autoscaling, observability, multi-tenancy, and upgrade planning.

    115 GitHub stars~5k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Supercheck Infrastructure Deployment

    supercheck-io/supercheck

    Work on Supercheck Docker Compose, K3s, Kubernetes manifests, gVisor, OpenTofu/Hetzner, secrets, external services, autoscaling, backups, disaster recovery, DNS/TLS, or production deployment.

    215 GitHub stars~1.4k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Cloud Devops

    davila7/claude-code-templates

    Cloud infrastructure and DevOps workflow covering AWS, Azure, GCP, Kubernetes, Terraform, CI/CD, monitoring, and cloud-native development.

    32k GitHub starsUsed in 4 repos~1.4k tokens
    DevOps & CloudAuto-check passed
  • Infrastructure

    microsoft/physical-ai-toolchain

    Official

    Deploy and manage Azure infrastructure for the Physical AI Toolchain including Terraform IaC, Kubernetes setup, GPU configuration, and network topology

    123 GitHub stars~1.6k tokensUpdated yesterday
    DevOps & CloudAuto-check passed

More from jjmartres/opencode

All 11 skills in this repo
  • Mermaid Diagrams

    jjmartres/opencode

    Helps an agent pick the right Mermaid diagram type and write the syntax for class, sequence, flow, ER, C4, state and other software diagrams.

    133 GitHub starsUsed in 6 repos~1.9k tokens
    Auto-check passed
  • Marp Slide Creator

    jjmartres/opencode

    Builds Marp slide decks in one of seven ready-made themes, using bundled templates plus syntax, image and style references to keep slides short and readable.

    133 GitHub starsUsed in 3 repos~2.2k tokens
    Auto-check passed
  • Lets an agent view, create, update and transition Jira issues in natural language, automatically choosing between the jira CLI and Atlassian MCP tools.

    133 GitHub starsUsed in 3 repos~1.7k tokens
    Auto-check passed
  • Google Style Code Docs

    jjmartres/opencode

    Applies Google Style documentation to Python docstrings, Go comments and Terraform descriptions, for writing new docs or reviewing existing ones.

    133 GitHub stars~1.9k tokensUpdated 5 mo ago
    Auto-check passed
  • Guides use of Worktrunk (wt), a CLI that makes git worktrees as easy as branches so several AI agents can work in parallel on isolated branches.

    133 GitHub stars~1.9k tokensUpdated 5 mo ago
    Auto-check: notes
  • A skill your agent uses when writing prose humans will read—documentation, commit messages, error messages, explanations, reports, or UI text.

    133 GitHub starsUsed in 6 repos~1k tokens
    Auto-check passed

Categories

Questions about Asdf

What does Asdf do?

A skill your agent uses whenever the user wants to install, configure, or use asdf (asdf-vm), the universal version manager. Asdf is an agent skill from jjmartres/opencode. Use this skill whenever the user wants to install, configure, or use asdf (asdf-vm), the universal version manager.

When should I use Asdf?

Asdf fits situations like: the user wants to install; use asdf (asdf-vm); the universal version manager; any mention of asdf.

How do I install Asdf in Claude Code?

Run `npx skills add jjmartres/opencode --skill asdf -a claude-code`. Or copy the skill folder (opencode/skills/asdf in jjmartres/opencode) into .claude/skills/asdf in your project. Claude Code loads it when a task matches its description.

How do I install Asdf in Codex?

Run `npx skills add jjmartres/opencode --skill asdf -a codex`. Or copy the skill folder (opencode/skills/asdf in jjmartres/opencode) into .agents/skills/asdf in your project. Codex loads it when a task matches its description.

Can I use Asdf in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jjmartres/opencode --skill asdf -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/asdf, .gemini/skills/asdf, .github/skills/asdf and .opencode/skills/asdf in your project.

What does Asdf need to run?

Going by SKILL.md and its folder, Asdf needs the command-line tools its instructions call (asdf, git, python, apt, brew and node). Our summary lists: Python 3; Node.js. Compatibility (from SKILL.md): opencode.

Does Asdf access the network?

SKILL.md names 2 domains. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. As links in the text: asdf-vm.com. This is read from the text; nothing was executed.

Is Asdf safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Asdf use?

Asdf is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Asdf use?

About 2.1k tokens (SKILL.md is roughly 8.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Asdf?

Skills that share tags, products or a category with Asdf: Careful (yonatangross/orchestkit, 290 stars), Security Analyzer (aiskillstore/marketplace, 430 stars), Eks Best Practices (aws-samples/appmod-blueprints, 115 stars) and Supercheck Infrastructure Deployment (supercheck-io/supercheck, 215 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Asdf?

jjmartres (a GitHub user) maintains it in jjmartres/opencode, which has 133 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on April 20, 2026.

Source: jjmartres/opencode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.