mise自体の設定を恒久的に変更したい

【mise】MISE_JOBSで並列インストール数を変更する のように、mise自体の挙動は環境変数でも変更できるが、環境変数はシェルの起動ファイルやCIの設定に書く必要があり、設定ファイルとして一元管理しづらい。mise settingsを使うと、同じ設定をmise.tomlやグローバル設定ファイルに恒久的に書き込める。

現在の設定値を確認する

mise settings getに設定名を指定すると、現在の値を確認できる。

$ mise settings get jobs
8

jobsMISE_JOBS環境変数に対応する設定で、既定値は8である。

設定を変更する

mise settings setで設定を変更すると、グローバル設定ファイル(~/.config/mise/config.toml)に書き込まれる。

$ mise settings set jobs 2
$ mise settings get jobs
2
$ cat ~/.config/mise/config.toml
[settings]
jobs = 2

グローバル設定ファイルはユーザーごとのホームディレクトリに置かれるため、マシンを移行してもファイルをコピーすれば同じ設定を引き継げる。チームで設定を共有したい場合は、次に説明する--localでプロジェクトのmise.tomlに書き込む。

プロジェクト単位で設定する

--localを付けると、グローバル設定ファイルではなくカレントディレクトリのmise.tomlに書き込む。

$ mise settings set --local experimental true
$ cat mise.toml
[settings]
experimental = true

プロジェクトごとに異なる設定を使いたい場合は、--local付きでmise.tomlに書き込み、リポジトリにコミットする。

設定の一覧を確認する

mise settings lsを使うと、現在有効な設定と、その値がどの設定ファイルに書かれているかを一覧できる。

$ mise settings ls
jobs          2    ~/.config/mise/config.toml
experimental  true /path/to/project/mise.toml

設定を削除する

mise settings unsetで設定を削除すると、既定値に戻る。

$ mise settings unset jobs
$ mise settings get jobs
8

環境変数と設定ファイルの優先順位

mise settings setで設定ファイルにjobs = 2と書いた状態でも、MISE_JOBS環境変数を指定するとそちらが優先される。

$ mise settings get jobs
2

$ MISE_JOBS=4 mise settings get jobs
4

CIなど特定の実行時だけ一時的に値を変えたい場合は環境変数、恒久的な既定値としたい場合はmise settingsと使い分けるとよい。