--- 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. ![mise command execution result](https://games.aidebatehub.com/assets/mise-demo.png) 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](https://games.aidebatehub.com/assets/mise-demo2.png) 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.