Skip to content

mise

One CLI to manage per-project dev tool versions, environment variables, and tasks.

Stars
35.7k
Forks
1.5k
Licence
MIT
Language
Rust
Last update
4 days ago
Type
CLI

What it is

mise (short for mise-en-place) is a command-line tool that manages the software a project needs: language runtimes and other dev tools, with a separate version per project. It also loads environment variables and runs project tasks from one mise.toml file, so the same setup can work in your shell, editor, and CI. The README says it can also set up a machine with system packages, dotfiles and background services.

  • Pin Node.js 24 and Python 3.14 for one project in mise.toml and install them with mise install
  • Run a project task such as build or test with its dependencies handled by mise run
  • Load a .env file and add a project bin directory to PATH automatically when entering a folder
  • Run a single command with a specific tool version without changing your shell using mise exec

Great for

  • Developers who work on several projects that need different Node.js, Python or Rust versions
  • Teams that want a committed config file so teammates and CI get the same tool versions
  • People who currently juggle .tool-versions, .nvmrc or .python-version files
  • Anyone who wants one place to define project tasks and environment variables

Not ideal for

  • People who only work on one project with a single tool and are happy with their current setup, since the benefit is mostly for multi-project or team use
  • Users who want a purely graphical app; the README describes a command-line tool
  • Environments where installing a new binary and adding a shell hook is not allowed, since the optional shell activation changes shell startup
Step-by-step guide: how to use miseInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    See the README

    Install on macOS or Linux

    curl -fsSL https://mise.run | sh

    Install on Windows

    winget install jdx.mise
  2. 2

    Run it

    • Install mise with the command for your system and check it with ~/.local/bin/mise --version
    • Try a tool without changing your shell with mise exec node@24 -- node --version
    • In a project folder, run mise use node@24 to record a version in mise.toml
    • Run mise run hello after adding a task to see the task run with the project's environment
  3. 3

    Get the most out of it

    • Run mise lock to record exact versions and checksums so teammates and CI match
    • Use mise use --global to set personal default tool versions
    • Enable shell activation so PATH and project environment variables update when you change directories
    • Put reusable task scripts in a mise-tasks/ folder and use task dependencies and parallel runs
    • Use mise outdated and mise upgrade to find and install newer tool releases

Downloads

Strengths

  • Covers tool versions, environment variables and tasks in one config file
  • The README lists a registry of over 1,000 tools and several installation backends such as GitHub releases, Cargo and npm
  • Project-specific versions are kept separate, so projects do not conflict with each other

Trade-offs

  • The README shows many features, so a new user needs to learn several concepts such as backends, tasks and shell activation
  • The README is truncated here, so details of the registry, security and advanced configuration could not be checked
  • Adopting it fully means committing a config file and asking teammates to install the tool

How it compares

ProjectStarsTypeLevelUpdatedBest for
mise (this)35.7kCLIintermediate4 days agoDevelopers who work on several projects that need different Node.js, Python or Rust versions
asdf25.6kDev toolbeginner5 days agoDevelopers who work on several projects that need different language versions
nvm95.7kDev toolbeginner8 days agoDevelopers who work on several Node.js projects that need different versions
pyenv45.2kDev toolintermediate5 days agoDevelopers who work on several Python projects that need different Python versions
direnv15.5kDev toolbeginner11 days agoDevelopers who juggle several projects with different environment variables

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.