mise manages your development tools, environment variables, and project tasks.
Declare them in mise.toml, commit the file, and use the same setup in your shell,
your editor, and CI.
Tools: install Node.js, Python, Go, and hundreds more, with different versions for each project.
Environments: set project environment variables and load .env files.
Tasks: run build, test, and other commands with the tools and environment they need.
Bootstrap: declare machine setup, including system packages, dotfiles, and services.
Use the parts you need. Start with one tool or task and add more to the same config.
Quickstart
1. Install mise
On macOS or Linux:
curl https://mise.run | sh
~/.local/bin/mise --version
On Windows, install with winget install jdx.mise. See the
installation guide for package managers
and other installation methods.
The examples below use mise. If it isn’t on your PATH yet, use
~/.local/bin/mise instead on macOS or Linux.
2. Try a tool
mise exec node@24 -- node --version
This installs Node.js if needed and runs it for this command, without changing
your project configuration. No shell activation is required.
For an existing project that already has a reviewed mise.toml, run mise install
from its directory and mise tasks ls to discover its tasks.
3. Give a project its own environment
In a project directory, create mise.toml:
[tools]
node = "24"
[env]
NODE_ENV = "development"
[tasks.hello]
description = "Print the project's Node.js version and environment"
run = '''node -e "console.log(process.version, process.env.NODE_ENV)"'''
Run the task:
mise run hello
mise installs the configured tool if needed, loads NODE_ENV, and runs the task.
The output includes the Node.js version and development. Commit mise.toml so
teammates and CI can run the same command.
To add tools later, run mise use python@3.14 from the project directory.
Use mise use --global to set personal defaults. Version requests such as "24"
select a release in that series; use exact pins or a lockfile
when you need everyone to use the same resolved version.
4. Activate your shell (optional)
Activation makes project tools and environment variables available directly when
you enter a directory. For an installation from mise.run, add one of these
lines to the corresponding shell config:
# ~/.config/fish/config.fish
~/.local/bin/mise activate fish | source
Restart your shell, then run node --version inside the project. For PowerShell
and other installation methods, follow the
shell setup guide.
Check your project setup
mise config ls
mise ls --current
mise exec -- node --version
These show which configuration files are loaded, which versions are selected,
and whether the tool runs in the project environment. If mise exec works but
node --version does not, check shell activation with mise doctor.
mise-en-place
Dev tools, env vars, and tasks in one CLI
Getting Started • Documentation • Dev Tools • Environments • Tasks
Sponsored by
View all sponsors
What is mise?
mise manages your development tools, environment variables, and project tasks. Declare them in
mise.toml, commit the file, and use the same setup in your shell, your editor, and CI..envfiles.Use the parts you need. Start with one tool or task and add more to the same config.
Quickstart
1. Install mise
On macOS or Linux:
On Windows, install with
winget install jdx.mise. See the installation guide for package managers and other installation methods.The examples below use
mise. If it isn’t on yourPATHyet, use~/.local/bin/miseinstead on macOS or Linux.2. Try a tool
This installs Node.js if needed and runs it for this command, without changing your project configuration. No shell activation is required.
For an existing project that already has a reviewed
mise.toml, runmise installfrom its directory andmise tasks lsto discover its tasks.3. Give a project its own environment
In a project directory, create
mise.toml:Run the task:
mise installs the configured tool if needed, loads
NODE_ENV, and runs the task. The output includes the Node.js version anddevelopment. Commitmise.tomlso teammates and CI can run the same command.To add tools later, run
mise use python@3.14from the project directory. Usemise use --globalto set personal defaults. Version requests such as"24"select a release in that series; use exact pins or a lockfile when you need everyone to use the same resolved version.4. Activate your shell (optional)
Activation makes project tools and environment variables available directly when you enter a directory. For an installation from
mise.run, add one of these lines to the corresponding shell config:Restart your shell, then run
node --versioninside the project. For PowerShell and other installation methods, follow the shell setup guide.Check your project setup
These show which configuration files are loaded, which versions are selected, and whether the tool runs in the project environment. If
mise execworks butnode --versiondoes not, check shell activation withmise doctor.Where to go next
Demo
Watch mise install tools and switch Node.js versions as you change directories.
A text transcript is also available.
GitHub Issues & Discussions
Use GitHub Discussions for support and feature requests. GitHub Issues are not used for new reports.
Special Thanks
Thanks to Namespace for providing CI services for mise.
Contributors