mcpField
M
mise

mise

github.com/oakoss开发20120 次安装10 周前更新
代码仓库

关于 mise

mise 是面向开发者的多语言开发工具管理命令行工具,用一个项目级 mise.toml 配置工具版本、环境变量和任务。它适用于统一开发环境与任务管理,并支持从多种后端安装工具。

主要功能

  1. 01管理多种语言的工具版本
  2. 02按项目配置环境变量
  3. 03定义任务及任务依赖
  4. 04支持多种工具安装后端
  5. 05监视任务并按需重跑

适用场景

  1. 01为项目固定多种运行时版本
  2. 02建立可复现的开发环境
  3. 03集中定义构建和测试任务
  4. 04在 CI 中运行项目任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oakoss/agent-skills --skill mise

安装后在 Claude Code 中输入/mise确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
configuration.md
environment-variables.md
migration.md
task-patterns.md
task-runner.md
tool-management.md

详细介绍

Mise

概述

Mise 是一款多语言开发工具管理器,通过一个 CLI 管理工具版本、环境变量和任务运行。它用统一的项目级 mise.toml 配置取代 asdf、nvm、pyenv、direnv 和 Makefile。

适用场景: 管理项目中的多种语言运行时,定义可复现的开发环境,运行带依赖关系的项目任务,取代分散的 .nvmrc/.python-version/.tool-versions 文件,以及自动化 CI 流水线。

不适用场景: 仅使用容器的工作流(所有工具都在 Docker 镜像中),原生版本管理器已能很好满足需求的单语言项目,以及生产环境运行时管理(mise 是开发工具)。

版本解析顺序

Mise 按以下优先级检查这些来源,以解析工具版本:

  1. MISE_<TOOL>_VERSION 环境变量
  2. 当前目录中的 mise.toml
  3. 父目录中的 mise.toml(沿目录树逐级向上查找)
  4. .tool-versions 文件(兼容 asdf)
  5. 旧版文件(.nvmrc、.python-version、.ruby-version)
  6. ~/.config/mise/config.toml(全局默认值)

快速参考

模式命令 / 配置要点
安装工具mise install读取 mise.toml,安装其中列出的所有工具
固定工具版本mise use node@22写入当前目录下的 mise.toml
全局固定版本mise use -g node@22写入 ~/.config/mise/config.toml
运行任务mise run build运行 mise.toml 中定义的任务
带参数运行mise run test -- --watch将 -- 后的参数传递给任务
监视模式mise watch build源文件变更时重新运行任务
列出任务mise tasks显示所有可用任务
设置环境变量mise.toml 中的 [env] 部分按目录设置,执行 cd 时自动激活
加载 .env 文件_.file = ".env"将 dotenv 加载到环境中
扩展 PATH_.path = ["./bin"]将目录添加到 PATH 前面
列出已安装工具mise ls显示所有已安装的工具版本
过期工具mise outdated显示有更新版本的工具
升级工具mise upgrade在约束范围内将工具升级到最新版本
信任配置mise trust信任当前目录下的 mise.toml
工具后端"npm:prettier" / "cargo:cargo-machete"从 npm、cargo、pipx、GitHub 等安装
任务依赖depends = ["lint", "test"]先运行前置任务
增量构建任务上的 sources + outputs如果输出比源文件新,则跳过任务
未激活时执行mise exec -- node app.js使用 mise 管理的工具运行命令
诊断mise doctor检查安装和配置状态
清理未使用工具mise prune移除所有配置中都未使用的工具版本
生成钩子mise generate git-pre-commit为任务生成 git pre-commit 钩子
环境专属配置.mise.staging.toml通过 MISE_ENV=staging 激活
IDE 的 Shimsmise settings set shims_on_path true基于 PATH 的 Shims,确保与 IDE 兼容

常见错误

错误正确做法
使用 mise install node@22,却不使用 mise usemise use node@22 会同时安装并固定版本到 mise.toml
使用 mise 时手动编辑 .tool-versions使用 mise use 更新;优先使用 mise.toml,而非 .tool-versions
克隆新项目后忘记运行 mise trust运行 mise trust 以激活不受信任的配置文件
使用 depends 键设置任务依赖当前使用的键是 depends(数组),而不是 deps
未激活 mise 就运行 mise run在 shell 配置文件中运行 mise activate,或使用 mise exec
将密钥直接放在 mise.toml 中使用 _.file = ".env.local",并将 .env 文件加入 gitignore
期望无需 cd 进入项目目录就能获得环境变量Mise 会在目录变更时激活环境;使用 mise env 进行调试
在共享项目中使用 latest 版本固定具体的主版本(node = "22"),以确保可复现性
在 Makefile 中定义任务,同时又使用 mise将所有任务集中到 mise.toml 中,统一使用一个工具
多行任务脚本缺少 shebang添加 #!/usr/bin/env bash,明确指定解释器
慢速任务未使用 sources/outputs定义源文件 glob,以支持增量跳过和监视模式
在非交互式脚本中使用 mise activate在脚本和 CI 中使用 mise exec 或 eval "$(mise env)"

委派

  • 任务模式发现:使用 Explore Agent
  • 配置审查:使用 Task Agent
  • CI 流水线集成:使用 Task Agent

如果有 rust skill,请将 Rust 工具链管理模式委派给它。 如果有 python-uv skill,请将 Python 版本和虚拟环境模式委派给它。 如果有 github-actions skill,请将 CI 工作流模式委派给它。 如果有 docker skill,请将容器化工作流模式委派给它。 如果有 pino-logging skill,请将日志配置模式委派给它。 如果有 sentry skill,请将错误监控设置模式委派给它。

参考资料

评论

支持 Markdown