jdx/mise is an open-source project on GitHub, mainly written in Rust. dev tools, env vars, task runner It currently holds 34,834 stars and 1,470 forks with 7 open issues, and was last pushed on 2026-10-09 (repository created 2023-01-09).
Project Overview
Git Homed tracks it on the Today's Trending board, currently at rank #75 with 47 new stars today.
GitHub Repository Details
Repository jdx/mise · default branch main · size 144870 KB · watchers 51 · source: GitHub REST API and repository README
mise (pronounced "meez", short for _mise-en-place_) 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.
which applies the system packages, dotfiles,
repositories, and services you declare for it.
Use only the parts you need. You can start with one tool or one task.
Demo
Watch mise run a tool once with mise exec, set global defaults, and switch
Node.js versions as you move into and out of a project.
The demo transcript lists the
commands with current versions.
Quickstart
1. Install mise
On macOS or Linux:
curl https://mise.run | sh
~/.local/bin/mise --version
On Windows, run winget install jdx.mise. For Homebrew, apt, Scoop, and other
methods, see Installing mise.
The installer puts mise in ~/.local/bin. If that directory is not on your
PATH, type ~/.local/bin/mise wherever the steps below say mise, until you
activate mise in step 4.
2. Try a tool
mise exec node@24 -- node --version
v24.x.x
mise exec installs Node.js 24 if needed and runs one command with it. It does
not change your shell or any config file, and it works without activation.
3. Set up a project
mkdir my-project && cd my-project
mise use node@24
mise use installs Node.js 24 and writes it to a new mise.toml. Add an
environment variable and a task to that file:
[tools]
node = "24"
[env]
NODE_ENV = "development"
[tasks.hello]
description = "Print the Node.js version and NODE_ENV"
run = 'node -e "console.log(process.version, process.env.NODE_ENV)"'
Run the task:
mise run hello
[hello] $ node -e "console.log(process.version, process.env.NODE_ENV)"
v24.x.x development
The task runs with the project's Node.js and NODE_ENV. Commit mise.toml so
teammates and CI get the same setup. "24" is a version request for the
Node.js 24 series, not an exact pin; to share exact versions, use a
lockfile. Run
mise use [email protected] to add another tool to the project, or
mise use --global node@24 to set a personal default in
~/.config/mise/config.toml.
To see what mise loaded in this directory:
mise config ls # config files in use here
mise ls --current # tool versions selected by those files
mise doctor # checks the installation and shell activation
4. Activate mise in your shell (optional)
Activation puts a project's tools on your PATH and sets its environment
variables when you enter the project, so you can run node without
mise exec. If you installed with mise.run, run the commands for your
shell once:
# fish
mkdir -p ~/.config/fish
echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish
Open a new shell. In my-project, node --version now prints v24.x.x. For
PowerShell, Nushell, and other shells, or for mise installed another way, see
Shell setup.
Where to go next
| To | Read |
| --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Follow the full tutorial | Getting started |
| Add mise to a project you already work on | Existing projects |
| Join a project that already has a mise.toml | Review its config, then run mise install and mise tasks ls (details) |
| Set up another shell or completions | Shell setup |
| Find a tool | Registry |
| Use mise in an editor or CI | Editors and IDEs · Continuous integration |
| Learn the main features | Dev tools · Environments · Tasks |
| Set up a new machine | Bootstrap · Dotfiles |
| Look up a command, setting, or config key | CLI reference · Settings · mise.toml |
| Fix a problem | Troubleshooting · FAQ |
| Contribute to mise or its docs | Contributing · Writing docs |
Troubleshooting first, and
include the command you ran, a minimal mise.toml, the expected and actual
behavior, and your mise doctor output after you review it for private
details.