mise logo

mise

打开

用一份 mise.toml 安装开发工具、加载环境变量并运行任务的多语言 CLI。兼容 asdf,Rust 实现,MIT 开源。

分享:

mise

mise(读作 “meez”,全称 mise-en-place)是 Jeff Dickey 做的多语言开发环境 CLI。它用仓库里的一份 mise.toml 安装运行时和工具、加载项目环境变量,并运行团队共享任务。名字来自法餐里的 “mise en place”:开火前先把食材和工具各就各位。GitHub 仓库是 MIT 许可的 Rust 项目,创建于 2023 年 1 月 9 日,目前约 3.25 万星。本次核对的最新官方版本是 v2026.8.6

核心功能

  • 一份配置管开发工具:在 mise.toml 里钉住 Node、Python、Ruby、Go、Java、Rust、Terraform、kubectl 以及 1000+ 其他工具。mise use node@26 一步完成插件、运行时和版本设置。
  • 不只是 PATH:进入目录时加载 .env、项目环境变量和 Python virtualenv。密钥可以通过 sops 或 age,而不是明文躺在仓库里。
  • 任务运行器:把 testlintbuild 和部署命令写在它们依赖的工具旁边,用 mise run 执行。
  • 兼容 asdf,但不照搬 asdf:能读 .tool-versions,也能走 asdf 插件,但更推荐 aqua、GitHub 等带 Cosign、SLSA、Minisign 或 GitHub attestation 校验的后端。
  • activate 或 exec:交互式 shell 用 mise activate 更新 PATH;CI 和脚本更适合 mise exec / mise run,不必激活。
  • 支持 Windows:非 asdf 后端可以安装厂商提供的 Windows 二进制。asdf 本身至今不能在 Windows 上跑。

适用场景

  • 多语言仓库:一份文件替代 nvm、pyenv、rbenv 和一堆单语言版本管理器。
  • 团队上手:克隆仓库后跑 mise install,本机 Node、Python 和 CLI 版本就能对齐 CI。
  • 编码智能体:给 Claude CodeCodex CLICursor 一份确定的工具链,而不是赌宿主机刚好装着对的 Node。
  • Linux 工作站:和 Omarchy 或任意 Arch / macOS 机器搭配,让 AI CLI 和语言运行时同步。

定价方案

mise 按 MIT 协议免费开源,没有托管套餐。你只为自己安装的工具、云 API 或包仓库付费。

快速开始

  1. Linux / macOS 可用 curl https://mise.run | sh,也可以走 Homebrew、apt、dnf、scoop、winget 或 chocolatey。
  2. 激活 shell,例如 echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc
  3. 钉工具:mise use --global node@26,或写进项目 mise.toml
  4. mise install 安装配置要求的全部工具。
  5. 不激活也能跑一次性命令:mise exec python@3 -- python

官方入门文档:Getting Started

常见问题

这只是更快的 asdf 吗?

它可以替代 asdf 做版本管理,很多 asdf 用户也是这么用的。更大的差别是环境变量和任务写在同一份文件里。性能仍然更偏向 mise,但官方文档现在更强调体验和供应链校验,而不只是旧的 shim 开销。

必须在 shell 里 activate 吗?

不必。激活是可选的。mise execmise run 已经会加载工具和环境。IDE 和 CI 可以用 shim,但 shim 并不覆盖 activate 的全部能力。

主要风险是什么?

部分工具仍走 asdf 风格插件,会执行第三方 shell。能选 aqua 或 GitHub 后端就优先选,不要盲目信任注册表里的新插件。

怎么从 asdf 或 rtx 迁过来?

mise 仍能读 .tool-versions。rtx 是旧名,旧配置可以映射到 mise。不要直接指向 ~/.asdf,应重新安装或迁移工具目录。

替代方案

  • asdf:最早的多运行时管理器。插件历史更长,DX 更慢,没有一等的环境和任务能力。
  • devbox / Nix:如果你已经活在 Nix 里,可复现性更强。对多数应用团队来说,比一份 mise.toml 重。
  • nvm / pyenv / fnm:单语言够用。仓库一旦同时需要 Node、Python 和 Terraform,就会变痛。

使用技巧

  1. 提交 mise.toml,别靠口口相传:新机器和智能体应从 git 拿到版本。
  2. mise use tool@versionnode@20 这种模糊版本在命令和配置里都能用,不像 asdf 要拆成 latest:20
  3. CI 里不要依赖激活:调用 mise execmise run,脚本就不必绑开发者的 shell hook。

总结

mise 是现代仓库的备菜台:工具、环境和任务放进一份文件,快到你几乎感觉不到它。如果团队还在同时维护 nvm、pyenv 和 Makefile,从 mise.jdx.dev 开始,先钉住一个运行时。

评论

还没有评论。成为第一个评论的人!