Dev tools, env vars, and tasks in one CLI
mise is pronounced “meez”
mise installs a project's tools, sets its environment variables, and runs its tasks from one mise.toml that works in your shell, editor, and CI. With mise bootstrap, it can also set up a whole machine: packages, dotfiles, and services.
curl -fsSL https://mise.run | shmacOS & Linux Installing on Windows?
# Tool versions for this project
[tools]
node = "24"
python = "3.14"
Example output ~/my-project
$ mise install
✓ installed 2 tools in 6.2s: node@24.21.0, python@3.14.8
$ mise use node@24
Install any of 1,000+ tools, choose a version for each project, and switch automatically as you move between directories.
Read the dev tools guide$ mise env
Load a project's environment variables from mise.toml, .env files, and secrets when you enter its directory.
$ mise run test
Define build, test, lint, and deploy commands next to the tools and environment variables they need, with dependencies and parallel runs.
Read the tasks guide$ mise bootstrap
Set up a whole machine: system packages, dotfiles, repositories, services, macOS defaults, and tools.
Read the bootstrap guideAlready have .tool-versions, .nvmrc, or .python-version files? mise reads .tool-versions as it is and reads the others once you enable them.
Activate mise in your shell once. From then on, entering a project puts its installed tool versions on your PATH and loads its environment variables. Leave the project and mise restores the environment for your new directory.
mise exec for scripts and containers, and a GitHub Action for CI[bootstrap.packages]
[bootstrap.repos]
[dotfiles]
[bootstrap.services]mise bootstrapmise bootstrap --dry-run shows what will change before you apply it. Declare the packages, repositories, dotfiles, and services a machine needs, then apply them with mise bootstrap. Run mise bootstrap --dry-run first to see what will change. This setup belongs to the machine, not to a project, so it usually lives in your global config or in a repository of your own.
mise bootstrap remoteSet up a new machine from a repository that holds your mise.toml:
mise bootstrap --from git@github.com:you/dotfiles.gitOn macOS or Linux, run the installer. It puts mise in ~/.local/bin; if that is not on your PATH, type ~/.local/bin/mise in the next two steps. On Windows, run winget install jdx.mise. See Installing mise for other methods.
mise exec installs Node.js 24 if needed and runs one command with it. Your shell and config files stay as they were.
These commands write [tools], [env], and [tasks.hello] to the project's mise.toml. The task runs with the project's Node.js and NODE_ENV. Commit mise.toml so teammates and CI get the same setup.
Activation puts the project's tools and environment variables in your shell when you enter the project, so node works without mise exec. Run the commands for your shell once, then open a new shell. For PowerShell, Nushell, and others, see Shell setup.
— Install mise
curl -fsSL https://mise.run | sh— Related project
Give every Cargo checkout one shared, self-pruning compilation cache, locally and in CI.