Skip to main content
Toolsbase Logo

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 use
  1. 1

    Filter by category

    Switch between Tool Management, Task Runner, Env & Shell, Config & Plugins, and System & Maintenance to quickly reach what you need.

  2. 2

    Search details

    Use the search box to match command names, option notes, and example commands all at once.

  3. 3

    Copy and run

    Copy any command snippet with one click, then run it directly in your terminal.

mise use

Install a tool and add it to mise.toml.

Key points

  • --global (-g): Add to global configuration.
  • --env <env>: Add to an environment-specific config file.

Examples

mise use node@22
Install Node.js 22 and record it in mise.toml.
mise use --global python@3.12
Set Python 3.12 globally.

mise install

Install tools without modifying the config file.

Key points

  • --force (-f): Reinstall even if already installed.
  • --verbose (-v): Show detailed output.

Examples

mise install node@22
Install Node.js 22.
mise install
Install all tools defined in mise.toml.

mise ls

List installed tools.

Key points

  • --current (-c): Show only currently active versions.
  • --json (-J): Output as JSON.

Examples

mise ls
List all installed tools.
mise ls node
Show installed versions of Node.js.

mise ls-remote

List remotely available versions of a tool.

Key points

  • --all: Show all versions including pre-releases.
  • TOOL@PREFIX: Filter by version prefix.

Examples

mise ls-remote node
List all available Node.js versions.
mise ls-remote python@3.12
Show all Python 3.12.x patch versions.

mise latest

Show the latest version of a tool.

Key points

  • TOOL@PREFIX: Search for the latest matching a prefix.
  • --installed (-i): Show only the latest installed version.

Examples

mise latest node
Show the latest stable Node.js version.
mise latest python@3.12
Show the latest Python 3.12.x version.

mise upgrade

Upgrade tools to their latest versions.

Key points

  • --interactive (-i): Interactively select which tools to upgrade.
  • --bump: Also update version constraints in mise.toml.

Examples

mise upgrade node
Upgrade Node.js to the latest version.
mise upgrade
Upgrade all tools.

mise outdated

List tools that have newer versions available.

Key points

  • --json (-J): Output as JSON.
  • --bump: Also show version constraints from mise.toml.

Examples

mise outdated
List all tools with available updates.
mise outdated node
Check if a newer version of Node.js is available.

mise uninstall

Uninstall a tool.

Key points

  • --all: Remove all versions of the specified tool.
  • --dry-run (-n): Preview without actually removing.

Examples

mise uninstall node@20
Uninstall Node.js 20.
mise uninstall node --all
Remove all installed versions of Node.js.

mise unuse

Remove a tool definition from mise.toml.

Key points

  • --global (-g): Remove from global configuration.
  • TOOL: Specify the tool name to remove.

Examples

mise unuse node
Remove the Node.js entry from mise.toml.
mise unuse --global python
Remove Python from global configuration.

mise prune

Remove unused tool versions.

Key points

  • --dry-run (-n): Preview which versions would be removed.
  • TOOL: Limit pruning to a specific tool.

Examples

mise prune
Remove all unused tool versions.
mise prune --dry-run
Preview versions to be removed without deleting.

mise where

Show the installation path of a tool.

Key points

  • TOOL@VERSION: Specify a version to get its path.
  • Returns an error if the path is not found.

Examples

mise where node@22
Show the installation directory of Node.js 22.
mise where python
Show the path of the currently active Python.

mise which

Show the path to a tool binary.

Key points

  • --plugin: Show the plugin that provides the binary.
  • --version: Show the version of the binary.

Examples

mise which node
Show the real path of the node command.
mise which python --version
Show the version of the python command.

mise search

Search the registry for tools.

Key points

  • NAME: Search keyword.
  • Performs a partial match search across all tools in the registry.

Examples

mise search rust
Search for tools containing "rust".
mise search linter
Search for linter-related tools.

mise link

Link an existing binary as a mise-managed tool.

Key points

  • TOOL@VERSION: Specify the tool name and version.
  • PATH: The directory path to link.

Examples

mise link node@system /usr/local
Manage the system Node.js through mise.
mise link python@custom ~/my-python
Link a custom-built Python installation.

mise registry

Show the tool registry.

Key points

  • NAME: Filter by tool name.
  • Displays backend information (aqua, cargo, npm, etc.).

Examples

mise registry
List all registered tools.
mise registry node
Show registry information for Node.js.

mise run

Run a defined task (also callable as mise <task-name>).

Key points

  • --timings (-t): Show execution time for each task.
  • --force (-f): Ignore cache and re-run.

Examples

mise run build
Run the build task.
mise run test -- --coverage
Run the test task with additional options.

mise tasks ls

