mise

SKILL.md

Mise

Mise is a polyglot tool version manager and task runner. It manages dev tools, environment variables, and tasks for projects.

Core Concepts

Configuration: mise.toml in project root (or .mise.toml, .config/mise/config.toml). Config is hierarchical - child directories override parent settings.

Tools: Defined in [tools] section. Mise installs and activates correct versions per-directory.

Environment: Defined in [env] section. Set project-specific env vars that activate when entering directory.

Tasks: Defined in [tasks] section or as standalone scripts in mise-tasks/ directory.

Quick Reference

Basic mise.toml structure:

[tools]
node = "22"
python = "3.12"

[env]
NODE_ENV = "development"

[tasks.build]
run = "npm run build"

Essential Commands

Command Description
mise use node@22 Install and set tool version in mise.toml
mise use -g node@22 Set global tool version
mise install Install all tools from config
mise run <task> Run a task
mise x -- <cmd> Execute command with mise environment
mise ls List installed tools
mise doctor Diagnose mise setup

Tool Backends

Tools can be installed from various backends:

  • Core: node, python, go, ruby (built-in)
  • npm: npm:prettier, npm:eslint
  • pipx: pipx:black, pipx:ruff
  • cargo: cargo:ripgrep
  • github: github:BurntSushi/ripgrep
  • aqua: aqua:hashicorp/terraform

When to Consult References

For detailed information, read the appropriate reference file:

  • Configuration options (tool options, env directives, settings): references/configuration.md
  • Task definition (toml tasks, file tasks, arguments, dependencies): references/tasks.md
  • CLI commands (all command flags and examples): references/cli.md
  • Hooks and advanced features: references/advanced.md

Common Patterns

Project with Node.js and Python

[tools]
node = "lts"
python = "3.12"

[env]
NODE_ENV = "development"
PYTHONDONTWRITEBYTECODE = "1"

[tasks.dev]
run = "npm run dev"

[tasks.test]
run = ["npm test", "pytest"]

Task with Dependencies

[tasks.build]
run = "npm run build"
sources = ["src/**/*.ts"]
outputs = ["dist/**/*.js"]

[tasks.deploy]
depends = ["build", "test"]
run = "./scripts/deploy.sh"

File Task (mise-tasks/build)

#!/usr/bin/env bash
#MISE description="Build the project"
#MISE depends=["lint"]
npm run build

Environment from .env file

[env]
_.file = ".env"
_.path = "./bin"

Shell Activation

Add to shell rc file to auto-activate mise:

# bash: ~/.bashrc
eval "$(mise activate bash)"

# zsh: ~/.zshrc  
eval "$(mise activate zsh)"

# fish: ~/.config/fish/config.fish
mise activate fish | source

Without activation, use mise x -- <command> or mise run <task>.

Weekly Installs
1
First Seen
4 days ago
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1