miseは、プロジェクトごとに使うツールのバージョンをmise.tomlで管理するツールである。1つのコマンドが担う役割は小さく分かれているため、目的に応じたコマンドを個別に把握しておくと使いやすい。ここではmiseの主要なコマンドを目的別に整理し、それぞれの使い方を解説した記事へリンクする。
インストール・バージョン管理
- 【mise】mise installで設定ファイルに書いたツールをインストールする
mise.tomlに記述したツールを実際にダウンロード・インストールする。 - 【mise】mise useでプロジェクトに使うツールのバージョンを設定する
mise.tomlへのツールの追記とインストールを1つのコマンドで行う。 - 【mise】mise use --globalで全体的に使うツールのバージョンを設定する プロジェクトを問わず共通で使うツールのバージョンを設定する。
- 【mise】mise lsでインストール済みツールの一覧を確認する mise管理下のツールとバージョンの一覧を確認する。
- 【mise】mise currentで現在有効なツールのバージョンを確認する カレントディレクトリで現在有効なバージョンだけをシンプルに表示する。
- 【mise】mise.tomlの書き方の基本
mise.tomlの主なセクションやファイル名のバリエーション、階層的なマージのルールを把握する。 - 【mise】.tool-versionsとの互換性
asdfの
.tool-versionsをそのまま使う方法と、mise.tomlへの変換方法を確認する。 - 【mise】mise uninstallでインストール済みツールを削除する 使わなくなったツールのバージョンをディスクから削除する。
- 【mise】mise unuseでmise.tomlからツールの記述を削除する
mise.tomlの記述を削除し、他から参照されなくなったバージョンはディスクからもあわせて削除する。 - 【mise】mise outdated/mise upgradeでツールをアップグレードする
バージョン範囲内の更新確認と、
--bumpによる範囲自体の更新ができる。 - 【mise】mise execで一時的にツールバージョンを切り替えてコマンド実行する
mise.tomlを書き換えずに、指定したバージョンでコマンドを1回だけ実行する。 - 【mise】mise use --pinで解決済みのバージョンをmise.tomlに保存する
バージョン範囲指定から実際に解決された具体的なバージョンを
mise.tomlに書き込む。 - 【mise】mise.lockで解決済みバージョンを固定する
mise.tomlの範囲指定を変更せずに、解決結果を別ファイルに記録して固定する。 - 【mise】mise ls-remoteでインストール可能なバージョン一覧を確認する リモートから取得できるバージョンの一覧を、プレフィックスで絞り込んで確認する。
- 【mise】mise latestで最新バージョンを確認する 一覧ではなく、最新バージョンだけを1行で確認する。
- 【mise】mise pruneで使われていないバージョンをまとめて削除する どの設定ファイルからも参照されなくなったバージョンを自動で検出して削除する。
- 【mise】mise linkでインストール済みツールをmise管理下に登録する Homebrewや自前のビルドスクリプトでインストールしたツールを、シンボリックリンクとして登録する。
- 【mise】mise toolでツールの詳細情報をまとめて確認する バックエンド、インストール済みバージョン、設定ソースなどを1つのコマンドでまとめて確認する。
- 【mise】mise install-intoでmise管理外のディレクトリにツールをインストールする mise管理下のインストール状況とは独立して、指定したディレクトリに直接ツールを展開する。
レジストリ・ツール検索
- 【mise】mise registryでツール名とバックエンドの対応を確認する ツール名がどのバックエンド(aqua、asdf、cargoなど)で解決されるかを確認する。
- 【mise】mise searchでレジストリのツールをキーワード検索する ツール名がうろ覚えのときにキーワードから候補を探す。
- 【mise】mise backendsで対応バックエンドの一覧を確認する miseがツールのインストールに使うバックエンドの種類を一覧で確認する。
エイリアス管理
- 【mise】mise tool-aliasでツールバージョンにエイリアスを定義する 自分で定義したバージョンエイリアスや、ツール名自体のエイリアスを設定する。
- 【mise】mise shell-aliasでシェルコマンドのエイリアスを管理する プロジェクトディレクトリに入っているときだけ有効なシェルエイリアスを定義する。
パス・実行ファイルの確認
- 【mise】mise whereでツールのインストールパスを確認する ツールのインストールディレクトリのパスを確認する。
- 【mise】mise bin-pathsでアクティブなツールの実行ファイルディレクトリを確認する インストールディレクトリではなく、実行ファイルが実際に置かれているディレクトリを確認する。
- 【mise】mise whichで実行ファイルの実体パスを確認する コマンド名から実行ファイル本体のパスを確認する。
- 【mise】mise shellでシェルセッションの間だけバージョンを切り替える
mise activate済みのシェルセッションが続く間だけ、バージョンを一時的に切り替える。 - 【mise】mise envでmiseが設定する環境変数を出力する
mise activateを組み込まずに、その場限りでPATHや環境変数を反映する。 - 【mise】mise enでmiseの環境が有効なシェルを起動する
evalを挟まずに、mise環境が最初から有効な新しいシェルを起動する。 - 【mise】mise reshimでshimを再生成する mise管理外の方法で追加したコマンドのshimを作り直す。
タスクランナー
- 【mise】mise runでタスクを定義して実行する
mise.tomlにタスクを定義し、mise runで実行する。 - 【mise】mise tasks lsでタスク一覧を詳しく確認する
--extendedや--hidden、--jsonなどのオプションでタスク一覧を詳しく確認する。 - 【mise】タスクのusageフィールドでCLI引数を定義する
非推奨の
{{arg()}}に代わり、タスクの引数・フラグをusageフィールドで定義する。 - 【mise】mise watchでファイル変更を監視してタスクを自動再実行する ソースファイルの変更を検知して、タスクを自動的に再実行する。
- 【mise】mise tasks addでmise.tomlにタスクを追加する
コマンドラインからタスクを追加する。
-fで複数行のシェルスクリプトとしても追加できる。 - 【mise】mise tasks editで$EDITORを使ってタスクを編集する
タスク名を指定するだけで
$EDITORにそのタスクを開く。未存在のタスク名なら新規のファイルタスクが作られる。 - 【mise】mise tasks infoでタスク1件の詳細情報を確認する 説明・依存タスク・実行コマンドなど、タスク1件の詳細情報をまとめて確認する。
- 【mise】mise tasks depsでタスクの依存関係をツリー表示する
depends/depends_post/wait_forから構成される依存関係をツリーやDOT形式で可視化する。 - 【mise】mise tasks validateでタスク定義の誤りを検証する 循環依存・存在しないタスク参照・エイリアスの重複など、タスク定義の問題を実行せずに検出する。
- 【mise】mise tasks graphでモノレポのプロジェクトグラフを確認する npm workspaces等のワークスペースマニフェストから、サブプロジェクト同士の依存関係を可視化する(実験的機能)。
プロジェクトの環境変数
- 【mise】mise setでmise.tomlに環境変数を設定する
mise自体を制御する
MISE_*とは別に、プロジェクトで使う任意の環境変数をmise.tomlで管理する。 - 【mise】mise unsetでmise.tomlの環境変数を削除する
mise setで設定した環境変数が不要になったら削除する。
設定・診断
- 【mise】mise activateでシェルにmiseを組み込む シェルにフックを組み込み、ディレクトリ移動でコマンドの解決先を自動的に切り替える。
- 【mise】mise deactivateでシェルセッション内のmiseを無効化する
mise activate済みのシェルセッションだけ、一時的にmiseを無効化する。 - 【mise】mise trustで設定ファイルを信頼する
コードの実行や環境に影響しうる
mise.tomlを明示的に信頼する。 - 【mise】mise untrustで設定ファイルの信頼を解除する
一度信頼した
mise.tomlを未信頼の状態に戻す。 - 【mise】mise doctorで環境の問題を診断する miseの動作状況をまとめて確認し、問題や警告を検出する。
- 【mise】mise settingsでmise自体の設定を変更する 環境変数ではなく設定ファイルとして、mise自体の設定を恒久的に変更する。
- 【mise】mise configで設定ファイル一覧・階層を確認する 現在有効な設定ファイルのパスと、それぞれに定義されているツールを確認する。
- 【mise】tracked-configsで参照されている設定ファイルを確認する
mise pruneが使用中のバージョンをどう判定しているか、内部の仕組みから確認する。 - 【mise】mise self-updateでmise自体をアップデートする mise管理下のツールではなく、mise本体を最新バージョンに更新する。
- 【mise】mise pluginsでプラグインを管理する レジストリに登録されていないマイナーなツールを、asdf互換の外部プラグインとして追加する。
- 【mise】mise editでmise.tomlを対話的に編集する
既存の設定を保ったままツリー形式のTUIで編集する。
-y/-nが別の非対話パスになる注意点も扱う。 - 【mise】mise fmtでmise.tomlを整形する
=前後のスペースなどを統一する。--checkでCIの整形チェックにも使える。 - 【mise】mise completionでシェル補完を生成する
bash/zsh/fish/powershell向けの補完スクリプトを生成し、
--installで標準的な配置先に直接書き込める。 - 【mise】mise cacheでmiseのキャッシュを管理する
リモートバージョン一覧などのキャッシュを確認・削除する。
clearで全削除、pruneで古いファイルだけ削除できる。 - 【mise】mise implodeでmiseを完全にアンインストールする
mise本体とインストール済みツール・キャッシュを一括削除する。
--configを付けない限り設定ファイルは残る。 - 【mise】mise config getでmise.tomlの値を取得する
mise.tomlの任意のキーをドット区切りパスで取得する。mise setとは異なり[env]以外のセクションも扱える。 - 【mise】mise config setでmise.tomlに値を書き込む
mise.tomlの任意のキーに値を書き込む。型の自動推論、--append/--removeによるリスト操作ができる。
GitHub Actions
- 【mise】mise-actionの基本的な使い方
GitHub Actionsのワークフロー上でmiseをセットアップし、
mise.tomlに書いたツールを使う。 - 【mise】mise-actionでツールのキャッシュを有効にする インストール済みツールをキャッシュし、2回目以降のワークフロー実行を高速化する。
- 【mise】mise-actionのversion入力でmise自体のバージョンを固定する mise本体のバージョンを指定し、ワークフロー間で実行環境を揃える。
- 【mise】mise-actionのセットアップ後にmise runでタスクを実行する ローカルと同じタスク定義を、セットアップ後の通常のステップで実行する。
- 【mise】mise-actionのgithub_token入力でAPIレート制限を回避する GitHub APIのレート制限によるインストール失敗を、認証情報を渡すことで回避する。
- 【mise】mise-actionのinstall_args入力でインストール対象を絞り込む
mise installに渡す引数を指定し、mise.tomlの一部のツールだけをインストールする。 - 【mise】mise-actionのworking_directory入力でmise.tomlの場所を指定する
モノレポのサブディレクトリにある
mise.tomlを読み込むディレクトリを指定する。 - 【mise】mise-actionを使わず手動でセットアップする場合との違い
mise公式のインストールスクリプトで手動セットアップし、
mise-actionが自動化している内容を比較する。
ファイル生成
- 【mise】mise generate github-actionでGitHub Actionsのワークフロー雛形を生成する
mise runを実行するGitHub Actionsワークフローファイルの雛形を生成する。 - 【mise】mise generate git-pre-commitでコミット前フックを生成する
コミット時に
mise runを自動実行するgit pre-commitフックを生成する。 - 【mise】mise generate task-docsでタスクのドキュメントを生成する
タスクの
description/usageからMarkdown形式のドキュメントを生成する。--injectで既存ファイルへの埋め込みもできる。 - 【mise】mise generate devcontainerでdevcontainer設定を生成する
mise向けfeatureを組み込んだ
devcontainer.jsonを生成する。--mount-mise-dataでツールの永続化もできる。 - 【mise】mise generate configで新規にmise.tomlを生成する
コメント付きの雛形や
.tool-versionsからの変換で、新規のmise.tomlを生成する。 - 【mise】mise generate install-scriptでmiseを自動インストールするスクリプトを生成する miseが未インストールのcontributorでも、そのまま使えるラッパースクリプトを生成する。
- 【mise】mise generate task-stubsでタスクを直接実行できるシムを生成する
mise runを省略し、タスクと同名のコマンドとして直接実行できるシムを生成する。
認証・トークン管理
- 【mise】mise tokenでmiseが使うトークンの解決元を確認する GitHub・GitLab・Forgejoのトークンが、どの環境変数から解決されているかを確認する。
カスタムツール定義
- 【mise】mise generate tool-stubでHTTP配布ツールのスタブを生成する レジストリに登録されていないツールを、URLから直接ダウンロードして実行する実行可能スタブとして生成する。
他バージョンマネージャ連携
- 【mise】mise syncで他のバージョンマネージャのインストール済みバージョンを取り込む Homebrew・nvm・pyenv・uvが既にインストール済みのバージョンを、シンボリックリンクとしてmise管理下に取り込む。
依存関係
- 【mise】mise depsでロックファイルの更新を検知して依存関係を自動インストールする
package-lock.json等のロックファイルの新旧を検知し、必要な場合だけnpm install等を自動実行する(実験的機能)。
コンテナイメージ
- 【mise】mise ociでmise.tomlからOCIコンテナイメージをビルドする ツールごとに独立したOCIレイヤーを持つコンテナイメージをビルド・実行・レジストリへのpushができる(実験的機能)。
AIエージェント連携
- 【mise】mise mcpでAIアシスタントからmiseを操作する MCPサーバーとして起動し、ツール・タスクの情報取得やタスク実行をAIアシスタントから扱えるようにする。
環境変数
- 【mise】MISE_ENVで環境別の設定ファイルを切り替える
mise.<環境名>.tomlを追加で読み込ませ、環境ごとにツールや環境変数を切り替える。 - 【mise】MISE_DEFAULT_CONFIG_FILENAMEで作成される設定ファイル名を変更する
mise useやmise setが新規に作成する設定ファイルの名前をmise.toml以外に変更する。 - 【mise】MISE_GLOBAL_CONFIG_FILEでグローバル設定ファイルの場所を変更する
~/.config/mise/config.tomlではなく、指定したパスをグローバル設定ファイルとして使う。 - 【mise】MISE_DATA_DIRでツールのインストール先ディレクトリを変更する
~/.local/share/miseではなく、指定したディレクトリにツール本体をインストールする。 - 【mise】MISE_TRUSTED_CONFIG_PATHSで信頼済み設定ファイルのパスを指定する
mise trustを実行しなくても、指定したパス配下の設定ファイルを信頼済みとして扱う。 - 【mise】MISE_NOT_FOUND_AUTO_INSTALLで未インストールツールの自動インストールを無効化する 未インストールのコマンドを実行した際にmiseが自動的にインストールする機能を無効にする。
- 【mise】MISE_JOBSで並列インストール数を変更する
mise installが同時にインストールするツールの数を変更する。 - 【mise】MISE_VERBOSE/MISE_DEBUGでログ出力レベルを変更する ダウンロードURLやHTTPレスポンスなど、詳細なログを表示する。
マシンプロビジョニング
- 【mise】mise bootstrapで開発機のセットアップを宣言的に管理する
[bootstrap.*]セクションに基づき、ファイル配置やツールインストールなどを冪等に実行する。 - 【mise】mise bootstrap filesでシステムファイルを宣言的に配置する
[bootstrap.files]/[bootstrap.directories]から/etc配下のファイルやディレクトリを配置する。 - 【mise】mise bootstrap dotfilesで複数マシンのdotfilesを同期する
[dotfiles]に登録した.zshrc等を、別の開発機でもシンボリックリンクやコピーで再現する。 - 【mise】mise bootstrap reposで複数のgitリポジトリをまとめて管理する
[bootstrap.repos]に登録したリポジトリを一括でclone・更新する。 - 【mise】mise bootstrap planで適用前に変更内容を確認する
マシンに一切変更を加えず、
[bootstrap.*]の設定と現在の状態の差分を確認する。 - 【mise】mise bootstrap packagesでシステムパッケージを宣言的に管理する
[bootstrap.packages]からapt/brew等のシステムパッケージをインストール・更新する。 - 【mise】mise bootstrap secretsでシークレット入力の有無を確認する
[bootstrap.secrets]に宣言した入力が利用可能かどうかを、値を表示せずに確認する。 - 【mise】mise bootstrap mise-shell-activateでシェル起動ファイルへの組み込みを宣言的に管理する
[bootstrap.mise_shell_activate]から.bashrc/.zshrc等へのmise activate組み込みを冪等に管理する。
\第一線のプログラマーの行動原理を学べる!/
