はじめに
hkob の雑記録の第372回目(通算769日目)は、昨日とりあえず不具合を修正した mise のパス設定をよりよく解決する方法を解説します。
昨日の解決案
昨日は、conf.d で mise の設定が入っているので、それを無効化すればいいのではという解決策でした。具体的には vendor_conf.d の中に mise-activate.fish というファイルがあり、この処理の前に MISE_FISH_AUTO_ACTIVATE を 0 にすれば activate は呼ばれないという解決法でした。
if [ "$MISE_FISH_AUTO_ACTIVATE" != "0" ] /opt/homebrew/opt/mise/bin/mise activate fish | source end
翌朝のひらめき
翌朝、起きるとこの brew パッケージを作成した人のメッセージに気づきました。そもそも conf.d で mise を設定できるのであれば、brew の設定をこの前に実行すればいいだけです。そもそも config.fish にこのような設定を書くべきではなく、システムに関するものは conf.d に書くべきだという主張が見えてきます。「conf.d という仕組みがあるんだからちゃんと使えよ」と言われた気がしました。
そうとわかれば、Notion AI に教えてみましょう。早速「ユーザーの提案の方が優れています。」と言われてしまいました。

ということで更新されたエージェントログは以下のようになりました。
問題
macOSで
brew install miseを使用した際、Homebrewの設定後にmise activate fishを実行してもPATHの順序が意図通りにならない。
/opt/homebrew/binがmiseのパスより前に配置されてしまう。原因
/opt/homebrew/Cellar/mise/2025.12.6/share/fish/vendor_conf.d/mise-activate.fishで自動activateが設定されている。if [ "$MISE_FISH_AUTO_ACTIVATE" != "0" ] /opt/homebrew/opt/mise/bin/mise activate fish | source endFish shellの読み込み順序:
conf.d/*.fishvendor_conf.d/*.fish← miseのauto activateはここconfig.fish← Homebrewの設定はこここの順序により、miseが先にPATHを設定し、その後Homebrewが
/opt/homebrew/binをPATHの先頭に追加してしまう。解決策(推奨)
Homebrewの設定をconf.dに移動
~/.config/fish/conf.d/00-brew.fishを作成:# Homebrewの設定 eval (/opt/homebrew/bin/brew shellenv)
~/.config/fish/config.fishからHomebrewの設定を削除し、miseはそのまま:# mise mise activate fish | source # ~/bin set -gx PATH ~/bin $PATHメリット: miseの機能を無効化せず、読み込み順序で自然に解決。
読み込み順序
conf.d/00-brew.fish→ Homebrew設定vendor_conf.d/mise-activate.fish→ miseのauto activateconfig.fish→ 追加設定代替案(非推奨)
auto activateを無効化する方法:
~/.config/fish/conf.d/00-mise.fish:set -gx MISE_FISH_AUTO_ACTIVATE 0
config.fishで明示的に設定:# Homebrewの設定 eval (/opt/homebrew/bin/brew shellenv) # miseのactivate mise activate fish | sourceデメリット: miseの機能を無効化する必要がある。
確認方法
echo $PATH | tr ' ' '\n'miseのパスが
/opt/homebrew/binより上に表示されれば成功。
実際の修正
~/.config/fish/conf.d/00-mise.fish を 00-brew.fish に変更しました。
mv ~/.config/fish/conf.d/00-{mise,brew}.fish
このファイルには指摘通り brew の設定に書き換えました。
# Homebrewの設定 eval (/opt/homebrew/bin/brew shellenv)
これで再度ターミナルを再起動しました。PATH を調べると無事に mise の PATH が前に来ています。
printenv PATH /Users/hkob/bin:/Users/hkob/.local/share/mise/installs/python/3.14.2/bin:/Users/hkob/.local/share/mise/installs/ruby/4.0.0/bin:/opt/homebrew/opt/mise/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew/opt/postgresql@16/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/pmk/env/global/bin:/opt/X11/bin:/Library/Apple/usr/bin:/Library/TeX/texbin:/Applications/Wireshark.app/Contents/MacOS:/Applications/Ghostty.app/Contents/MacOS
おわりに
最初からこちらの案に気づくべきでしたね。まだまだ修行が足りないです。