mise — language and tool version management
💬 "mise command"
mise provides language and tool version management by managing the versions of multiple language runtimes and CLI tools with a single configuration file.
It uses asdf-compatible plugins as-is. It supports dozens of languages like Node, Python, Rust, Go, etc.
- Concept: It uses asdf-compatible plugins as-is.
- Key Features: It supports dozens of languages like Node, Python, Rust, Go, etc.
- Advantages: It allows project-level version pinning with a .tool-versions file.
- Usage: It automatically runs scripts after installation using Hooks.
Installation and Download
mise is installed via a package manager or an official script.
| Environment | Command | |
|---|---|---|
| Ubuntu / Debian | curl https://mise.run | sh |
| apt (Official PPA) | sudo apt install mise | |
| macOS (brew) | brew install mise | |
| Rust cargo | cargo install mise --locked | |
| Verification | mise --version |
Installation is verified with mise --version.
Frequently Used Options
| Option | Description |
|---|---|
| -g, --global | Installs in the global configuration. |
| --cd <dir> | Installs based on a specific directory configuration. |
| -y, --yes | Proceeds without confirmation prompt. |
| trust | Adds the project's mise.toml to the trust list. |
| ls | Displays the list of installed tools. |
Three Essential Command Combinations
mise use node@22— Sets Node 22 for the current project.mise use python@3.13— Sets Python 3.13 for the current project.mise install— Installs all tools from the configuration file.
💬 "Show me an example of using mise on a real server."
I've organized common scenarios encountered on a production server in order.
Step 1 · Installation Check
Checks if it's installed.
mise --version || curl https://mise.run | sh
Step 2 · Project Initialization
Sets up Node 22 for a new project.
mkdir demo && cd demo && mise use node@22
Step 3 · Configuration Check
Checks the generated mise.toml.
cat mise.toml && mise install
Actual Execution Screen
The result of setting Node 22 with mise and checking the configuration file.
!mise command execution result
Actual production server
In practice, it's used like this
1. Team-wide version pinning
Situation — Pin the same Node version for the entire team.
mise use node@22 && cat mise.toml
Result — node = "22.11.0" is recorded under [tools].
Point — Committing mise.toml to git ensures it's reproduced on clone.
2. Per-project isolation
Situation — One project uses Node 20, another uses Node 22.
cd app-a && mise use node@20
cd app-b && mise use node@22
Result — mise.toml automatically switches per directory.
Point — Isolation is achieved on a per-project basis without global installation.
Actual Execution Screen
The result of installing tools with mise install and checking the list.
!mise command execution result 2
Actual production server
Points to Note
- Since mise install downloads binaries over the network, mirror configuration may be needed in internal networks.
- Using it simultaneously with asdf may cause shims conflicts. Choose only one.
- Using sudo mise use may cause permission issues. Run it from a user account.
Source (HTML): https://games.aidebatehub.com/programs/linux/modern/mise.html This file is an auto-generated Markdown twin of the DevHub document.
AI Knowledge Hub
Visitor Comments