asdf、nvm、pyenv、direnv、makeを1つのツールに置き換えるポリグロット開発環境マネージャー。ツールのバージョン、環境変数、プロジェクトタスクを全て1つの設定ファイルから管理します。
| プラットフォーム | コマンド |
|---|
| macOS/Linux (推奨) | 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 (全プラットフォーム) | cargo install mise |
| Nix | nix-env -iA nixpkgs.mise |
| Docker | docker run jdx/mise |
| シェル | 設定ファイル | 追加するコマンド |
|---|
| Bash | ~/.bashrc | eval "$(mise activate bash)" |
| Zsh | ~/.zshrc | eval "$(mise activate zsh)" |
| Fish | ~/.config/fish/config.fish | mise activate fish | source |
| PowerShell | プロファイル | mise activate pwsh | Out-String | Invoke-Expression |
| コマンド | 説明 |
|---|
mise use node@22 | Node.js 22をインストールしてカレントディレクトリに設定 |
mise use python@3.12 | Python 3.12をカレントディレクトリに設定 |
mise use --global node@22 | Node.js 22をグローバルデフォルトとして設定 |
mise use node@lts | 最新のLTSバージョンを使用 |
mise use node@latest | 最新の絶対的なバージョンを使用 |
mise install | mise.toml / .tool-versionsからすべてのツールをインストール |
mise install node | 設定されたNode.jsバージョンをインストール |
mise install node@20 | 特定のバージョンをインストール |
mise uninstall node@18 | 特定のバージョンを削除 |
mise upgrade node | Node.jsを最新の一致するバージョンにアップグレード |
mise upgrade | すべてのツールをアップグレード |
mise ls | インストールされたすべてのツールバージョンをリスト表示 |
mise ls node | インストールされたNode.jsバージョンをリスト表示 |
mise ls-remote node | 利用可能なすべてのNode.jsバージョンを表示 |
mise which node | アクティブなnodeバイナリへのパスを表示 |
mise where node@22 | Node.js 22のインストールディレクトリを表示 |
mise search python | 「python」に一致する利用可能なツールを検索 |
mise exec node@20 -- node -v | 特定のツールバージョンでコマンドを実行 |
Node.js、Python、Ruby、Go、Rust、Java、Erlang、Elixir、PHP、Terraform、kubectl、Helm、Deno、Bunなど、プラグインを通じて数百種類以上。
| コマンド | 説明 |
|---|
mise set MY_VAR=value | カレントディレクトリに環境変数を設定 |
mise set --global API_KEY=xyz | グローバル環境変数を設定 |
mise unset MY_VAR | 環境変数を削除 |
mise env | アクティブなすべての環境変数を表示 |
mise env --json | 環境変数をJSONで表示 |
| コマンド | 説明 |
|---|
mise run build | 「build」タスクを実行 |
mise run test | 「test」タスクを実行 |
mise run lint -- --fix | 追加の引数付きでタスクを実行 |
mise tasks ls | 利用可能なすべてのタスクをリスト表示 |
mise tasks info build | 「build」タスクの詳細を表示 |
mise tasks add build "npm run build" | 新しいタスクを作成 |
mise tasks edit build | エディタでタスクを編集 |
mise tasks deps | タスク依存関係ツリーを表示 |
mise tasks validate | タスク設定を検証 |
# プロジェクトルートの.mise.tomlまたはmise.toml
[tools]
node = "22" # メジャーバージョンを正確に指定
python = "3.12" # マイナーバージョンを正確に指定
terraform = "latest" # 常に最新
ruby = "3.3.0" # パッチバージョンを正確に指定
go = "prefix:1.22" # 最新の1.22.x
[env]
NODE_ENV = "development"
DATABASE_URL = "postgres://localhost/mydb"
# .envファイルから読み込む
_.file = ".env"
[tasks.build]
description = "Build the project"
run = "npm run build"
depends = ["install"] # 最初に'install'を実行
[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 — asdfと互換
node 22.0.0
python 3.12.1
ruby 3.3.0
- カレントディレクトリの
mise.toml
- 親ディレクトリの
mise.toml(上方向に探索)
~/.config/mise/config.toml(グローバル)
| コマンド | 説明 |
|---|
mise doctor | 設定の問題を診断 |
mise version | miseのバージョンを表示 |
mise self-update | mise自体を更新 |
mise cache clear | ダウンロードとビルドキャッシュをクリア |
mise reshim | shimファイルを再生成 |
mise deactivate | 現在のシェルでmiseを無効化 |
mise lock | 再現可能なインストール用のロックファイルを作成 |
mise config ls | アクティブなすべての設定ファイルをリスト表示 |
| コマンド | 説明 |
|---|
mise plugins ls | インストールされたプラグインをリスト表示 |
mise plugins install terraform | プラグインをインストール |
mise plugins update | すべてのプラグインを更新 |
mise plugins update terraform | 特定のプラグインを更新 |
mise backends ls | 利用可能なツールバックエンドをリスト表示 |
# シェル設定からnvmを削除、その後:
mise use --global node@$(node -v | sed 's/v//')
# miseは.tool-versionsファイルをネイティブで読み取る
# miseをインストールしてアクティブ化するだけ — 既存の.tool-versionsファイルが動作
# 環境変数をmise.tomlの[env]セクションに移動
# miseはディレクトリスコープの環境変数をネイティブで処理
# 新しいプロジェクトをセットアップ
cd ~/projects/my-app
mise use node@22 python@3.12
mise set NODE_ENV=development
# プロジェクトをクローンしてブートストラップ
git clone repo && cd repo
mise install # mise.tomlからすべてのツールをインストール
# プロジェクトタスクを実行
mise run dev # 開発サーバーを起動
mise run test # テストを実行
mise run build # 本番用にビルド
# プロジェクト間でツールバージョンを確認
mise ls
# ツールを最新に保つ
mise upgrade # すべてのツールを最新にアップグレード
| 機能 | asdf | nvm | direnv | mise |
|---|
| マルチ言語 | あり | Nodeのみ | なし | あり |
| 環境変数 | なし | なし | あり | あり |
| タスクランナー | なし | なし | なし | あり |
| 設定ファイル | .tool-versions | .nvmrc | .envrc | mise.toml + .tool-versions |
| 速度 | 遅い(シェル) | 中程度 | 高速 | 高速(Rust) |
| Shim | あり | あり | なし | あり |