🛠️

生成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 installmise 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の起動ではnpxuvxがよく使われます。.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で一括更新。それだけ。

🎉 まとめ

参考リンク

ソフトバンク株式会社_satto開発チーム

Discussion