🛠️
生成AI時代のツールバージョン管理はmiseで統一
はじめに
こんにちは!satto workspaceでプロダクトエンジニアをしている ryohei oyama(@ryohei_oyama)です。
本記事は、CLIとランタイムをグローバル設定に集約し、mise up
で最新化する実運用をシンプルに示します。
🤖 ポイント
- ツールはグローバル設定に集約(
~/.config/mise/config.toml
) - 更新は
mise up
の1コマンド
🚀 miseとは
miseは、言語ランタイムやCLIのバージョンを1つの設定ファイルで固定・切替できるツールです。uv
(Pythonエコシステム)やNode.js
のバージョンを固定することで、uvx
/npx
経由の実行結果を常に再現可能にします。
最低限の使い方は「設定を書く→mise install
→mise up
」。
📝 導入手順
1. miseのインストール
# macOS / Linux
brew install mise
# または
curl https://mise.run | sh
2. シェル設定(必要なら)
eval "$(mise activate <shell>)"
をシェルに追加します。
3. 設定ファイル(グローバル)
# グローバルに設定
mise use -g python@3.13
mise use -g uv@latest
mise use -g node@lts
設定は~/.config/mise/config.toml
に保存されます:
# ~/.config/mise/config.toml
[tools]
python = "3.13" # LTS
uv = "latest"
node = "lts" # LTS
(本記事ではグローバル集中管理に絞ります)
4. ツールのインストール
# 設定されたツールをすべてインストール
mise install
これでuvx
/npx
系実行も同一のランタイムで統一されます。
🔧 実践例: satto workspaceでの活用
MCPサーバーの管理
MCPの起動ではnpx
とuvx
がよく使われます。.ruler/mcp.json
のように両者が混在していても、ランタイムはmiseのグローバル設定に従い統一されます。
miseでの統一管理
# mise.toml
[tools]
python = "3.13" # LTS
uv = "latest"
node = "lts" # LTS
この設定により:
- ✅
uvx
で起動するサーバーは同じuv
で実行 - ✅
npx
で起動するサーバーは同じNode.js
で実行 - ✅ プロジェクト全体で実行環境を統一
AI CLIツールの管理(グローバル一元化)
Claude Code / Gemini / Codex などのCLIもnpm:xxx
指定でmiseに集約できます。これは筆者の実運用設定です(そのまま使えます):Node/Python/uvとAI系CLIを全部グローバルに集約し、mise up
でまとめてバージョン更新できます。
# ~/.config/mise/config.toml(グローバル設定)
[tools]
# Node.js
node = "24"
"npm:pnpm" = "latest"
"npm:@antfu/ni" = "latest"
"npm:serve" = "latest"
"npm:@openai/codex" = "latest"
"npm:@google/gemini-cli" = "latest"
"npm:@anthropic-ai/claude-code" = "latest"
# Python
python = "3.13"
uv = "latest"
使い方は2コマンドだけ:
# ツールを一括インストール(初回/新規追加時)
mise install
# バージョンをまとめて更新(定期運用)
mise up
覚えておきたいポイント:
- ✅ グローバルに集約 → どのプロジェクトでも同じCLIが使える
- ✅
mise up
一発 → まとめて最新版に追従できる
📊 まとめ(超要点)
グローバル設定に集約し、mise up
で一括更新。それだけ。
Discussion