mcpField
M
mise

mise

github.com/oakoss開発20120 回インストール10 週間前に更新
リポジトリ

mise について

miseは、開発者向けの複数言語対応ツール管理コマンドラインツールです。プロジェクト単位のmise.tomlでツールのバージョン、環境変数、タスクを設定し、環境とタスクを一元管理できます。

主な機能

  1. 01複数言語のツールバージョン管理
  2. 02プロジェクトごとの環境変数設定
  3. 03タスクと依存関係の定義
  4. 04複数バックエンドからのツール導入
  5. 05変更を監視してタスクを再実行

活用シーン

  1. 01プロジェクトの複数ランタイムの固定
  2. 02再現可能な開発環境の構築
  3. 03ビルドとテストのタスク定義の集約
  4. 04CIでのプロジェクトタスク実行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/oakoss/agent-skills --skill mise

インストール後、Claude Code で/miseを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
configuration.md
environment-variables.md
migration.md
task-patterns.md
task-runner.md
tool-management.md

詳細

Mise

概要

Mise は、ツールのバージョン、環境変数、タスクの実行を単一の CLI で管理するマルチ言語対応の開発ツールマネージャーです。asdf、nvm、pyenv、direnv、Makefiles を置き換え、プロジェクトごとに統一された mise.toml 設定を使用します。

使用する場面: プロジェクトごとに複数の言語ランタイムを管理する場合、再現可能な開発環境を定義する場合、依存関係のあるプロジェクトタスクを実行する場合、散在する .nvmrc/.python-version/.tool-versions ファイルを置き換える場合、CI パイプラインを自動化する場合。

使用しない場面: すべてのツールを Docker イメージ内に置くコンテナのみのワークフロー、言語ネイティブのバージョンマネージャーですでに十分に対応できている単一言語のプロジェクト、本番環境のランタイム管理(mise は開発ツールです)。

バージョン解決の優先順位

Mise は、次のソースを優先順位の高い順に確認して、ツールのバージョンを解決します。

  1. MISE_<TOOL>_VERSION 環境変数
  2. カレントディレクトリの mise.toml
  3. 親ディレクトリの mise.toml(ディレクトリツリーを上方向にたどります)
  4. .tool-versions ファイル(asdf との互換性用)
  5. レガシーファイル(.nvmrc、.python-version、.ruby-version)
  6. ~/.config/mise/config.toml(グローバルのデフォルト)

クイックリファレンス

パターンコマンド/設定主なポイント
ツールをインストールするmise installmise.toml を読み込み、記載されているすべてのツールをインストールします
ツールのバージョンを固定するmise use node@22現在のディレクトリの mise.toml に書き込みます
グローバルに固定するmise use -g node@22~/.config/mise/config.toml に書き込みます
タスクを実行するmise run buildmise.toml で定義されたタスクを実行します
引数を付けて実行するmise run test -- --watch-- の後の引数をタスクに渡します
ウォッチモードmise watch buildソースが変更されるとタスクを再実行します
タスクを一覧表示するmise tasks利用可能なすべてのタスクを表示します
環境変数を設定するmise.toml の [env] セクションディレクトリごとに設定され、cd 時に自動的に有効になります
.env ファイルを読み込む_.file = ".env"dotenv を環境変数に読み込みます
PATH を拡張する_.path = ["./bin"]ディレクトリを PATH の先頭に追加します
インストール済みのツールを一覧表示するmise lsインストール済みのすべてのツールのバージョンを表示します
古いバージョンのツールを確認するmise outdatedより新しいバージョンがあるツールを表示します
ツールをアップグレードするmise upgradeバージョン制約の範囲内でツールを最新バージョンにアップグレードします
設定を信頼するmise trust現在のディレクトリの mise.toml を信頼します
ツールのバックエンド"npm:prettier" / "cargo:cargo-machete"npm、cargo、pipx、GitHub などからインストールします
タスクの依存関係depends = ["lint", "test"]前提となるタスクが先に実行されます
インクリメンタルビルドタスクの sources + outputsソースより出力が新しい場合、タスクをスキップします
有効化せずに実行するmise exec -- node app.jsmise が管理するツールを使ってコマンドを実行します
診断mise doctorインストールと設定の状態を確認します
未使用のツールを整理するmise pruneどの設定にも記載されていないツールのバージョンを削除します
フックを生成するmise generate git-pre-commitタスク用の git pre-commit フックを生成します
環境固有の設定.mise.staging.tomlMISE_ENV=staging で有効になります
IDE 用のシムmise settings set shims_on_path trueIDE との互換性のため、PATH ベースのシムを使用します

よくある間違い

間違い正しいパターン
mise use を使わずに mise install node@22 を使うmise use node@22 はインストールと mise.toml への固定を同時に行います
mise を使って .tool-versions を手動で編集するmise use で更新します。.tool-versions より mise.toml が推奨されます
新しいプロジェクトのクローン時に mise trust を忘れるmise trust を実行して、信頼されていない設定ファイルを有効にします
タスクの依存関係に depends キーを使う現在のキーは配列の depends であり、deps ではありません
mise を有効にせず mise run を実行するシェルのプロファイルで mise activate を実行するか、mise exec を使います
シークレットを mise.toml に直接記述する_.file = ".env.local" を使い、.env ファイルを gitignore に追加します
cd でプロジェクトに移動しないと環境変数が設定されないと思い込むMise はディレクトリの変更時に環境を有効にします。デバッグには mise env を使います
共有プロジェクトで latest バージョンを使う再現性を確保するため、特定のメジャーバージョン(node = "22" など)に固定します
mise と併用して Makefile にタスクを定義する1 つのツールにまとめるため、すべてのタスクを mise.toml に集約します
複数行のタスクスクリプトでシバンを付け忘れるインタープリターを明示するため、#!/usr/bin/env bash を追加します
時間のかかるタスクで sources/outputs を使わない差分実行時のスキップと監視モードのために、ソースの glob パターンを定義します
非対話型スクリプトで mise activate を使うスクリプトや CI では mise exec または eval "$(mise env)" を使います

委任

  • タスクパターンの調査:Explore エージェントを使います
  • 設定のレビュー:Task エージェントを使います
  • CI パイプラインとの統合:Task エージェントを使います

rust スキルが利用できる場合は、Rust ツールチェーン管理のパターンをそのスキルに委任します。 python-uv スキルが利用できる場合は、Python のバージョンと仮想環境のパターンをそのスキルに委任します。 github-actions スキルが利用できる場合は、CI ワークフローのパターンをそのスキルに委任します。 docker スキルが利用できる場合は、コンテナ化されたワークフローのパターンをそのスキルに委任します。 pino-logging スキルが利用できる場合は、ロギング設定のパターンをそのスキルに委任します。 sentry スキルが利用できる場合は、エラー監視のセットアップパターンをそのスキルに委任します。

参考資料

コメント