List all defined tasks.

Key points

  • --extended (-x): Show detailed information.
  • --json (-J): Output as JSON.

Examples

mise tasks ls
List all tasks.
mise tasks ls --extended
Show tasks with source files and descriptions.

mise tasks add

Add a new task.

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 build
Add an inline build task.
mise tasks add lint --file
Create a file-based lint task.

mise tasks edit

Open a task file in the editor.

Key points

  • TASK: Name of the task to edit.
  • Uses the editor configured in $EDITOR.

Examples

mise tasks edit build
Edit the build task file.
mise tasks edit test
Edit the test task file.

mise tasks info

Show detailed information about a task.

Key points

  • TASK: Name of the task to inspect.
  • --json (-J): Output as JSON.

Examples

mise tasks info build
Show details about the build task.
mise tasks info deploy --json
Output deploy task information as JSON.

mise tasks deps

Show the dependency graph of tasks.

Key points

  • TASKS: Task names to display (multiple allowed).
  • --dot: Output in Graphviz DOT format.

Examples

mise tasks deps
Show dependencies for all tasks.
mise tasks deps deploy --dot
Output the deploy task dependency graph in DOT format.

mise tasks validate

Validate task definitions.

Key points

  • TASKS: Task names to validate.
  • Checks the consistency of all task configurations.

Examples

mise tasks validate
Validate all task definitions.
mise tasks validate build test
Validate only the build and test tasks.

mise watch

Watch files for changes and automatically run a task.

Key points

  • --glob (-g): Specify the file pattern to watch.
  • TASK: Name of the task to run.

Examples

mise watch test
Automatically run tests on file changes.
mise watch -g 'src/**/*.ts' build
Run build when TypeScript files change.

mise activate

Integrate mise into the shell (add to .bashrc or similar).

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

Disable shell integration.

Key points

  • Removes mise integration from the current shell session.
  • Does not modify any configuration files.

Examples

mise deactivate
Disable mise in the current session.
mise deactivate && which node
Disable mise and check the system node path.

mise shell

Override tool versions for the current shell session only.

Key points

  • TOOL@VERSION: Tool and version to set.
  • --unset (-u): Clear the session override.

Examples

mise shell node@20
Use Node.js 20 in this session only.
mise shell python@3.11 node@22
Temporarily switch versions of multiple tools.

mise exec

Run a command with a specific tool version.

Key points

  • TOOL@VERSION: Tool and version to use.
  • -- COMMAND: Command to execute.

Examples

mise exec node@20 -- node app.js
Run app.js with Node.js 20.
mise exec python@3.12 -- pytest
Run pytest with Python 3.12.

mise en

Activate the environment of a directory in a subshell.

Key points

  • DIR: Target directory.
  • Tool settings revert when the subshell exits.

Examples

mise en ./my-project
Start a subshell with the my-project environment.
mise en .
Launch a subshell with the current directory environment.

mise set

Set an environment variable in mise.toml.

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/mydb
Set DATABASE_URL.
mise set --env staging API_KEY=xxx
Set API_KEY in the staging environment.

mise env

Export environment variables in shell format.

Key points

  • --json (-J): Output as JSON.
  • --shell (-s): Specify the target shell format.

Examples

mise env
Output current environment variables in export format.
eval "$(mise env)"
Apply environment variables to the current shell.

mise unset

Remove an environment variable from mise.toml.

Key points

  • ENV_KEY: Name of the environment variable to remove.
  • --file <file>: Specify the target config file.

Examples

mise unset DATABASE_URL
Remove DATABASE_URL.
mise unset API_KEY SECRET_KEY
Remove multiple environment variables at once.

mise config ls

List currently loaded configuration files.

Key points

  • --json (-J): Output as JSON.
  • Priority order (closer configs take precedence) is also visible.

Examples

mise config ls
Show active config files in priority order.
mise config ls --json
Output config file information as JSON.

mise config set

Change a configuration value in mise.toml.

Key points

  • KEY VALUE: Configuration key and value.
  • --file <file>: Specify the file to write to.

Examples

mise config set python_venv_auto_create true
Enable automatic Python virtual environment creation.
mise config set jobs 8
Set the number of parallel jobs to 8.

mise trust

Mark a configuration file as trusted.

Key points

  • CONFIG_FILE: Configuration file to trust.
  • --untrust: Revoke trust.

Examples

mise trust
Trust the mise.toml in the current directory.
mise trust ~/projects/app/mise.toml
Trust a config file at a specific path.

mise settings ls

List all mise settings.

Key points

  • --json (-J): Output as JSON.
  • --keys: Show only setting keys.

Examples

mise settings ls
List all settings.
mise settings ls --json
Output settings as JSON.

