| name | mise-tool-management |
| user-invocable | false |
| description | Use when managing development tool versions with Mise. Covers installing tools, version pinning, and replacing language-specific version managers. |
| allowed-tools | ["Read","Write","Edit","Bash","Grep","Glob"] |
Mise - Tool Management
Managing development tool versions across projects with Mise as a unified version manager.
Basic Tool Installation
Installing Tools
mise install node@20.10.0
mise install python@3.12.0
mise install rust@1.75.0
mise install node@latest
mise install python@latest
mise install
Setting Tool Versions
mise use --global node@20
mise use node@20.10.0
mise use python@3.12 rust@1.75
mise use node@latest
Tool Configuration in mise.toml
Basic Tool Definitions
[tools]
node = "20.10.0"
python = "3.12.0"
rust = "1.75.0"
terraform = "1.6.0"
Version Prefixes
[tools]
node = "20.10"
node = "20"
node = "latest"
terraform = "1.6"
Multiple Versions
[tools]
node = ["20.10.0", "18.19.0"]
python = ["3.12", "3.11", "3.10"]
mise shell node@18.19.0
Tool-Specific Configuration
Node.js Configuration
[tools]
node = { version = "20.10.0", postinstall = "corepack enable" }
Python with Virtual Environments
[tools]
python = "3.12"
[env]
_.python.venv = { path = ".venv", create = true }
Custom Tool Sources
[tools]
"cargo:eza" = "latest"
"npm:typescript" = "5.3"
my-tool = "git:https://github.com/org/tool.git"
Supported Languages & Tools
Core Tools
[tools]
bun = "1.0"
deno = "1.38"
elixir = "1.15"
erlang = "26.1"
go = "1.21"
java = "21"
node = "20.10"
python = "3.12"
ruby = "3.3"
rust = "1.75"
zig = "0.11"
terraform = "1.6"
kubectl = "1.28"
awscli = "2.13"
Package Managers
[tools]
"npm:pnpm" = "8.10"
"npm:yarn" = "4.0"
"cargo:cargo-binstall" = "latest"
"go:github.com/golangci/golangci-lint/cmd/golangci-lint" = "latest"
Tool Version Strategies
Lock to Specific Versions
[tools]
node = "20.10.0"
terraform = "1.6.4"
Use Ranges for Flexibility
[tools]
node = "20"
python = "3.12"
Latest for Experimentation
[tools]
rust = "latest"
bun = "latest"
Managing Tool Aliases
Creating Aliases
mise alias set node lts 20.10.0
mise alias set --global python3 python@3.12
Using Aliases in Configuration
[tools]
node = "lts"
python = "3.12"
Tool Verification
Check Installed Tools
mise list
mise current
mise doctor
Tool Information
mise ls-remote node
mise ls-remote python
mise latest node
Migration from Other Version Managers
From asdf
cat .tool-versions
mise use node@20.10.0 python@3.12.0
From nvm
cat .nvmrc
mise use node@$(cat .nvmrc)
From pyenv
mise use python@$(cat .python-version)
Best Practices
Pin Production Dependencies
[tools]
node = "20.10.0"
terraform = "1.6.4"
postgres = "16.1"
Document Required Tools
[tools]
node = "20.10.0"
python = "3.12.0"
terraform = "1.6.4"
kubectl = "1.28.0"
[env]
PROJECT_NAME = "my-app"
Use Tool-Specific Settings
[tools]
node = { version = "20.10.0", postinstall = "corepack enable" }
python = { version = "3.12", venv = ".venv" }
Verify Tool Installation
mise install --check
mise doctor
mise current node
mise current python
Common Patterns
Monorepo Tool Management
[tools]
node = "20.10.0"
terraform = "1.6.4"
[tools]
"npm:typescript" = "5.3"
"npm:prisma" = "5.7"
[tools]
"npm:next" = "14.0"
Development vs Production
[tools]
node = "20.10.0"
postgres = "16.1"
[tools]
"npm:nodemon" = "latest"
"cargo:cargo-watch" = "latest"
Tool Updates Strategy
mise outdated
mise upgrade node
mise upgrade
mise use node@20
Anti-Patterns
Don't Mix Version Managers
nvm use 20
mise use node@20
mise use node@20
Don't Hardcode Tool Paths
/Users/me/.local/share/mise/installs/node/20.10.0/bin/node
mise exec -- node
mise x -- node
Don't Skip Version Constraints
[tools]
node = "latest"
[tools]
node = "20.10.0"
node = "20"
Don't Ignore Tool Dependencies
[tools]
terraform = "1.6"
[tools]
terraform = "1.6.4"
kubectl = "1.28.0"
helm = "3.13.0"
Advanced Patterns
Conditional Tool Installation
[tools]
node = "20.10.0"
python = "3.12"
[tools."cargo:watchexec-cli"]
platforms = ["linux", "darwin"]
version = "latest"
Tool Installation Hooks
[tools]
node = {
version = "20.10.0",
postinstall = '''
corepack enable
npm install -g npm@latest
'''
}
Backend Selection
[tools]
node = "core:20.10.0"
ruby = "asdf:3.3.0"
Related Skills
- task-configuration: Defining tasks that use managed tools
- environment-management: Managing environment variables with tools