Learn-skills.dev mise
Configure and use mise for dev tool management, environment variables, and task running. Use this skill when the user wants to set up project tooling with mise, manage tool versions (node, python, go, etc.), define tasks in mise.toml, configure environment variables per project, or asks about mise configuration, backends, hooks, or CLI commands.
install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/aaronflorey/agent-skills/mise" ~/.claude/skills/neversight-learn-skills-dev-mise && rm -rf "$T"
manifest:
data/skills-md/aaronflorey/agent-skills/mise/SKILL.mdsource content
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 |
|---|---|
| Install and set tool version in mise.toml |
| Set global tool version |
| Install all tools from config |
| Run a task |
| Execute command with mise environment |
| List installed tools |
| Diagnose mise setup |
Tool Backends
Tools can be installed from various backends:
- Core:
,node
,python
,go
(built-in)ruby - npm:
,npm:prettiernpm:eslint - pipx:
,pipx:blackpipx: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>.