In a previous post, I recommended asdf-vm as a general tool manager. Since then, asdf has undergone a rewrite from bash to go, and broken its plugin ecosystem as a consequence.
Enter mise-en-place, a competing tool manager that mostly just works for most tools without plugins, and has gone the extra step of providing binary builds for historical versions of tools like Terraform that were not originally published for alternative architectures like ARM.
Here’s an example direnv integration:
$ echo 'use mise' > .direnv
$ echo 'layout python' >> .direnv
$ mise use python@3.13
$ direnv allow
Mise’s default config file is mise.toml
, but it can read .tool-versions if desired. This can be disabled by setting MISE_OVERRIDE_TOOL_VERSIONS_FILENAMES=none
in your environment.