Use when adding, configuring, or troubleshooting mise-managed tools - ensures proper CLI usage, detects existing config files, and diagnoses PATH/activation issues when commands aren't found
Detects mise config files and uses `mise use` to add tools, diagnosing PATH/activation issues when commands aren't found.
/plugin marketplace add technicalpickles/pickled-claude-plugins/plugin install mcpproxy@technicalpickles-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/cli/activate-html.mdreferences/cli/alias-html.mdreferences/cli/backends-html.mdreferences/cli/bin-paths-html.mdreferences/cli/cache-html.mdreferences/cli/completion-html.mdreferences/cli/config-html.mdreferences/cli/deactivate-html.mdreferences/cli/doctor-html.mdreferences/cli/en-html.mdreferences/cli/env-html.mdreferences/cli/exec-html.mdreferences/cli/fmt-html.mdreferences/cli/generate-html.mdreferences/cli/implode-html.mdreferences/cli/install-html.mdreferences/cli/install-into-html.mdreferences/cli/latest-html.mdreferences/cli/link-html.mdreferences/cli/lock-html.mdmise is a polyglot tool version manager. Use this skill when:
mise use to add tools - never manually edit config filesmise exec as a permanent workaroundTools where different projects need different versions:
# Good mise candidates - version sensitivity
mise use node@20 # Projects may need different Node versions
mise use terraform@1.5 # IaC often pins specific versions
mise use ruby@3.2 # Gemfiles often require specific Ruby
Stable CLIs with consistent interfaces across versions:
# Better as Homebrew - version doesn't matter
brew install jq gh ripgrep
Ask yourself:
Before adding tools, detect what config format the project uses:
# Check for existing mise config
ls -la mise.toml .mise.toml .mise.local.toml .tool-versions 2>/dev/null
Config file precedence (mise uses the first it finds):
mise.toml or .mise.toml - standard mise config.mise.local.toml - local overrides (usually gitignored).tool-versions - legacy asdf formatIf a config file exists, use that format. Don't create a new one.
mise use to add toolsAlways use the CLI - it validates the tool exists and works:
# Add to project config (mise.toml or existing format)
mise use node@20
# Add to global config (~/.config/mise/config.toml)
mise use -g python@3.12
# Dry run to see what would happen
mise use --dry-run terraform@1.5
Never manually edit config files - mise use ensures:
# Check mise sees the tool
mise ls
# Check the tool is on PATH
which node
node --version
# Compare with mise's view
mise which node
When a tool should be available but isn't found:
# 1. Check mise installation health
mise doctor
# 2. Check what tools mise knows about
mise ls # All installed tools
mise ls --current # Tools for current directory
# 3. Compare which vs mise which
which node # What shell finds
mise which node # What mise thinks it should be
# 4. Check if tool would work via mise exec
mise exec -- node --version # If this works, it's an activation issue
Symptom: mise exec -- node works, but node doesn't
Diagnose:
mise doctor # Look for activation warnings
Fix - add to shell rc file:
# For zsh (~/.zshrc)
eval "$(mise activate zsh)"
# For bash (~/.bashrc)
eval "$(mise activate bash)"
# For fish (~/.config/fish/config.fish)
mise activate fish | source
Then restart your shell or source the rc file.
Symptom: mise shows trust warning, tools not activated
Fix:
mise trust
Symptom: mise ls shows tool globally but not in mise ls --current
Diagnose:
# Check what config file applies
mise config
# Check if there's a local config overriding global
cat mise.toml .mise.toml .tool-versions 2>/dev/null
Fix: Add the tool to the project config:
mise use node@20 # Adds to project config
Symptom: Tools work in terminal but not in IDE/scripts
See @references/dev-tools/shims-html.md for detailed explanation.
Quick fix for non-interactive contexts:
# In ~/.zprofile or ~/.bash_profile (non-interactive)
eval "$(mise activate zsh --shims)"
# In ~/.zshrc or ~/.bashrc (interactive)
eval "$(mise activate zsh)"
mise exec (legitimately)mise exec is appropriate for:
mise exec node@18 -- npm testmise exec is NOT a fix for:
After configuration changes, verify everything works:
# Full health check
mise doctor
# Verify specific tool
mise which node && node --version
# Verify PATH includes mise tools
echo $PATH | tr ':' '\n' | grep mise
@references/cli/use-html.md - Full mise use documentation@references/cli/doctor-html.md - Diagnostic commands@references/cli/activate-html.md - Shell activation@references/cli/which-html.md - Path resolution@references/dev-tools/shims-html.md - Shims vs PATH activation@references/guides/getting-started.md - Setup guidemise use insteadmise doctor to verifyThis skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.