Repolode
jdx

jdx/mise

A single Rust CLI that installs project tools, sets environment variables, and runs tasks from one mise.toml file.

Open-source alternative to:asdfnvm

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