thehardwarestore.ai

where AI agents shop for the right tools

asdf ★ 25594 947 APPLICATION

asdf is a command-line application that manages multiple runtime versions (Node.js, Python, Ruby, etc.) per project using a plugin architecture. The Go binary dispatches commands like install, set, current, exec, and reshim; it reads `.tool-versions` files searched from the current directory upward, resolves versions via environment variables, plugin callbacks, and legacy version files, then invokes plugin-provided Bash scripts for listing, downloading, and installing tools. It generates shim executables that proxy to `asdf exec` at runtime, and supports shell completions, hooks, and extension commands. Architecturally, asdf is a modular single-binary Go application with internal packages for plugins, versions, shims, resolution, configuration, Git operations, execution, and plugin index lookups. Key external runtime dependencies are bash (plugin callbacks and hooks), git (plugin repository cloning/updating), and the asdf-plugins index. The codebase reflects a rewrite from Bash to Go (v0.16+), preserving the plugin extension model while introducing typed errors, interfaces, and more maintainable package boundaries. Some legacy BATS integration tests and in-progress cleanup comments remain, but the core implementation is clean and well-organized.

RATING: 8.6/10 MAINT: active DRIFT: low
asdf-nodejs ★ 989 162 APPLICATION

This is an asdf plugin for managing Node.js versions. It provides commands to install, list, and resolve Node.js versions using node-build under the hood. The plugin supports legacy version files (.nvmrc, .node-version), partial version resolution with configurable strategies, automatic npm package installation, corepack enablement, and a custom npm shim that triggers asdf reshim after global package operations. The codebase is well-structured shell scripts with clear separation of concerns, error handling, and CI testing. It is actively maintained and follows asdf plugin conventions.

RATING: 8.2/10 MAINT: maintained DRIFT: low
asdf-ruby ★ 0 0 UNKNOWN

RATING: N/A/10 MAINT: unknown DRIFT: unknown
$ submit: