mise Commands
Complete reference for mise, the all-in-one CLI for dev tool version management, task running, and environment variable management. Search by category and copy any command with one click.
How to UseExpand how to useCollapse how to use
- 1
Filter by category
Switch between Tool Management, Task Runner, Env & Shell, Config & Plugins, and System & Maintenance to quickly reach what you need.
- 2
Search details
Use the search box to match command names, option notes, and example commands all at once.
- 3
Copy and run
Copy any command snippet with one click, then run it directly in your terminal.
mise use
Key points
- --global (-g): Add to global configuration.
- --env <env>: Add to an environment-specific config file.
Examples
mise use node@22Install Node.js 22 and record it in mise.toml.mise use --global python@3.12Set Python 3.12 globally.mise install
Key points
- --force (-f): Reinstall even if already installed.
- --verbose (-v): Show detailed output.
Examples
mise install node@22Install Node.js 22.mise installInstall all tools defined in mise.toml.mise ls
Key points
- --current (-c): Show only currently active versions.
- --json (-J): Output as JSON.
Examples
mise lsList all installed tools.mise ls nodeShow installed versions of Node.js.mise ls-remote
Key points
- --all: Show all versions including pre-releases.
- TOOL@PREFIX: Filter by version prefix.
Examples
mise ls-remote nodeList all available Node.js versions.mise ls-remote python@3.12Show all Python 3.12.x patch versions.mise latest
Key points
- TOOL@PREFIX: Search for the latest matching a prefix.
- --installed (-i): Show only the latest installed version.
Examples
mise latest nodeShow the latest stable Node.js version.mise latest python@3.12Show the latest Python 3.12.x version.mise upgrade
Key points
- --interactive (-i): Interactively select which tools to upgrade.
- --bump: Also update version constraints in mise.toml.
Examples
mise upgrade nodeUpgrade Node.js to the latest version.mise upgradeUpgrade all tools.mise outdated
Key points
- --json (-J): Output as JSON.
- --bump: Also show version constraints from mise.toml.
Examples
mise outdatedList all tools with available updates.mise outdated nodeCheck if a newer version of Node.js is available.mise uninstall
Key points
- --all: Remove all versions of the specified tool.
- --dry-run (-n): Preview without actually removing.
Examples
mise uninstall node@20Uninstall Node.js 20.mise uninstall node --allRemove all installed versions of Node.js.mise unuse
Key points
- --global (-g): Remove from global configuration.
- TOOL: Specify the tool name to remove.
Examples
mise unuse nodeRemove the Node.js entry from mise.toml.mise unuse --global pythonRemove Python from global configuration.mise prune
Key points
- --dry-run (-n): Preview which versions would be removed.
- TOOL: Limit pruning to a specific tool.
Examples
mise pruneRemove all unused tool versions.mise prune --dry-runPreview versions to be removed without deleting.mise where
Key points
- TOOL@VERSION: Specify a version to get its path.
- Returns an error if the path is not found.
Examples
mise where node@22Show the installation directory of Node.js 22.mise where pythonShow the path of the currently active Python.mise which
Key points
- --plugin: Show the plugin that provides the binary.
- --version: Show the version of the binary.
Examples
mise which nodeShow the real path of the node command.mise which python --versionShow the version of the python command.mise search
Key points
- NAME: Search keyword.
- Performs a partial match search across all tools in the registry.
Examples
mise search rustSearch for tools containing "rust".mise search linterSearch for linter-related tools.mise link
Key points
- TOOL@VERSION: Specify the tool name and version.
- PATH: The directory path to link.
Examples
mise link node@system /usr/localManage the system Node.js through mise.mise link python@custom ~/my-pythonLink a custom-built Python installation.mise registry
Key points
- NAME: Filter by tool name.
- Displays backend information (aqua, cargo, npm, etc.).
Examples
mise registryList all registered tools.mise registry nodeShow registry information for Node.js.mise run
Key points
- --timings (-t): Show execution time for each task.
- --force (-f): Ignore cache and re-run.
Examples
mise run buildRun the build task.mise run test -- --coverageRun the test task with additional options.mise tasks ls
Key points
- --extended (-x): Show detailed information.
- --json (-J): Output as JSON.
Examples
mise tasks lsList all tasks.mise tasks ls --extendedShow tasks with source files and descriptions.mise tasks add
Key points
- --file (-f): Create as a file-based task.
- --description (-d): Set a description for the task.
Examples
mise tasks add build -- npm run buildAdd an inline build task.mise tasks add lint --fileCreate a file-based lint task.mise tasks edit
Key points
- TASK: Name of the task to edit.
- Uses the editor configured in $EDITOR.
Examples
mise tasks edit buildEdit the build task file.mise tasks edit testEdit the test task file.mise tasks info
Key points
- TASK: Name of the task to inspect.
- --json (-J): Output as JSON.
Examples
mise tasks info buildShow details about the build task.mise tasks info deploy --jsonOutput deploy task information as JSON.mise tasks deps
Key points
- TASKS: Task names to display (multiple allowed).
- --dot: Output in Graphviz DOT format.
Examples
mise tasks depsShow dependencies for all tasks.mise tasks deps deploy --dotOutput the deploy task dependency graph in DOT format.mise tasks validate
Key points
- TASKS: Task names to validate.
- Checks the consistency of all task configurations.
Examples
mise tasks validateValidate all task definitions.mise tasks validate build testValidate only the build and test tasks.mise watch
Key points
- --glob (-g): Specify the file pattern to watch.
- TASK: Name of the task to run.
Examples
mise watch testAutomatically run tests on file changes.mise watch -g 'src/**/*.ts' buildRun build when TypeScript files change.mise activate
Key points
- SHELL: Shell type (bash, zsh, fish).
- --shims: Integrate using shim mode (better performance).
Examples
eval "$(mise activate zsh)"Add to .zshrc to enable mise.eval "$(mise activate bash --shims)"Integrate into bash using shim mode.mise deactivate
Key points
- Removes mise integration from the current shell session.
- Does not modify any configuration files.
Examples
mise deactivateDisable mise in the current session.mise deactivate && which nodeDisable mise and check the system node path.mise shell
Key points
- TOOL@VERSION: Tool and version to set.
- --unset (-u): Clear the session override.
Examples
mise shell node@20Use Node.js 20 in this session only.mise shell python@3.11 node@22Temporarily switch versions of multiple tools.mise exec
Key points
- TOOL@VERSION: Tool and version to use.
- -- COMMAND: Command to execute.
Examples
mise exec node@20 -- node app.jsRun app.js with Node.js 20.mise exec python@3.12 -- pytestRun pytest with Python 3.12.mise en
Key points
- DIR: Target directory.
- Tool settings revert when the subshell exits.
Examples
mise en ./my-projectStart a subshell with the my-project environment.mise en .Launch a subshell with the current directory environment.mise set
Key points
- --file <file>: Specify the config file to write to.
- --env <env>: Add to an environment-specific config.
Examples
mise set DATABASE_URL=postgres://localhost/mydbSet DATABASE_URL.mise set --env staging API_KEY=xxxSet API_KEY in the staging environment.mise env
Key points
- --json (-J): Output as JSON.
- --shell (-s): Specify the target shell format.
Examples
mise envOutput current environment variables in export format.eval "$(mise env)"Apply environment variables to the current shell.mise unset
Key points
- ENV_KEY: Name of the environment variable to remove.
- --file <file>: Specify the target config file.
Examples
mise unset DATABASE_URLRemove DATABASE_URL.mise unset API_KEY SECRET_KEYRemove multiple environment variables at once.mise config ls
Key points
- --json (-J): Output as JSON.
- Priority order (closer configs take precedence) is also visible.
Examples
mise config lsShow active config files in priority order.mise config ls --jsonOutput config file information as JSON.mise config set
Key points
- KEY VALUE: Configuration key and value.
- --file <file>: Specify the file to write to.
Examples
mise config set python_venv_auto_create trueEnable automatic Python virtual environment creation.mise config set jobs 8Set the number of parallel jobs to 8.mise trust
Key points
- CONFIG_FILE: Configuration file to trust.
- --untrust: Revoke trust.
Examples
mise trustTrust the mise.toml in the current directory.mise trust ~/projects/app/mise.tomlTrust a config file at a specific path.mise settings ls
Key points
- --json (-J): Output as JSON.
- --keys: Show only setting keys.
Examples
mise settings lsList all settings.mise settings ls --jsonOutput settings as JSON.mise settings set
Key points
- SETTING VALUE: Setting name and value.
- Settings are saved to ~/.config/mise/config.toml.
Examples
mise settings set experimental trueEnable experimental features.mise settings set legacy_version_file trueEnable support for legacy files like .node-version.mise plugins ls
Key points
- --core (-c): Also show core plugins.
- --urls (-u): Show Git repository URLs.
Examples
mise plugins lsList all installed plugins.mise plugins ls --urlsList plugins with their source URLs.mise plugins install
Key points
- PLUGIN: Plugin name (short name or URL).
- --force (-f): Reinstall even if already installed.
Examples
mise plugins install elixirInstall the Elixir plugin.mise plugins install custom https://github.com/user/asdf-custom.gitAdd a custom plugin from a Git URL.mise plugins uninstall
Key points
- PLUGIN: Name of the plugin to remove.
- --purge (-p): Also completely remove plugin data.
Examples
mise plugins uninstall elixirRemove the Elixir plugin.mise plugins uninstall custom --purgeRemove the custom plugin and all its data.mise plugins update
Key points
- PLUGIN: Name of the plugin to update.
- --all: Update all plugins.
Examples
mise plugins updateUpdate all plugins to the latest version.mise plugins update elixirUpdate only the Elixir plugin.mise fmt
Key points
- --check: Check formatting only without making changes.
- Applies TOML-standard formatting.
Examples
mise fmtFormat mise.toml.mise fmt --checkPreview formatting changes without applying them.mise edit
Key points
- Uses the editor set in $EDITOR or $VISUAL.
- Creates the config file if it does not exist.
Examples
mise editEdit the mise.toml in the current directory.EDITOR=code mise editOpen mise.toml in VS Code.mise doctor
Key points
- Checks PATH setup, plugin status, and config consistency.
- Suggests fixes when problems are found.
Examples
mise doctorDiagnose and list environment issues.mise doctor 2>&1 | grep WARNFilter and show only warnings.mise version
Key points
- Also displays the installation method (cargo, brew, etc.).
- Useful basic information for troubleshooting.
Examples
mise versionShow the mise version.mise --versionShow only the version number.mise self-update
Key points
- VERSION: Specify a particular version to update to.
- --force (-f): Reinstall even if on the same version.
Examples
mise self-updateUpdate mise to the latest version.mise self-update 2025.1.0Update mise to a specific version.mise cache clear
Key points
- PLUGIN: Clear cache for a specific plugin only.
- Run without arguments to clear all cache.
Examples
mise cache clearClear all cache.mise cache clear nodeClear only the Node.js cache.mise reshim
Key points
- Used when mise is integrated with shim mode.
- Updates PATH after adding or removing tools.
Examples
mise reshimRegenerate all shims.mise reshim nodeRegenerate only the Node.js shims.mise completion
Key points
- SHELL: Target shell (bash, zsh, fish).
- Add the output to your shell configuration file.
Examples
mise completion zsh > ~/.zfunc/_miseGenerate and save the zsh completion script.mise completion bash >> ~/.bashrcAdd bash completion to .bashrc.mise generate github-action
Key points
- --write (-w): Write directly to a file.
- Auto-generates CI steps from tool definitions in mise.toml.
Examples
mise generate github-action --writeGenerate and save a GitHub Actions workflow.mise generate github-actionPreview workflow content in stdout.mise generate config
Key points
- --output (-o): Output file path.
- Can convert from existing .tool-versions files.
Examples
mise generate configInteractively generate a mise.toml.mise generate config -o mise.tomlOutput the config file to a specified path.mise sync node
Key points
- Makes existing nvm/nodenv installs available through mise.
- Avoids duplicate installations to save disk space.
Examples
mise sync nodeSync nvm Node.js versions into mise.mise sync node --nvmImport Node.js versions from nvm.mise implode
Key points
- --config: Also remove configuration files.
- --dry-run (-n): Preview what would be removed.
Examples
mise implodeRemove mise and all installed tools.mise implode --dry-runPreview what would be removed without executing.About mise (mise-en-place)
mise (mise-en-place) is an all-in-one CLI tool that unifies dev tool version management, task running, and environment variable management. It leverages an asdf-compatible plugin ecosystem while offering the speed of Rust and an intuitive UI. Beyond managing runtimes like Node.js, Python, Go, and Ruby, it also covers Makefile-alternative task running and directory-scoped environment variable management.
Features
- Version management for hundreds of tools including Node.js, Python, Go, and Ruby
- asdf-compatible plugins plus support for aqua, cargo, npm, and more backends
- Declarative project-level configuration via mise.toml
- Built-in task runner as an alternative to Makefile and npm scripts
- Directory-scoped environment variable management (direnv alternative)
- Fast installation and version switching powered by Rust
Use Cases
- Standardize runtime versions across a team
- Migrate from asdf to a faster alternative
- Replace Makefile or npm scripts with a simple task runner
- Automatically switch environment variables per project
- Simplify tool setup in CI/CD pipelines
FAQ
What is the difference between mise and asdf?
mise is compatible with asdf plugins but is written in Rust for significantly faster performance. It also includes built-in features not available in asdf, such as a task runner, environment variable management, and lockfile support. Since mise reads .tool-versions files directly, migrating from asdf is straightforward.
What is the mise task runner feature?
You can define tasks in mise.toml and run them with mise run <task-name>. It supports dependency definitions, file watching for automatic re-runs (mise watch), and parallel execution. It works as a drop-in replacement for Makefile or npm scripts.
How do I use environment variable management?
Use mise set KEY=VALUE to record environment variables in mise.toml. They are automatically activated when you enter the directory. Environment-specific configs (--env staging) and encrypted secret storage are also supported.
What is the difference between activate mode and shim mode?
Activate mode uses shell hooks to automatically switch versions when you change directories. Shim mode is a lighter approach that adds a shim directory to PATH, resulting in faster shell startup. Activate mode is generally recommended.
How do I use mise in CI/CD?
Use mise generate github-action to automatically generate a GitHub Actions workflow. Run mise install --yes to skip interactive prompts, and use a mise.lock file to guarantee reproducibility.
How do I install mise?
On macOS, use brew install mise. On Linux, run curl https://mise.run | sh. After installation, add eval "$(mise activate zsh)" to your .zshrc to enable shell integration. For details, visit the official site at mise.jdx.dev.
