mise Plugin for Claude Code
Table of Contents
Overview
A Claude Code plugin that teaches Claude how to work with mise — the all-in-one developer environment tool. This covers the complete mise ecosystem: task definition, dev tool management, environment configuration, hooks, and the full usage spec for argument handling.
When installed, Claude will:
- Use the
usage field for all task arguments (never shell-native $1/$@ patterns)
- Generate correct TOML-based and file-based tasks with proper configuration
- Configure dev tools across 18 backends (aqua, github, npm, cargo, pipx, etc.)
- Set up environment variables, profiles, dotenv loading, and secrets
- Create hooks and file watchers
- Follow mise best practices throughout
This plugin is a pure skill — no commands, hooks, or MCP servers. It activates automatically whenever you work with mise.
Features
Tasks
- Strict
usage field enforcement — all arguments use mise's cross-platform usage spec
- TOML and file-based tasks — inline tasks and executable scripts with
#MISE/#USAGE headers
- Complete usage spec — positional args, flags, choices, custom completions, variadic args, defaults, env binding
- Task dependencies —
depends, depends_post, wait_for with parallel execution
- Caching —
sources/outputs for rebuild avoidance, including auto mode
- New features —
extends (task inheritance), timeout, structured run/depends with args/env
Dev Tools
- 18 backends — aqua, github, gitlab, forgejo, http, s3, pipx, npm, go, cargo, gem, dotnet, conda, spm, vfox, asdf
- Per-tool options — version, OS restriction, postinstall commands
- Shims and aliases — shell integration, tool aliasing, version aliasing
Environments
- Environment variables — basic, required, redacted, lazy evaluation
- Special directives —
_.path, _.file, _.source for PATH, dotenv, and script sourcing
- Profiles —
MISE_ENV-based environment-specific configuration
- Templates — Tera templating with functions, filters, and path operations
Configuration
- Hooks — cd, enter, leave, preinstall, postinstall triggers
- File watchers — watch patterns with automatic re-execution
- Settings — 100+ configuration options with env var overrides
- Hierarchical config — file precedence, merge behavior, profiles
Installation
Add the marketplace and install the plugin (run these inside Claude Code):
/plugin marketplace add brentmitchell25/mise-plugin
/plugin install mise@brentmitchell25
Or from the CLI:
claude plugin install mise@brentmitchell25
Use Cases
1. Task definition with arguments
Ask Claude: "Create a mise task that deploys to dev/staging/prod with a force flag"
[tasks.deploy]
description = "Deploy application to environment"
depends = ["build", "test"]
usage = '''
arg "<env>" choices "dev" "staging" "prod" help="Target environment"
flag "-f --force" help="Skip confirmation"
'''
confirm = "Deploy to {{usage.env}}?"
run = './scripts/deploy.sh ${usage_env?} ${usage_force:+--force}'
2. File-based tasks for migrations
Ask Claude: "Set up file-based mise tasks for database migrations"
#!/usr/bin/env bash
#MISE description="Run database migrations"
#MISE depends=["db:check"]
#USAGE arg "<direction>" choices "up" "down" help="Migration direction"
#USAGE flag "-n --count <n>" default="1" help="Number of migrations"
#USAGE flag "--dry-run" help="Preview SQL only"
set -euo pipefail
direction="${usage_direction?}"
count="${usage_count:-1}"
if [ -n "${usage_dry_run:-}" ]; then
echo "Would run $count migration(s) $direction"
exit 0
fi
migrate "$direction" -n "$count"
3. Build pipeline with caching