mise settings set

Change a mise setting.

Key points

  • SETTING VALUE: Setting name and value.
  • Settings are saved to ~/.config/mise/config.toml.

Examples

mise settings set experimental true
Enable experimental features.
mise settings set legacy_version_file true
Enable support for legacy files like .node-version.

mise plugins ls

List installed plugins.

Key points

  • --core (-c): Also show core plugins.
  • --urls (-u): Show Git repository URLs.

Examples

mise plugins ls
List all installed plugins.
mise plugins ls --urls
List plugins with their source URLs.

mise plugins install

Install a plugin.

Key points

  • PLUGIN: Plugin name (short name or URL).
  • --force (-f): Reinstall even if already installed.

Examples

mise plugins install elixir
Install the Elixir plugin.
mise plugins install custom https://github.com/user/asdf-custom.git
Add a custom plugin from a Git URL.

mise plugins uninstall

Remove a plugin.

Key points

  • PLUGIN: Name of the plugin to remove.
  • --purge (-p): Also completely remove plugin data.

Examples

mise plugins uninstall elixir
Remove the Elixir plugin.
mise plugins uninstall custom --purge
Remove the custom plugin and all its data.

mise plugins update

Update plugins to their latest versions.

Key points

  • PLUGIN: Name of the plugin to update.
  • --all: Update all plugins.

Examples

mise plugins update
Update all plugins to the latest version.
mise plugins update elixir
Update only the Elixir plugin.

mise fmt

Format mise.toml.

Key points

  • --check: Check formatting only without making changes.
  • Applies TOML-standard formatting.

Examples

mise fmt
Format mise.toml.
mise fmt --check
Preview formatting changes without applying them.

mise edit

Open mise.toml in an editor.

Key points

  • Uses the editor set in $EDITOR or $VISUAL.
  • Creates the config file if it does not exist.

Examples

mise edit
Edit the mise.toml in the current directory.
EDITOR=code mise edit
Open mise.toml in VS Code.

mise doctor

Diagnose environment issues.

Key points

  • Checks PATH setup, plugin status, and config consistency.
  • Suggests fixes when problems are found.

Examples

mise doctor
Diagnose and list environment issues.
mise doctor 2>&1 | grep WARN
Filter and show only warnings.

mise version

Show the mise version.

Key points

  • Also displays the installation method (cargo, brew, etc.).
  • Useful basic information for troubleshooting.

Examples

mise version
Show the mise version.
mise --version
Show only the version number.

mise self-update

Update mise itself to the latest version.

Key points

  • VERSION: Specify a particular version to update to.
  • --force (-f): Reinstall even if on the same version.

Examples

mise self-update
Update mise to the latest version.
mise self-update 2025.1.0
Update mise to a specific version.

mise cache clear

Clear the cache.

Key points

  • PLUGIN: Clear cache for a specific plugin only.
  • Run without arguments to clear all cache.

Examples

mise cache clear
Clear all cache.
mise cache clear node
Clear only the Node.js cache.

mise reshim

Regenerate shims.

Key points

  • Used when mise is integrated with shim mode.
  • Updates PATH after adding or removing tools.

Examples

mise reshim
Regenerate all shims.
mise reshim node
Regenerate only the Node.js shims.

mise completion

Generate shell completion scripts.

Key points

  • SHELL: Target shell (bash, zsh, fish).
  • Add the output to your shell configuration file.

Examples

mise completion zsh > ~/.zfunc/_mise
Generate and save the zsh completion script.
mise completion bash >> ~/.bashrc
Add bash completion to .bashrc.

mise generate github-action

Generate a GitHub Actions workflow file.

Key points

  • --write (-w): Write directly to a file.
  • Auto-generates CI steps from tool definitions in mise.toml.

Examples

mise generate github-action --write
Generate and save a GitHub Actions workflow.
mise generate github-action
Preview workflow content in stdout.

mise generate config

Auto-generate a mise.toml.

Key points

  • --output (-o): Output file path.
  • Can convert from existing .tool-versions files.

Examples

mise generate config
Interactively generate a mise.toml.
mise generate config -o mise.toml
Output the config file to a specified path.

mise sync node

Sync Node.js versions from nvm or nodenv.

Key points

  • Makes existing nvm/nodenv installs available through mise.
  • Avoids duplicate installations to save disk space.

Examples

mise sync node
Sync nvm Node.js versions into mise.
mise sync node --nvm
Import Node.js versions from nvm.

mise implode

Completely uninstall mise.

Key points

  • --config: Also remove configuration files.
  • --dry-run (-n): Preview what would be removed.

Examples

mise implode
Remove mise and all installed tools.
mise implode --dry-run
Preview 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.