Un gestore di ambiente dev poliglotta che sostituisce asdf, nvm, pyenv, direnv e make in un singolo strumento. Gestisce versioni degli strumenti, variabili d’ambiente e task di progetto — tutto da un unico file di configurazione.
| Piattaforma | Comando |
|---|
| macOS/Linux (Consigliato) | curl https://mise.run | sh |
| macOS (Homebrew) | brew install mise |
| Arch Linux | sudo pacman -S mise |
| Ubuntu/Debian (apt) | sudo apt install mise |
| Fedora/RHEL | sudo dnf install mise |
| Windows (Scoop) | scoop install mise |
| Cargo (Tutte le piattaforme) | cargo install mise |
| Nix | nix-env -iA nixpkgs.mise |
| Docker | docker run jdx/mise |
| Shell | File di Configurazione | Comando da Aggiungere |
|---|
| Bash | ~/.bashrc | eval "$(mise activate bash)" |
| Zsh | ~/.zshrc | eval "$(mise activate zsh)" |
| Fish | ~/.config/fish/config.fish | mise activate fish | source |
| PowerShell | Profile | mise activate pwsh | Out-String | Invoke-Expression |
| Comando | Descrizione |
|---|
mise use node@22 | Installa Node.js 22 e imposta per directory corrente |
mise use python@3.12 | Installa Python 3.12 per directory corrente |
mise use --global node@22 | Imposta Node.js 22 come predefinito globale |
mise use node@lts | Usa l’ultima versione LTS |
mise use node@latest | Usa l’ultima versione assoluta |
mise install | Installa tutti gli strumenti da mise.toml / .tool-versions |
mise install node | Installa la versione configurata di Node.js |
mise install node@20 | Installa una versione specifica |
mise uninstall node@18 | Rimuovi una versione specifica |
mise upgrade node | Aggiorna Node.js all’ultima versione corrispondente |
mise upgrade | Aggiorna tutti gli strumenti |
mise ls | Elenca tutte le versioni degli strumenti installati |
mise ls node | Elenca versioni Node.js installate |
mise ls-remote node | Mostra tutte le versioni Node.js disponibili |
mise which node | Mostra percorso del binario node attivo |
mise where node@22 | Mostra directory di installazione per Node.js 22 |
mise search python | Cerca strumenti disponibili corrispondenti a “python” |
mise exec node@20 -- node -v | Esegui comando con versione strumento specifica |
Node.js, Python, Ruby, Go, Rust, Java, Erlang, Elixir, PHP, Terraform, kubectl, Helm, Deno, Bun, e centinaia di altri tramite plugin.
| Comando | Descrizione |
|---|
mise set MY_VAR=value | Imposta variabile env per directory corrente |
mise set --global API_KEY=xyz | Imposta variabile env globale |
mise unset MY_VAR | Rimuovi una variabile env |
mise env | Mostra tutte le variabili d’ambiente attive |
mise env --json | Mostra variabili env come JSON |
| Comando | Descrizione |
|---|
mise run build | Esegui il task “build” |
mise run test | Esegui il task “test” |
mise run lint -- --fix | Esegui task con argomenti extra |
mise tasks ls | Elenca tutti i task disponibili |
mise tasks info build | Mostra dettagli sul task “build” |
mise tasks add build "npm run build" | Crea un nuovo task |
mise tasks edit build | Modifica un task nel tuo editor |
mise tasks deps | Mostra albero dipendenze task |
mise tasks validate | Valida configurazione task |
# .mise.toml o mise.toml nella root del progetto
[tools]
node = "22" # Versione major esatta
python = "3.12" # Versione minor esatta
terraform = "latest" # Sempre l'ultima
ruby = "3.3.0" # Versione patch esatta
go = "prefix:1.22" # Ultima 1.22.x
[env]
NODE_ENV = "development"
DATABASE_URL = "postgres://localhost/mydb"
# Carica da file .env
_.file = ".env"
[tasks.build]
description = "Build the project"
run = "npm run build"
depends = ["install"] # Esegui 'install' prima
[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 — compatibile con asdf
node 22.0.0
python 3.12.1
ruby 3.3.0
mise.toml nella directory corrente
mise.toml nelle directory genitore (risalendo)
~/.config/mise/config.toml (globale)
| Comando | Descrizione |
|---|
mise doctor | Diagnostica problemi di configurazione |
mise version | Mostra versione mise |
mise self-update | Aggiorna mise stesso |
mise cache clear | Cancella cache di download e build |
mise reshim | Rigenera file shim |
mise deactivate | Disattiva mise nella shell corrente |
mise lock | Crea un lockfile per installazioni riproducibili |
mise config ls | Elenca tutti i file di configurazione attivi |
| Comando | Descrizione |
|---|
mise plugins ls | Elenca plugin installati |
mise plugins install terraform | Installa un plugin |
mise plugins update | Aggiorna tutti i plugin |
mise plugins update terraform | Aggiorna plugin specifico |
mise backends ls | Elenca backend strumenti disponibili |
# Rimuovi nvm dalla configurazione shell, poi:
mise use --global node@$(node -v | sed 's/v//')
# mise legge nativamente i file .tool-versions
# Basta installare mise e attivarlo — i file .tool-versions esistenti funzionano
# Sposta variabili env nella sezione [env] di mise.toml
# mise gestisce nativamente variabili env con scope directory
# Configura un nuovo progetto
cd ~/projects/my-app
mise use node@22 python@3.12
mise set NODE_ENV=development
# Clona e bootstrap un progetto
git clone repo && cd repo
mise install # Installa tutti gli strumenti da mise.toml
# Esegui task di progetto
mise run dev # Avvia server dev
mise run test # Esegui test
mise run build # Build per produzione
# Controlla versioni strumenti tra progetti
mise ls
# Mantieni strumenti aggiornati
mise upgrade # Aggiorna tutti gli strumenti all'ultima
| Funzionalità | asdf | nvm | direnv | mise |
|---|
| Multi-linguaggio | Sì | Solo Node | No | Sì |
| Variabili env | No | No | Sì | Sì |
| Task runner | No | No | No | Sì |
| File configurazione | .tool-versions | .nvmrc | .envrc | mise.toml + .tool-versions |
| Velocità | Lenta (shell) | Moderata | Veloce | Veloce (Rust) |
| Shim | Sì | Sì | No | Sì |