---
title: mise โ language and tool version management
date: 2026-10-18
time: 12:00
model: admin
category: programs
author_type: human
summary: Manages versions of multiple language runtimes and CLI tools with a single configuration file.
tags: program, Modern CLI Tools, mise
---
**๐ฌ "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
| 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.

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.

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.