asdf-vm is a command-line tool to manage runtime versions of multiple languages, per project. It's similar to other command-line version management tools, such as RVM for Ruby and nvm for Node.js, with the advantage of an extensible plugin architecture to handle multiple languages. Its list of current plugins include many languages as well as tools such as Bazel or tflint, whose runtime version you may need to manage per project.