mcpField
M
mise

mise

github.com/zenobi-us開発6957 回インストール1 日前に更新
リポジトリ

mise について

mise のツールバージョン、環境、タスク管理を解説するリファレンススキルです。プロジェクト間で再現可能な開発環境を整えるためのコマンドと設定例をまとめています。

主な機能

  1. 01ツールバージョンのインストールと固定
  2. 02環境変数とシェルの有効化設定
  3. 03タスクの定義、実行、監視
  4. 04ツールのインストール状況確認と保守
  5. 05設定とロックファイルの管理

活用シーン

  1. 01mise.toml でプロジェクトのツールバージョンを固定
  2. 02ビルドやテストの実行と変更の監視
  3. 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 を使用してビルドの一貫性を確保

ベストプラクティス

  1. mise.toml をコミットする - チーム内の一貫性を確保
  2. タスクの watch を使う - 繰り返しの実行を自動化(mise watch test)
  3. バージョンを固定する - 意図的な場合を除き、@latest による予期しない変更を避ける
  4. プロジェクト単位の設定を使う - mise use はグローバルではなく、ローカルの mise.toml に追加
  5. 定期的にアップグレードする - 安全に更新するには mise up --interactive を使用
  6. ロックファイルを管理対象にする - 再現性のためにロックファイルをコミット
  7. 並列処理を活用する - マシンに合わせて -j/--jobs を調整
  8. ツールの互換性をテストする - コミット前に mise test-tool node@20 を実行
  9. 環境を分ける - コンテキスト(dev、prod、ci)に応じて mise.<ENV>.toml を使用
  10. シェルを有効化する - eval "$(mise activate zsh)" はコマンドごとではなく、一度だけプロファイルに追加

パフォーマンスのヒント

  • Mise の有効化は高速です。reshim で shim をキャッシュできます
  • 分離が必要な場合は mise exec を使用します(シェルは変更されません)
  • --jobs フラグでツールのインストールを並列化できます
  • ロックファイルにバージョン解決結果をキャッシュできます
  • バックグラウンドでのツール同期は、処理のホットパス外で実行できます

コメント