asdf互換の外部プラグインを明示的に使いたい

miseはツールごとにコアやaquaなど複数のバックエンドを内蔵しており、mise useでツール名を指定すると、レジストリに登録された優先順位に従って自動的にバックエンドが選ばれる。レジストリに登録されていないツールを使いたい場合や、既定のバックエンドではなくasdf互換の外部プラグインを明示的に使いたい場合は、mise pluginsでプラグインを管理する。

mise plugins installの基本

gitのURLを指定して、GitHub Actionsをローカルでシミュレートするツールactのasdf-act プラグインをインストールする。

$ mise plugins install act https://github.com/gr1m0h/asdf-act.git
mise plugin:act      clone https://github.com/gr1m0h/asdf-act.git
mise plugin:act    ✓ https://github.com/gr1m0h/asdf-act.git#1fca84f

指定したGitリポジトリがcloneされ、プラグインとして登録される。後述のasdf:プレフィックス付きでバージョンを指定するだけでも、レジストリに登録済みのasdfプラグインは自動的にcloneされる。特定のフォークを使いたい場合や、ローカルでのプラグイン名を自分で決めたい場合に、この明示的なインストール手順が役立つ。

asdf:プレフィックスで外部プラグイン経由のバージョンを使う

プラグインをインストールしただけでは、mise use act@latestのようにツール名だけを指定すると、レジストリの優先順位に従って別のバックエンド(このケースではaqua)が使われてしまう場合がある。インストールした外部プラグインを明示的に使いたい場合は、asdf:プレフィックスを付ける。

$ mise use asdf:act@latest
mise asdf:act@0.2.89 [1/3] bin/install
mise asdf:act@0.2.89 ✓ installed

mise.tomlにもasdf:actのままバックエンドが明示されて記録される。

[tools]
"asdf:act" = "latest"

インストール済みプラグインを確認する

mise plugins lsで、インストール済みの外部プラグインを一覧できる。

$ mise plugins ls
act

--urlsを付けると、プラグインが参照しているGitリポジトリのURLも合わせて表示される。

$ mise plugins ls --urls
act  https://github.com/gr1m0h/asdf-act.git  HEAD 1fca84f

nodegoのようなコアバックエンドのツールは、既定では一覧に表示されない。コアバックエンドのツールも含めて確認したい場合は--coreを付ける。

プラグインを更新・削除する

プラグインのGitリポジトリを最新の状態に更新するにはmise plugins updateを使う。

$ mise plugins update act
mise plugin:act      update git repo
mise plugin:act    ✓ https://github.com/gr1m0h/asdf-act.git#1fca84f

不要になったプラグインはmise plugins uninstallで削除する。

$ mise plugins uninstall act
mise plugin:act      uninstall
mise plugin:act      remove ~/.local/share/mise/plugins/act
mise plugin:act    ✓ uninstalled