mise について
mise のツールバージョン、環境、タスク管理を解説するリファレンススキルです。プロジェクト間で再現可能な開発環境を整えるためのコマンドと設定例をまとめています。
主な機能
- 01ツールバージョンのインストールと固定
- 02環境変数とシェルの有効化設定
- 03タスクの定義、実行、監視
- 04ツールのインストール状況確認と保守
- 05設定とロックファイルの管理
活用シーン
- 01mise.toml でプロジェクトのツールバージョンを固定
- 02ビルドやテストの実行と変更の監視
- 03チームのプロジェクト間で環境を統一
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zenobi-us/ dotfiles --skill miseインストール後、Claude Code で/miseを入力して読み込まれたか確認します。
詳細
Mise エキスパート
バージョン管理、ツールのオーケストレーション、環境設定、自動化に関する深い知識を持つ mise の専門家です。再現性の高い高速な開発環境を実現し、ワークフローを効率化するために、mise を活用できるようユーザーを支援します。
主な専門分野
ツール管理
- ツールのインストール:
mise install node@20、mise install cargo:ripgrep - バージョンの固定:
mise use node@20 -g(グローバル)、mise use [email protected](プロジェクト) - バージョンの照会:
mise ls(インストール済み一覧)、mise ls-remote node(利用可能なバージョン) - ツール情報:
mise tool node、mise latest node、mise where node - 複数のバックエンドからのインストール:npm パッケージ、cargo バイナリ、asdf プラグイン、システムパッケージ
- インストールパス:
mise where node、mise which node - 同期:
mise sync(nvm、rbenv、pyenv など、ほかのバージョンマネージャーから同期)
環境制御
- 変数の設定:
mise set NODE_ENV=production - シェルの有効化:
mise activate(シェルセッションを初期化)、mise deactivate - 実行コンテキスト:
mise x -- npm install(現在の環境)、mise x node@20 -- node app.js(指定したツールを使用) - 環境変数のエクスポート:
mise env(有効化に必要な環境変数を表示) - シェル環境:
mise en(mise 環境で新しいシェルを開始) - 設定ベースの環境:環境変数は
mise.<ENV>.tomlから読み込まれます - スコープを指定した実行:環境の選択に
-E ENVフラグを使用
タスクの自動化
- タスク定義:
[tasks]の下にmise.tomlで設定 - タスクの実行:
mise run build、mise r build(短縮形) - タスクの監視:
mise watch build(ファイルの変更時に再実行) - タスクの一覧表示:
mise tasks/mise t - タスクの依存関係:タスクの依存関係グラフと実行順序
- 並列実行:
-j/--jobsフラグで並列処理数を制御(デフォルト:8) - アドホック実行:短縮形の
mise build(タスクを直接実行)
設定と永続化
- 設定ファイル:
mise.toml(プロジェクト)、~/.config/mise/settings.toml(ユーザー)、mise.<ENV>.toml(環境固有) - 設定の管理:確認・編集には
mise configコマンドを使用 - フォーマット:
mise fmt(mise.toml をフォーマット) - ツールの固定:mise.toml の
[tools]セクション - タスク定義:コマンド、depends、env を指定する
[tasks]セクション - 設定:
mise settings(すべて表示)、mise settings color=0(色を無効化) - グローバルのデフォルト:ユーザーレベルの設定には
-g/--globalフラグを使用 - 信頼モデル:
mise trustで設定ファイルを信頼済みとしてマーク
保守と診断
- ヘルスチェック:
mise doctor(インストールの問題を診断) - 古いツール:
mise outdated(更新が必要なツールを表示) - ツールのアップグレード:
mise upgrade/mise up(すべて)、mise up node@20(指定したツール) - 対話型アップグレード:
mise up --interactive(メニューから選択) - キャッシュ管理:
mise cache(キャッシュ済みアーティファクトを管理) - シムの再生成:
mise reshim(インストール後に bin パスのシムを更新) - プルーニング:
mise prune(使用されていないツールのバージョンを削除) - ロックファイル:
mise lock(再現性のためにロックファイルのチェックサムを更新)
プラグインとレジストリシステム
- レジストリの閲覧:
mise registry(利用可能なツールの一覧) - ツールの検索:
mise search node(パターンに一致するツールを検索) - プラグイン管理:
mise plugins(ソースを管理) - バックエンド管理:
mise backends(ツールのバックエンドを管理) - 利用可能なバックエンド:npm、cargo、asdf、system、go、git、pipx など
- ツールのテスト:
mise test-tool node@20(インストールが正常に動作することを確認)
開発パターン
プロジェクトのセットアップ
mise use node@20 # Add to local mise.toml
mise use [email protected]
mise use -g rust@latest # Set global defaults
タスクの実行
mise run build # Execute build task
mise watch test # Rerun tests on file change
mise x -- npm install # Install with mise env loaded
環境制御
mise set DATABASE_URL=postgres://localhost/dev
mise activate # Init shell (add to shell profile)
mise en # Start new shell with full environment
保守
mise doctor # Diagnose issues
mise up --interactive # Menu-driven upgrade
mise prune # Clean unused versions
用途別コマンドリファレンス
「〜したい場合」
…ツールをインストールする
mise install [email protected]- 特定のバージョンmise install node@20- プレフィックスに一致するバージョンmise install node- 設定ファイルで指定されたバージョンmise install- 設定ファイルに記載されたすべてのツールmise install cargo:ripgrep- cargo バックエンド経由mise install npm:prettier- npm バックエンド経由
…ツールのバージョンを使用する
mise use node@20- プロジェクト単位(ローカルの mise.toml に追加)mise use -g node@20- グローバル(~/.config/mise/settings.toml に追加)mise use node@latest- 入手可能な最新バージョンmise shell node@18- 現在のセッションのみ
…ツールまたはタスクを実行する
mise x -- npm install- mise の環境でコマンドを実行mise x node@20 -- node app.js- 特定のツールバージョンで実行mise run build- build タスクを実行mise watch build- build タスクをウォッチモードで実行mise build-mise run buildの短縮形
…インストール済みのものを確認する
mise ls- インストール済みのツールとバージョンを表示mise ls-remote node- 入手可能なバージョンを表示mise outdated- 更新が必要なツールを表示mise which node- bin のパスを表示mise where node- インストール先のパスを表示
…環境を管理する
mise set NODE_ENV=production- 設定ファイルに変数を設定mise env- 一度だけ有効化するために変数をエクスポートmise activate- シェルを初期化(プロファイルに追加)mise en- すべての環境変数を適用した新しいシェルを起動
…ツールをメンテナンスする
mise doctor- 問題を診断mise up --interactive- メニューからアップグレードmise sync- nvm/rbenv/pyenv から同期mise prune- 使用されていないバージョンを削除mise lock- ロックファイルを更新
…ツールを見つける
mise search node- レジストリを検索mise registry- 利用可能なものをすべて一覧表示mise latest node- 最新バージョンを取得
Mise.toml の構成
# Tool versions
[tools]
node = "20.10.0"
python = "3.11"
rust = "latest"
# Environment variables
[env]
NODE_ENV = "development"
DATABASE_URL = "postgres://localhost/dev"
# Tasks
[tasks]
build = "npm run build"
test = { cmd = "npm test", watch = "src/**" }
dev = { cmd = "npm run dev", depends = ["build"] }
# Environment-specific overrides
[env.production]
NODE_ENV = "production"
よくあるパターン
ローカル開発
# Setup: pin tools in mise.toml
mise use node@20
mise use [email protected]
# Activate in shell (add to ~/.zshrc or ~/.bashrc)
eval "$(mise activate bash)"
# Run commands
mise x -- npm install
mise x -- npm start
タスクベースのワークフロー
# Define tasks in mise.toml
[tasks]
setup = "npm install && npm run build"
dev = { cmd = "npm run dev", watch = "src/**", depends = ["setup"] }
test = { cmd = "npm test", watch = "src/**" }
# Run
mise run setup
mise watch dev
プロジェクト間の一貫性
# .gitignore
.mise.local.toml
# Commit mise.toml
git add mise.toml
# Team members get same versions
mise install
環境固有の設定
# mise.toml
[env.development]
DEBUG = "1"
[env.production]
NODE_ENV = "production"
LOG_LEVEL = "error"
[env.ci]
CI = "true"
続いて、mise -E production run build を実行します。
簡単な診断
mise doctor- ヘルスチェックを実行し、シェル統合、アクティブな設定ファイル、ツールの状態を表示mise settings- アクティブな設定をすべて表示mise bin-paths- アクティブな bin パスを順番にすべて一覧表示mise --version- 現在の mise のバージョンmise cache- キャッシュを管理(クリア、一覧表示)
統合ポイント
- シェル:bash、zsh、fish、nu(
activate経由) - CI/CD:GitHub Actions、GitLab CI などで環境を簡単にセットアップ
- タスクランナー:npm scripts、Make、タスクランナーの代わりとして使用可能
- バージョン管理:ロックファイルにより、マシン間で再現性を確保
- コードエディター:VSCode/Zed は mise の環境を読み取り可能
- Docker:Dockerfile で mise を使用してビルドの一貫性を確保
ベストプラクティス
- mise.toml をコミットする - チーム内の一貫性を確保
- タスクの watch を使う - 繰り返しの実行を自動化(
mise watch test) - バージョンを固定する - 意図的な場合を除き、
@latestによる予期しない変更を避ける - プロジェクト単位の設定を使う -
mise useはグローバルではなく、ローカルの mise.toml に追加 - 定期的にアップグレードする - 安全に更新するには
mise up --interactiveを使用 - ロックファイルを管理対象にする - 再現性のためにロックファイルをコミット
- 並列処理を活用する - マシンに合わせて
-j/--jobsを調整 - ツールの互換性をテストする - コミット前に
mise test-tool node@20を実行 - 環境を分ける - コンテキスト(dev、prod、ci)に応じて
mise.<ENV>.tomlを使用 - シェルを有効化する -
eval "$(mise activate zsh)"はコマンドごとではなく、一度だけプロファイルに追加
パフォーマンスのヒント
- Mise の有効化は高速です。
reshimで shim をキャッシュできます - 分離が必要な場合は
mise execを使用します(シェルは変更されません) --jobsフラグでツールのインストールを並列化できます- ロックファイルにバージョン解決結果をキャッシュできます
- バックグラウンドでのツール同期は、処理のホットパス外で実行できます
コメント
Markdown 対応