A Node.js version manager for Windows that installs and switches between multiple Node.js versions per project or globally.
- Stars
- 35,250
- Forks
- 1,493
- Open issues
- 10
- Last commit
- 3 hours ago
What is it?
mise (short for mise-en-place) manages the tools a project needs, such as Node.js, Python, and Terraform, with a different version per project. It also loads environment variables and `.env` files for each project, and runs tasks like build and test with those tools and variables in place. All of this is declared in one `mise.toml` file that works in the shell, in editors, and in CI.
The tool registry covers more than 1,000 tools. Activating mise in a shell puts a project's tools on the PATH and sets its variables when you enter the directory. The `mise bootstrap` command can also apply system packages, dotfiles, repositories, and services to a new machine.
You can adopt only the parts you need, starting with a single tool or a single task. Installation is available through a shell script, winget, Homebrew, apt, and Scoop.
Key features
- 01Installs per-project tool versions such as Node.js, Python, and Terraform from a registry of 1,000+ tools.
- 02Sets environment variables and loads `.env` files for each project.
- 03Runs project tasks with the project's tools and environment variables applied.
- 04Bootstraps a machine with system packages, dotfiles, repositories, and services.
- 05Records exact tool versions in a lockfile for teammates and CI.
Use cases
- Keeping different Node.js or Python versions across multiple projects on one machine.
- Giving new team members a single command to install all project tools and tasks.
- Replacing ad hoc shell scripts for build, test, and lint tasks with a shared config.
- Setting up a new developer laptop from declared packages and dotfiles.
Topics
FAQ
- What is mise?
- A single Rust CLI that installs project tools, sets environment variables, and runs tasks from one mise.toml file. mise (short for mise-en-place) manages the tools a project needs, such as Node.js, Python, and Terraform, with a different version per project. It also loads environment variables and `.env` files for each project, and runs tasks like build and test with those tools and variables in place. All of this is declared in one `mise.toml` file that works in the shell, in editors, and in CI.
- Is mise free to use? What license does it have?
- mise is open source under the MIT license. Check the license terms before using it in commercial products.
- Is mise still maintained?
- Actively maintained. The last commit to mise was on Oct 22, 2026.
- What can I use mise for?
- Keeping different Node.js or Python versions across multiple projects on one machine. Giving new team members a single command to install all project tools and tasks. Replacing ad hoc shell scripts for build, test, and lint tasks with a shared config. Setting up a new developer laptop from declared packages and dotfiles.
- Where can I get mise?
- The source code and installation instructions are on GitHub: https://github.com/jdx/mise
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A POSIX-compliant bash script for installing and switching between multiple Node.js versions per user and per shell.
A fast, cross-platform task runner written in Go, inspired by Make and configured through a Taskfile YAML file.
A community-driven framework for managing zsh configuration, bundling hundreds of plugins and themes plus an update tool.
Ethereum development environment for compiling, deploying, testing, and debugging smart contracts and dapps.
CLI proxy that filters and compresses shell command output before it reaches an AI coding agent's context, cutting token use.