Skip to content

mise - Dev Environment Manager Cheatsheet

A polyglot dev environment manager that replaces asdf, nvm, pyenv, direnv, and make in a single tool. Manage tool versions, environment variables, and project tasks — all from one config file.

PlatformCommand
macOS/Linux (Recommended)curl https://mise.run | sh
macOS (Homebrew)brew install mise
Arch Linuxsudo pacman -S mise
Ubuntu/Debian (apt)sudo apt install mise
Fedora/RHELsudo dnf install mise
Windows (Scoop)scoop install mise
Cargo (All platforms)cargo install mise
Nixnix-env -iA nixpkgs.mise
Dockerdocker run jdx/mise
ShellConfig FileCommand to Add
Bash~/.bashrceval "$(mise activate bash)"
Zsh~/.zshrceval "$(mise activate zsh)"
Fish~/.config/fish/config.fishmise activate fish | source
PowerShellProfilemise activate pwsh | Out-String | Invoke-Expression
CommandDescription
mise use node@22Install Node.js 22 and set for current directory
mise use python@3.12Install Python 3.12 for current directory
mise use --global node@22Set Node.js 22 as global default
mise use node@ltsUse the latest LTS version
mise use node@latestUse the absolute latest version
mise installInstall all tools from mise.toml / .tool-versions
mise install nodeInstall the configured version of Node.js
mise install node@20Install a specific version
mise uninstall node@18Remove a specific version
mise upgrade nodeUpgrade Node.js to latest matching version
mise upgradeUpgrade all tools
mise lsList all installed tool versions
mise ls nodeList installed Node.js versions
mise ls-remote nodeShow all available Node.js versions
mise which nodeShow path to active node binary
mise where node@22Show installation directory for Node.js 22
mise search pythonSearch for available tools matching “python”
mise exec node@20 -- node -vRun command with a specific tool version

Node.js, Python, Ruby, Go, Rust, Java, Erlang, Elixir, PHP, Terraform, kubectl, Helm, Deno, Bun, and hundreds more via plugins.

CommandDescription
mise set MY_VAR=valueSet env var for current directory
mise set --global API_KEY=xyzSet global env var
mise unset MY_VARRemove an env var
mise envShow all active environment variables
mise env --jsonShow env vars as JSON
CommandDescription
mise run buildRun the “build” task
mise run testRun the “test” task
mise run lint -- --fixRun task with extra arguments
mise tasks lsList all available tasks
mise tasks info buildShow details about the “build” task
mise tasks add build "npm run build"Create a new task
mise tasks edit buildEdit a task in your editor
mise tasks depsShow task dependency tree
mise tasks validateValidate task configuration
# .mise.toml or mise.toml in project root
[tools]
node = "22"               # Exact major version
python = "3.12"            # Exact minor version
terraform = "latest"       # Always latest
ruby = "3.3.0"             # Exact patch version
go = "prefix:1.22"         # Latest 1.22.x

[env]
NODE_ENV = "development"
DATABASE_URL = "postgres://localhost/mydb"
# Load from .env file
_.file = ".env"

[tasks.build]
description = "Build the project"
run = "npm run build"
depends = ["install"]      # Run 'install' first

[tasks.install]
description = "Install dependencies"
run = "npm install"

[tasks.test]
description = "Run test suite"
run = "npm test"
depends = ["build"]

[tasks.dev]
description = "Start dev server"
run = "npm run dev"
# .tool-versions — compatible with asdf
node 22.0.0
python 3.12.1
ruby 3.3.0
  1. mise.toml in current directory
  2. mise.toml in parent directories (walking up)
  3. ~/.config/mise/config.toml (global)
CommandDescription
mise doctorDiagnose configuration issues
mise versionShow mise version
mise self-updateUpdate mise itself
mise cache clearClear download and build caches
mise reshimRegenerate shim files
mise deactivateDeactivate mise in current shell
mise lockCreate a lockfile for reproducible installs
mise config lsList all active configuration files
CommandDescription
mise plugins lsList installed plugins
mise plugins install terraformInstall a plugin
mise plugins updateUpdate all plugins
mise plugins update terraformUpdate specific plugin
mise backends lsList available tool backends
# Remove nvm from shell config, then:
mise use --global node@$(node -v | sed 's/v//')
# mise reads .tool-versions files natively
# Just install mise and activate it — existing .tool-versions files work
# Move env vars to mise.toml [env] section
# mise handles directory-scoped env vars natively
# Set up a new project
cd ~/projects/my-app
mise use node@22 python@3.12
mise set NODE_ENV=development

# Clone and bootstrap a project
git clone repo && cd repo
mise install              # Installs all tools from mise.toml

# Run project tasks
mise run dev              # Start dev server
mise run test             # Run tests
mise run build            # Build for production

# Check tool versions across projects
mise ls

# Keep tools up to date
mise upgrade              # Upgrade all tools to latest
Featureasdfnvmdirenvmise
Multi-languageYesNode onlyNoYes
Env variablesNoNoYesYes
Task runnerNoNoNoYes
Config file.tool-versions.nvmrc.envrcmise.toml + .tool-versions
SpeedSlow (shell)ModerateFastFast (Rust)
ShimsYesYesNoYes