MISE(1) General Commands Manual MISE(1) NAME mise - The front-end to your dev env SYNOPSIS mise [OPTIONS] [] [] ... [] ... [COMMAND] DESCRIPTION mise manages dev tools, env vars, and runs tasks. https://github.com/jdx/mise OPTIONS -c, --continue-on-error Continue running tasks even if one fails -C, --cd Change directory before running command -E, --env Set the environment for loading `mise..toml` -f, --force Force the operation -i, --interleave Set the log output verbosity -j, --jobs How many jobs to run in parallel [default: 8] -n, --dry-run Dry run, don't actually do anything -p, --prefix -P, --profile Set the profile (environment) -q, --quiet Suppress non-error messages -s, --shell -t, --tool Tool(s) to run in addition to what is in mise.toml files e.g.: node@20 python@3.10 -v, --verbose Show extra output (use -vv for even more) -V, --version -y, --yes Answer yes to all confirmation prompts --debug Sets log level to debug --log-level --no-config Do not load any config files Can also use `MISE_NO_CONFIG=1` --no-timings Hides elapsed time after each task completes Default to always hide with `MISE_TASK_TIMINGS=0` --output --raw Read/write directly to stdin/stdout/stderr instead of by line --silent Suppress all task output and mise non-error messages --timings Shows elapsed time after each task completes Default to always show with `MISE_TASK_TIMINGS=1` --trace Sets log level to trace ARGUMENTS Task to run. Shorthand for `mise task run `. Task arguments COMMANDS activate Initializes mise in the current shell session alias Manage version aliases. Aliases: a alias get Show an alias for a plugin alias ls List aliases Aliases: list alias set Add/update an alias for a backend/plugin Aliases: add, create alias unset Clears an alias for a backend/plugin Aliases: rm, remove, delete, del backends Manage backends Aliases: b backends ls List built-in backends Aliases: list bin-paths List all the active runtime bin paths cache Manage the mise cache cache clear Deletes all cache files in mise Aliases: c cache path Show the cache directory path Aliases: dir cache prune Removes stale mise cache files Aliases: p completion Generate shell completions config Manage config files Aliases: cfg config generate Generate a mise.toml file Aliases: g config get Display the value of a setting in a mise.toml file config ls List config files currently in use Aliases: list config set Set the value of a setting in a mise.toml file deactivate Disable mise for current shell session doctor Check mise installation for possible problems Aliases: dr doctor path Print the current PATH entries mise is providing en Starts a new shell with the mise environment built from the current configuration env Exports env vars to activate mise a single time Aliases: e exec Execute a command with tool(s) set Aliases: x fmt Formats mise.toml generate Generate files for various tools/services Aliases: gen generate bootstrap Generate a script to download+execute mise generate config [experimental] Generate a mise.toml file Aliases: g generate devcontainer Generate a devcontainer to execute mise generate git-pre-commit Generate a git pre-commit hook Aliases: pre-commit generate github-action Generate a GitHub Action workflow file generate task-docs Generate documentation for tasks in a project generate task-stubs Generates shims to run mise tasks generate tool-stub Generate a tool stub for HTTP-based tools implode Removes mise CLI and all related data install Install a tool version Aliases: i install-into Install a tool version to a specific path latest Gets the latest available version for a plugin link Symlinks a tool version into mise Aliases: ln lock Update lockfile checksums and URLs for all specified platforms ls List installed and active tool versions Aliases: list ls-remote List runtime versions available for install. mcp [experimental] Run Model Context Protocol (MCP) server outdated Shows outdated tool versions plugins Manage plugins Aliases: p plugins install Install a plugin Aliases: i, a, add plugins link Symlinks a plugin into mise Aliases: ln plugins ls List installed plugins Aliases: list plugins ls-remote Aliases: list-remote, list-all plugins uninstall Removes a plugin Aliases: remove, rm plugins update Updates a plugin to the latest version Aliases: up, upgrade prune Delete unused versions of tools registry List available tools to install reshim Creates new shims based on bin paths from currently installed tools. run Run task(s) Aliases: r search Search for tools in the registry self-update Updates mise itself. set Set environment variables in mise.toml settings Show current settings settings add Adds a setting to the configuration file settings get Show a current setting settings ls Show current settings Aliases: list settings set Add/update a setting Aliases: create settings unset Clears a setting Aliases: rm, remove, delete, del shell Sets a tool version for the current session. Aliases: sh sync Synchronize tools from other version managers with mise sync node Symlinks all tool versions from an external tool into mise sync python Symlinks all tool versions from an external tool into mise sync ruby Symlinks all ruby tool versions from an external tool into mise tasks Manage tasks Aliases: t tasks add Create a new task tasks deps Display a tree visualization of a dependency graph tasks edit Edit a tasks with $EDITOR tasks info Get information about a task tasks ls List available tasks to execute tasks run Run task(s) Aliases: r test-tool Test a tool installs and executes tool Gets information about a tool tool-stub Execute a tool stub trust Marks a config file as trusted uninstall Removes installed tool versions unset Remove environment variable(s) from the config file. unuse Removes installed tool versions from mise.toml Aliases: rm, remove upgrade Upgrades outdated tools Aliases: up use Installs a tool and adds the version to mise.toml. Aliases: u version Display the version of mise Aliases: v watch Run task(s) and watch for changes to rerun it Aliases: w where Display the installation path for a tool which Shows the path that a tool's bin points to. MISE ACTIVATE Initializes mise in the current shell session This should go into your shell's rc file or login shell. Otherwise, it will only take effect in the current session. (e.g. ~/.zshrc, ~/.zprofile, ~/.zshenv, ~/.bashrc, ~/.bash_profile, ~/.profile, ~/.config/fish/config.fish, or $PROFILE for powershell) Typically, this can be added with something like the following: echo 'eval "$(mise activate zsh)"' >> ~/.zshrc However, this requires that "mise" is in your PATH. If it is not, you need to specify the full path like this: echo 'eval "$(/path/to/mise activate zsh)"' >> ~/.zshrc Customize status output with `status` settings. Usage: mise activate [OPTIONS] [] Options: -q, --quiet Suppress non-error messages -s, --shell Shell type to generate the script for --no-hook-env Do not automatically call hook-env This can be helpful for debugging mise. If you run `eval "$(mise activate --no-hook-env)"`, then you can call `mise hook-env` manually which will output the env vars to stdout without actually modifying the environment. That way you can do things like `mise hook-env --trace` to get more information or just see the values that hook-env is outputting. --shims Use shims instead of modifying PATH Effectively the same as: PATH="$HOME/.local/share/mise/shims:$PATH" `mise activate --shims` does not support all the features of `mise activate`. See https://mise.jdx.dev/dev-tools/shims.html#shims-vs-path for more information --status Show "mise: @" message when changing directories Arguments: Shell type to generate the script for MISE ALIAS Manage version aliases. Usage: mise alias [OPTIONS] [COMMAND] Options: -p, --plugin filter aliases by plugin --no-header Don't show table header MISE ALIAS GET Show an alias for a plugin This is the contents of an alias. entry in ~/.config/mise/config.toml Usage: mise alias get Arguments: The plugin to show the alias for The alias to show MISE ALIAS LS List aliases Shows the aliases that can be specified. These can come from user config or from plugins in `bin/list-aliases`. For user config, aliases are defined like the following in `~/.config/mise/config.toml`: [alias.node.versions] lts = "22.0.0" Usage: mise alias ls [OPTIONS] [] Options: --no-header Don't show table header Arguments: Show aliases for MISE ALIAS SET Add/update an alias for a backend/plugin This modifies the contents of ~/.config/mise/config.toml Usage: mise alias set [] Arguments: The backend/plugin to set the alias for The alias to set The value to set the alias to MISE ALIAS UNSET Clears an alias for a backend/plugin This modifies the contents of ~/.config/mise/config.toml Usage: mise alias unset [] Arguments: The backend/plugin to remove the alias from The alias to remove MISE BIN-PATHS List all the active runtime bin paths Usage: mise bin-paths [] ... Arguments: Tool(s) to look up e.g.: ruby@3 MISE CACHE CLEAR Deletes all cache files in mise Usage: mise cache clear [OPTIONS] [] ... Options: --outdate Mark all cache files as old Arguments: Plugin(s) to clear cache for e.g.: node, python MISE CACHE PRUNE Removes stale mise cache files By default, this command will remove files that have not been accessed in 30 days. Change this with the MISE_CACHE_PRUNE_AGE environment variable. Usage: mise cache prune [OPTIONS] [] ... Options: -v, --verbose Show pruned files --dry-run Just show what would be pruned Arguments: Plugin(s) to clear cache for e.g.: node, python MISE COMPLETION Generate shell completions Usage: mise completion [OPTIONS] [] Options: -s, --shell Shell type to generate completions for --include-bash-completion-lib Include the bash completion library in the bash completion script This is required for completions to work in bash, but it is not included by default you may source it separately or enable this flag to enable it in the script. --usage Always use usage for completions. Currently, usage is the default for fish and bash but not zsh since it has a few quirks to work out first. This requires the `usage` CLI to be installed. https://usage.jdx.dev Arguments: Shell type to generate completions for MISE CONFIG Manage config files Usage: mise config [OPTIONS] [COMMAND] Options: -J, --json Output in JSON format --no-header Do not print table header --tracked-configs List all tracked config files MISE CONFIG GENERATE Generate a mise.toml file Usage: mise config generate [OPTIONS] Options: -o, --output Output to file instead of stdout -t, --tool-versions Path to a .tool-versions file to import tools from MISE CONFIG GET Display the value of a setting in a mise.toml file Usage: mise config get [OPTIONS] [] Options: -f, --file The path to the mise.toml file to edit If not provided, the nearest mise.toml file will be used Arguments: The path of the config to display MISE CONFIG LS List config files currently in use Usage: mise config ls [OPTIONS] Options: -J, --json Output in JSON format --no-header Do not print table header --tracked-configs List all tracked config files MISE CONFIG SET Set the value of a setting in a mise.toml file Usage: mise config set [OPTIONS] Options: -f, --file The path to the mise.toml file to edit If not provided, the nearest mise.toml file will be used -t, --type Arguments: The path of the config to display The value to set the key to MISE DOCTOR Check mise installation for possible problems Usage: mise doctor [OPTIONS] [COMMAND] Options: -J, --json MISE DOCTOR PATH Print the current PATH entries mise is providing Usage: mise doctor path [OPTIONS] Options: -f, --full Print all entries including those not provided by mise MISE EN Starts a new shell with the mise environment built from the current configuration This is an alternative to `mise activate` that allows you to explicitly start a mise session. It will have the tools and environment variables in the configs loaded. Note that changing directories will not update the mise environment. Usage: mise en [OPTIONS] [] Options: -s, --shell Shell to start Defaults to $SHELL Arguments: Directory to start the shell in Default: . MISE ENV Exports env vars to activate mise a single time Use this if you don't want to permanently install mise. It's not necessary to use this if you have `mise activate` in your shell rc file. Usage: mise env [OPTIONS] [] ... Options: -D, --dotenv Output in dotenv format -J, --json Output in JSON format -s, --shell Shell type to generate environment variables for --json-extended Output in JSON format with additional information (source, tool) --redacted Only show redacted environment variables --values Only show values of environment variables Arguments: Tool(s) to use MISE EXEC Execute a command with tool(s) set use this to avoid modifying the shell session or running ad-hoc commands with mise tools set. Tools will be loaded from mise.toml, though they can be overridden with args Note that only the plugin specified will be overridden, so if a `mise.toml` file includes "node 20" but you run `mise exec python@3.11`; it will still load node@20. The "--" separates runtimes from the commands to pass along to the subprocess. Usage: mise exec [OPTIONS] [] ... [] ... Options: -c, --command Command string to execute -j, --jobs Number of jobs to run in parallel [default: 4] --raw Directly pipe stdin/stdout/stderr from plugin to user Sets --jobs=1 Arguments: Tool(s) to start e.g.: node@20 python@3.10 Command string to execute (same as --command) MISE FMT Formats mise.toml Sorts keys and cleans up whitespace in mise.toml Usage: mise fmt [OPTIONS] Options: -a, --all Format all files from the current directory -c, --check Check if the configs are formatted, no formatting is done -s, --stdin Read config from stdin and write its formatted version into stdout MISE GENERATE BOOTSTRAP Generate a script to download+execute mise This is designed to be used in a project where contributors may not have mise installed. Usage: mise generate bootstrap [OPTIONS] Options: -l, --localize Sandboxes mise internal directories like MISE_DATA_DIR and MISE_CACHE_DIR into a `.mise` directory in the project This is necessary if users may use a different version of mise outside the project. -V, --version Specify mise version to fetch -w, --write instead of outputting the script to stdout, write to a file and make it executable --localized-dir Directory to put localized data into MISE GENERATE CONFIG [experimental] Generate a mise.toml file Usage: mise generate config [OPTIONS] Options: -o, --output Output to file instead of stdout -t, --tool-versions Path to a .tool-versions file to import tools from MISE GENERATE DEVCONTAINER Generate a devcontainer to execute mise Usage: mise generate devcontainer [OPTIONS] Options: -i, --image The image to use for the devcontainer -m, --mount-mise-data Bind the mise-data-volume to the devcontainer -n, --name The name of the devcontainer -w, --write write to .devcontainer/devcontainer.json MISE GENERATE GIT-PRE-COMMIT Generate a git pre-commit hook This command generates a git pre-commit hook that runs a mise task like `mise run pre-commit` when you commit changes to your repository. Staged files are passed to the task as `STAGED`. For more advanced pre-commit functionality, see mise's sister project: https://hk.jdx.dev/ Usage: mise generate git-pre-commit [OPTIONS] Options: -t, --task The task to run when the pre-commit hook is triggered -w, --write write to .git/hooks/pre-commit and make it executable --hook Which hook to generate (saves to .git/hooks/$hook) MISE GENERATE GITHUB-ACTION Generate a GitHub Action workflow file This command generates a GitHub Action workflow file that runs a mise task like `mise run ci` when you push changes to your repository. Usage: mise generate github-action [OPTIONS] Options: -t, --task The task to run when the workflow is triggered -w, --write write to .github/workflows/$name.yml --name the name of the workflow to generate MISE GENERATE TASK-DOCS Generate documentation for tasks in a project Usage: mise generate task-docs [OPTIONS] Options: -i, --inject inserts the documentation into an existing file This will look for a special comment, ``, and replace it with the generated documentation. It will replace everything between the comment and the next comment, `` so it can be run multiple times on the same file to update the documentation. -I, --index write only an index of tasks, intended for use with `--multi` -m, --multi render each task as a separate document, requires `--output` to be a directory -o, --output writes the generated docs to a file/directory -r, --root root directory to search for tasks -s, --style