--- title: "mise" category: "Languages and runtimes" tagline: "Installs and switches versions of Ruby, Node, Python and other tools, per project." source: "installer" command: "mise" website: "https://mise.jdx.dev/" code: "https://github.com/jdx/mise" --- ## What it is mise is a version manager for programming languages and developer tools. It installs as many versions of Ruby, Node.js, Python, Go and hundreds of other tools as you need, and switches between them automatically as you move between projects, based on a `mise.toml` (or an asdf `.tool-versions` file) in each project. It can also set environment variables and run tasks for a project. ## Why it's here - **The right version per project.** Change directory and the versions change with you. - **One tool for every language.** No separate rbenv, nvm and pyenv. - **Fast.** It changes your PATH directly instead of running every command through a wrapper. ## On CoreDesktop CoreDesktop installs mise with its official installer from mise.run, which puts it in `~/.local/bin` and turns it on in `~/.bashrc`. CoreDesktop uses it to install [Ruby and Rails](/software/ruby-on-rails/), and `update` runs `mise self-update` and upgrades Ruby. Commands run over SSH can find tools installed with mise, and the `ga` function, which creates a Git worktree, trusts the new worktree's mise config. ``` mise use node@22 ```