はじめに
「新しいプロジェクトに参加したら、Node.js のバージョンが違う」「Python と Terraform と AWS CLI のバージョン管理がバラバラで README が長くなっていく」——こういう経験、ありませんか?
2026年現在、開発環境のバージョン管理で最もおすすめできるツールの一つが mise(ミーズ)です。
mise は単に言語のバージョンを切り替えるだけでなく、
- ツールのインストール
- 環境変数の管理
- タスクランナー
までを一つの mise.toml で完結できる「開発環境の統合ツール」です。
この記事では、
- mise のインストール
- 基本的な使い方
- 実践的な
mise.tomlの書き方 - チーム導入のコツ
までを、実際に使える形で解説します。
mise とは?
mise は Rust 製の開発ツールマネージャです。
主な特徴は以下の通りです。
| 項目 | 内容 |
|---|---|
| 対応ツール | Node.js / Python / Go / Ruby / Terraform / AWS CLI / kubectl など数百種類 |
| 設定ファイル |
mise.toml(TOML形式で読みやすい) |
| 互換性 | 既存の .tool-versions や .nvmrc も読める |
| 速度 | シェル起動が非常に速い(shim方式) |
| タスク |
mise run でプロジェクトのタスクを実行可能 |
| 環境変数 |
[env] セクションでプロジェクト単位の環境変数を管理 |
asdf を使っていた人はほぼそのまま移行できますし、新しく始める人にもおすすめです。
インストール
macOS / Linux
curl https://mise.run | sh
インストール後、シェルに有効化します。
zsh の場合
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
source ~/.zshrc
bash の場合
echo 'eval "$(mise activate bash)"' >> ~/.bashrc
source ~/.bashrc
fish の場合
echo 'mise activate fish | source' >> ~/.config/fish/config.fish
インストール確認:
mise --version
Windows
winget install jdx.mise
基本的な使い方
1. プロジェクトで使うツールを指定する
プロジェクトのルートに mise.toml を作成します。
[tools]
node = "22"
python = "3.12"
terraform = "1.9"
これだけで、このディレクトリに入ったときに自動で指定バージョンが使われるようになります。
# ツールをインストール
mise install
# 現在の状態を確認
mise ls
2. グローバルに設定したい場合
mise use -g node@22
mise use -g python@3.12
3. よく使うコマンド
| コマンド | 説明 |
|---|---|
mise install |
現在のプロジェクトで必要なツールをインストール |
mise use <tool>@<version> |
バージョンを指定してインストール&設定 |
mise ls |
インストール済みツール一覧 |
mise ls-remote <tool> |
利用可能なバージョン一覧 |
mise current |
現在有効なバージョンを表示 |
mise which <command> |
実際に使われているバイナリのパスを表示 |
実践的な mise.toml の例
実際のプロジェクトでよく使う構成例です。
[tools]
node = "22.11.0"
python = "3.12.7"
terraform = "1.9.8"
aws-cli = "2.17.0"
kubectl = "1.31.0"
[env]
# プロジェクト固有の環境変数
NODE_ENV = "development"
PYTHONPATH = "{{config_root}}/src"
# .env ファイルも読み込める
_.file = ".env"
[tasks]
# よく使うタスクを定義
dev = "npm run dev"
test = "pytest -q"
fmt = "ruff format . && prettier --write ."
lint = "ruff check . && eslint ."
setup = "mise install && npm install && pip install -r requirements.txt"
これで以下のように使えます。
mise run setup # 初期セットアップ
mise run dev # 開発サーバー起動
mise run test # テスト実行
チームで導入するときのポイント
1. README を大幅に簡略化できる
導入前
## 環境構築
1. Node.js 22 をインストール
2. Python 3.12 をインストール
3. Terraform 1.9 をインストール
4. ...(長い)
導入後
## 環境構築
1. mise をインストール(https://mise.jdx.dev)
2. プロジェクトルートで以下を実行
mise install
mise run setup
これだけで新メンバーのオンボーディングがかなり楽になります。
2. CI でも同じ設定を使う
GitHub Actions の例:
- uses: jdx/mise-action@v2
with:
version: latest
- run: mise install
- run: mise run test
ローカルと CI で同じバージョン・同じタスクを使えるのが大きなメリットです。
3. 既存の asdf / nvm からの移行
.tool-versions がある場合、mise はそれを自動で読みます。
段階的に mise.toml に移行していくのがおすすめです。
# 既存の .tool-versions を確認
mise config ls
便利な Tips
-
遅延インストール(Lazy)
2026年の新しい機能で、ツールを実際に使うまでインストールを遅らせることができます。[tools] node = { version = "22", lazy = true } -
複数バージョンの切り替え確認
mise use node@20 node -v # → v20.x mise use node@22 node -v # → v22.x -
ディレクトリを出たら元に戻る
mise はプロジェクトのディレクトリを出ると、グローバル設定やシステム設定に戻ります。
まとめ
mise を使うメリットを改めて整理すると:
- プロジェクトごとにツールのバージョンを宣言できる
- 環境変数とタスクも一緒に管理できる
- チームの環境構築手順を劇的に簡略化できる
- ローカルと CI を揃えやすい
- asdf からの移行コストが低い
「開発環境を整えるのに時間を使いたくない」「チームのセットアップを楽にしたい」という人には、ぜひ一度試してみてほしいツールです。
まずは個人のプロジェクトで mise.toml を書いてみるところから始めてみてください。
おすすめタグ
mise 開発環境 バージョン管理 asdf Node.js Python ツール
この内容で Qiita に投稿できます。必要であればタイトルを変えたり、特定の言語(Node.js / Python / Go など)に絞ったバージョンも作成できます。希望があれば教えてください。