mise runtime/tool version manager - mise.toml, backends (pipx/aqua/npm/cargo/go), tasks, env, lockfile. Use when setting up, pinning runtimes/CLI tools, or migrating from asdf/nvm/pyenv/brew/Make.
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
mise runtime/tool version manager - mise.toml, backends (pipx/aqua/npm/cargo/go), tasks, env, lockfile. Use when setting up, pinning runtimes/CLI tools, or migrating from asdf/nvm/pyenv/brew/Make.
Set up and audit mise as the unified manager for language runtimes, CLI tools, environment variables, and project tasks. mise replaces asdf/nvm/pyenv (runtimes), cargo install/brew install (CLI binaries), and Make/just (tasks) behind one mise.toml.
When to Use This Skill
Use this skill when...
Use another approach when...
Setting up mise.toml to pin a project's runtimes and CLI tools
Installing one tool ad-hoc — run mise use <tool>@<ver> directly
Picking the right backend for a tool (core / pipx: / aqua: / npm: / cargo: / go:)
The project only needs Python/JS libraries — use /configure:package-management (uv/bun)
Migrating from .tool-versions/asdf, .nvmrc, .python-version, Homebrew, or a Makefile
Defining build/test recipes only, no version management — use /configure:justfile or /configure:makefile
Adding [tasks], [env], secret loading, or a mise.lock for reproducible installs
Running a specific runtime version once — mise exec <tool>@<ver> -- <cmd> (see global rule mise-stale-tool-copies / dependency-management)
Auditing an existing mise setup for pinning, lockfile, trust, and backend correctness
Configuring CI runtime install — that consumes the mise.toml this skill produces (jdx/mise-action)
mise installs every tool through a backend. Picking the right one mirrors the user's tool-install priority (dependency-management rule): mise first, with the most secure/fastest backend.
Checksums + SLSA provenance + Cosign — the secure default
Node global
npm:
"npm:typescript-language-server" = "latest"
When no aqua entry exists
Rust tool (no aqua)
cargo:
"cargo:tokei" = "latest"
Builds from source; prefer aqua if available
Go tool (no aqua)
go:
"go:golang.org/x/tools/gopls" = "latest"
Installs via go install
GitHub release (no aqua)
github:
"github:starship/starship" = "latest"
Direct release-asset fetch
Rule of thumb: runtime → core; Python CLI → pipx:; everything else → aqua: first, falling back to npm:/cargo:/go:/github: only when the aqua registry lacks the tool. Verify aqua availability at https://github.com/aquaproj/aqua-registry.
Execution
Step 1: Detect current state
From Context, classify the repo:
No mise, has legacy version files (.tool-versions, .nvmrc, .python-version) → migration candidate.
No mise, has Makefile/Brewfile → task/tool migration candidate.
Has mise.toml → audit mode (Step 5).
Greenfield → fresh mise.toml.
Detect which runtimes the project already implies: pyproject.toml/.python-version → Python; package.json/.nvmrc → Node; go.mod → Go; Cargo.toml → Rust.
Step 2: Choose config target and naming
Target
File
Committed?
Project (default)
mise.toml at repo root
yes — pins the team to the same versions
Project, local overrides
mise.local.toml
no — add to .gitignore
Global (--global)
~/.config/mise/config.toml
n/a (dotfiles)
Prefer the modern mise.toml name over legacy .mise.toml. Use mise.local.toml for machine-specific or secret-bearing overrides and ensure it is gitignored.
Step 3: Build the [tools] block
Pin runtimes the project needs, then add CLI tools by backend (table above). Pin as loosely as safe: python = "3.13" (allow patch upgrades) for libraries; exact pins (opentofu = "1.11.2") for tools where reproducibility matters. Detect latest stable versions with WebSearch/mise ls-remote <tool> before writing.
[env] — project env vars and PATH; load secrets from a gitignored file with _.file = ".env.local" (never inline secrets). See REFERENCE.md.
[tasks] — migrate Makefile/just recipes here so mise run <task> replaces make <target>. Supports depends, alias, multi-line run. See REFERENCE.md for the full grammar.
[settings] — set pipx.uvx = true whenever any pipx: tool is present (works around jdx/mise#7477); experimental = true for newer backends; legacy_version_file = true to keep honoring .tool-versions/.nvmrc during migration.
Step 5: Audit (always; the whole job when --check-only)
Checks: every runtime pinned; CLI tools prefer aqua: over cargo:/source builds; pipx.uvx = true present if any pipx: tool; mise.lock committed; mise.local.toml gitignored if present; config trusted (mise trust). If --check-only, stop here.
Step 6: Apply (with --fix or on confirmation)
Write/patch the target config (Step 2 file).
mise trust the config (required before mise will use a new/edited file).
mise install to materialize tools.
mise lock to generate/refresh mise.lock, then track it (git add mise.lock).
If mise.local.toml exists, ensure .gitignore covers it.
mise doctor to verify the setup is healthy.
Step 7: Migrations (--migrate <source>)
Source
Action
asdf
Read .tool-versions, map each line to a [tools] entry, keep legacy_version_file = true, then remove .tool-versions once verified. asdf plugin names usually match mise core/aqua names.
nvm
.nvmrc → node = "<ver>".
pyenv
.python-version → python = "<ver>" (a list if multiple).
brew
Move CLI tools (not casks/services/build-deps) from Brewfile to aqua:/core backends; leave GUI apps, fonts, daemons, and compilers in Homebrew.
makefile
Convert each target to a [tasks.<name>] with run; map prerequisites to depends. See REFERENCE.md task grammar.
Always verify with mise install && mise doctor before deleting the source file. See REFERENCE.md for per-source mapping tables and worked examples.
Step 8: CI integration (mention, don't duplicate)
A committed mise.toml + mise.lock is consumed in CI by jdx/mise-action (mise install then mise run <task>), giving local↔CI parity (the local-ci-parity rule). Point the user to /configure:ci-workflows rather than writing the workflow here.
Agentic Optimizations
Context
Command
Audit only
/configure:mise --check-only
Auto-configure
/configure:mise --fix
List installed tools (JSON)
mise ls --json
Show active versions
mise current
Available versions of a tool
mise ls-remote <tool>
Show outdated
mise outdated
Diagnose
mise doctor
Generate lockfile
mise lock
Flags
Flag
Description
--check-only
Report status without modifying files
--fix
Apply the recommended config without per-step prompts
--global
Target ~/.config/mise/config.toml instead of project mise.toml
--migrate <source>
Convert asdf/nvm/pyenv/brew/makefile into mise.toml
Examples
# Audit an existing setup
/configure:mise --check-only
# Set up mise.toml for the current project
/configure:mise
# Auto-configure, no prompts
/configure:mise --fix
# Migrate an asdf project
/configure:mise --migrate asdf
# Convert Makefile targets into mise tasks
/configure:mise --migrate makefile
Error Handling
mise not installed: Offer the install one-liner (curl https://mise.run | sh) or note it is itself a Homebrew bootstrap tool; do not block the audit.
Untrusted config: mise refuses to load an untrusted file — run mise trust after writing.
pipx: tool fails to resolve: ensure uv is a mise-managed tool and pipx.uvx = true is set (jdx/mise#7477).
aqua package not found: the org/repo name must match an aqua-registry entry; fall back to github:/cargo:/go: or core.
Tool "keeps coming back" after removal: stale per-node-version copies + ~/.default-npm-packages re-seeding — see the global mise-stale-tool-copies rule.
node ≥26 on minimal Linux: prebuilt binaries link libatomic.so.1; gate node to platforms that have it (chezmoi-style os guard) or pin an older line.
See Also
/configure:package-management — uv/bun for Python/JS libraries (mise installs the runtimes; uv/bun manage deps)
/configure:justfile, /configure:makefile — task runners mise's [tasks] can replace
/configure:ci-workflows — CI that consumes mise.toml via jdx/mise-action
Global rules: dependency-management (tool-install priority, mise exec vs mise use), mise-stale-tool-copies (per-version cleanup)
REFERENCE.md — full [tasks]/[env]/[settings] grammar, backend cheat-sheet, migration mapping tables