mise.tomlを手で編集するとタイポや構文ミスが心配

mise.tomlはテキストファイルなので直接編集できるが、TOMLの構文やツール名を手で打つとタイポしやすい。mise editを使うと、既存のmise.tomlの内容をツリー形式で表示しながら対話的に編集できる。

$ mise edit

TUIの基本操作

mise.tomlがある状態でmise editを実行すると、現在の内容がツリー表示される。

mise 2026.9.1 by @jdx
mise.toml

▾ [tools] (1)
    jq = "1.7.1"
    [+ Add tool from registry]
    [+ Add tool from backend]
▸ [env]
▸ [tasks]
▸ [deps]
▸ [settings]
[+ Add section]

↑/↓/←/→ navigate • Enter collapse • backspace remove • s save • q quit

矢印キーで項目を移動し、sで保存、qで保存せずに終了する。既存のjq = "1.7.1"が表示されているとおり、mise editは既存ファイルの内容を読み込んだ状態で起動する。qで終了した場合は「mise cancelled」と表示され、ファイルは変更されない。

レジストリからツールを追加する

jqの項目にカーソルを合わせると、操作できる項目が増える。

↑/↓/←/→ navigate • Enter edit • o options • r rename • backspace remove • s save • q quit

[+ Add tool from registry]にカーソルを合わせてEnterを押すと、レジストリのツールをキーワードで絞り込んで選択できる画面になる。

Add Tool from Registry
mise.toml

Filter: ripgrep

> ripgrep A search tool that combines usability of ag ...

Type to filter • ↑/↓ select • Enter add • Esc cancel

ツールを選択してEnterを押すと、続けてバージョンを確認する画面が出る。

←/→ select version • Enter confirm • Esc cancel

ここでEnterを押してsで保存すると、既存のjqはそのまま残り、新しいツールだけが追記される。

[tools]
jq = "1.7.1"
rg = "15.2.0"

ripgrepはレジストリ上rgという名前で登録されているため、選択したツール名(ripgrep)ではなくrgというキーで書き込まれる。

-y/-nは対話TUIを使わない別の生成パス

-y(--yes)や-n(--dry-run)を付けると、対話的なTUIを起動せずにmise.tomlの内容を生成する。

$ mise edit -n
mise would write to mise.toml
# mise config files are hierarchical. mise will find all of the config files
# in all parent directories and merge them together.
...
# [tools]
# node = "22"
# python = "3.12"
# go = "latest"

-nは書き込まれる内容のプレビュー、-yは実際に書き込む。新規プロジェクトでコメント付きのテンプレートをそのまま作りたい場合には使えるが、既存のmise.tomlがある場合でも、生成される内容は既存の設定を無視した同じテンプレートになる

[tools]
jq = "1.7.1"
$ mise edit -y
mise writing to mise.toml
# mise config files are hierarchical. mise will find all of the config files
# in all parent directories and merge them together.
...
# [tools]
# node = "22"
# python = "3.12"
# go = "latest"

既存のjq = "1.7.1"は残らず、コメントアウトされたテンプレートに丸ごと置き換わる。対話TUIとは異なり、-y/-nは既存ファイルの中身を一切見ないので、既存プロジェクトのmise.tomlを編集する用途では使わないほうがよい。

–tool-versionsで.tool-versionsから[tools]を生成する

--tool-versions.tool-versionsファイルのパスを渡すと、コメント付きテンプレートの代わりに、そのファイルから変換したツールが[tools]セクションに追加される。これも-y/-nと同じ非対話パスだが、-y/-n単体と違って既存のmise.toml[tools]は消えず、変換したツールがマージされる。

[tools]
jq = "1.7.1"
nodejs 22.11.0
python 3.12.7
$ mise edit -n --tool-versions .tool-versions
mise would write to mise.toml
[tools]
jq = "1.7.1"
node = "22.11.0"
python = "3.12.7"

既存のjqはそのまま残り、.tool-versionsから変換したnode/pythonが追記される。asdfの.tool-versionsで使うnodejsという名前は、miseの正式なツール名nodeに変換される。

-gでグローバル設定ファイルを編集する

-g(--global)を付けると、プロジェクトのmise.tomlではなく~/.config/mise/config.toml(グローバル設定ファイル)が編集対象になる。対話TUIも起動し、既存のグローバル設定の内容を保ったまま編集できる。

$ mise edit -g

引数でファイルパスを指定する

引数にパスを渡すと、mise.toml以外の名前のファイルや、.mise.tomlのような別名の設定ファイルも編集できる。

$ mise edit .mise.toml