.TH MISE 1 .SH NAME mise \- Dev tools, env vars, and tasks in one CLI .SH SYNOPSIS \fBmise\fR [OPTIONS] [] [] ... [] ... [COMMAND] .SH DESCRIPTION mise prepares your development environment before each command runs. https://github.com/jdx/mise .PP .SH OPTIONS .TP \fB\-c, \-\-continue\-on\-error\fR Continue running tasks even if one fails .TP \fB\-C, \-\-cd\fR \fI\fR Change directory before running command .TP \fB\-E, \-\-env\fR \fI\fR Set the environment for loading `mise..toml` .TP \fB\-f, \-\-force\fR Force the operation .TP \fB\-j, \-\-jobs\fR \fI\fR How many jobs to run in parallel [default: 8] .TP \fB\-n, \-\-dry\-run\fR Dry run, don't actually do anything .TP \fB\-P, \-\-profile\fR \fI\fR Set the profile (environment) .TP \fB\-q, \-\-quiet\fR Suppress non\-error messages .TP \fB\-s, \-\-shell\fR \fI\fR .TP \fB\-t, \-\-tool\fR \fI\fR Tool(s) to run in addition to what is in mise.toml files e.g.: node@20 python@3.10 .TP \fB\-v, \-\-verbose\fR Show extra output (use \-vv for even more) .TP \fB\-V, \-\-version\fR .TP \fB\-y, \-\-yes\fR Answer yes to all confirmation prompts .TP \fB\-\-debug\fR Sets log level to debug .TP \fB\-\-log\-level\fR \fI\fR .TP \fB\-\-no\-config\fR Do not load any config files Can also use `MISE_NO_CONFIG=1` .TP \fB\-\-no\-env\fR Do not load environment variables from config files Can also use `MISE_NO_ENV=1` .TP \fB\-\-no\-hooks\fR Do not execute hooks from config files Can also use `MISE_NO_HOOKS=1` .TP \fB\-\-no\-timings\fR Hides elapsed time after each task completes Default to always hide with `MISE_TASK_TIMINGS=0` .TP \fB\-\-output\fR \fI\fR .TP \fB\-\-raw\fR Read/write directly to stdin/stdout/stderr instead of by line .TP \fB\-\-locked\fR Require lockfile URLs to be present during installation Fails if tools don't have pre\-resolved URLs in the lockfile for the current platform. This prevents API calls to GitHub, aqua registry, etc. Can also be enabled via MISE_LOCKED=1 or settings.locked=true .TP \fB\-\-silent\fR Suppress all task output and mise non\-error messages .TP \fB\-\-timings\fR Shows elapsed time after each task completes Default to always show with `MISE_TASK_TIMINGS=1` .TP \fB\-\-trace\fR Sets log level to trace .SH ARGUMENTS .TP \fB\fR Task to run. Shorthand for `mise tasks run `. .TP \fB\fR Task arguments .SH COMMANDS .TP \fBactivate\fR Initializes mise in the current shell session .TP \fBtool\-alias\fR Manage tool version aliases. .TP \fBtool\-alias get\fR Show an alias for a tool .TP \fBtool\-alias ls\fR List tool version aliases .RS \fIAliases: \fRlist .RE .TP \fBtool\-alias set\fR Add/update an alias for a tool/backend .RS \fIAliases: \fRadd, create .RE .TP \fBtool\-alias unset\fR Clears an alias for a tool/backend .RS \fIAliases: \fRrm, remove, delete, del .RE .TP \fBbackends\fR Manage backends .TP \fBbackends ls\fR List built\-in backends .RS \fIAliases: \fRlist .RE .TP \fBbin\-paths\fR List all the active runtime bin paths .TP \fBbootstrap\fR [experimental] Set up a machine for the current config in one command .TP \fBbootstrap launchd\fR Manage macOS LaunchAgents from `[bootstrap.macos.launchd.agents]` .TP \fBbootstrap launchd apply\fR .TP \fBbootstrap launchd status\fR .TP \fBbootstrap macos\-defaults\fR Manage macOS defaults from `[bootstrap.macos.defaults]` .TP \fBbootstrap macos\-defaults apply\fR .TP \fBbootstrap macos\-defaults status\fR .TP \fBbootstrap packages\fR Manage bootstrap system packages from `[bootstrap.packages]` .TP \fBbootstrap packages brew\fR Manage Homebrew taps used by bootstrap packages .TP \fBbootstrap packages brew tap\fR Add a Homebrew tap URL to [bootstrap.brew.taps] .TP \fBbootstrap packages brew untap\fR Remove Homebrew tap URLs from [bootstrap.brew.taps] .RS \fIAliases: \fRremove, rm .RE .TP \fBbootstrap packages install\fR Install missing system packages from `[bootstrap.packages]` .RS \fIAliases: \fRi .RE .TP \fBbootstrap packages status\fR Show the status of system packages from `[bootstrap.packages]` .RS \fIAliases: \fRls .RE .TP \fBbootstrap packages upgrade\fR Upgrade installed bootstrap packages from `[bootstrap.packages]` .RS \fIAliases: \fRup .RE .TP \fBbootstrap packages use\fR Add bootstrap packages to [bootstrap.packages] and install them .RS \fIAliases: \fRu .RE .TP \fBbootstrap systemd\fR Manage systemd user services from `[bootstrap.linux.systemd.units]` .TP \fBbootstrap systemd apply\fR .TP \fBbootstrap systemd status\fR .TP \fBbootstrap user\fR Manage current\-user bootstrap settings from `[bootstrap.user]` .TP \fBbootstrap user apply\fR .TP \fBbootstrap user status\fR .TP \fBcache\fR Manage the mise cache .TP \fBcache clear\fR Deletes all cache files in mise .RS \fIAliases: \fRc .RE .TP \fBcache path\fR Show the cache directory path .RS \fIAliases: \fRdir .RE .TP \fBcache prune\fR Removes stale mise cache files .RS \fIAliases: \fRp .RE .TP \fBcompletion\fR Generate shell completions .TP \fBconfig\fR Manage config files .RS \fIAliases: \fRcfg .RE .TP \fBconfig get\fR Display the value of a setting in a mise.toml file .TP \fBconfig ls\fR List config files currently in use .RS \fIAliases: \fRlist .RE .TP \fBconfig set\fR Set the value of a setting in a mise.toml file .TP \fBdeactivate\fR Disable mise for current shell session .TP \fBdotfiles\fR [experimental] Manage dotfiles from `[dotfiles]` .TP \fBdotfiles add\fR Add or update dotfiles in `[dotfiles]` .TP \fBdotfiles apply\fR Apply dotfiles from `[dotfiles]` .TP \fBdotfiles edit\fR Edit a managed dotfile source .TP \fBdotfiles status\fR Show the status of dotfiles from `[dotfiles]` .RS \fIAliases: \fRls .RE .TP \fBdoctor\fR Check mise installation for possible problems .RS \fIAliases: \fRdr .RE .TP \fBdoctor path\fR Print the current PATH entries mise is providing .TP \fBen\fR Starts a new shell with the mise environment built from the current configuration .TP \fBenv\fR Exports env vars to activate mise a single time .RS \fIAliases: \fRe .RE .TP \fBexec\fR Execute a command with tool(s) set .RS \fIAliases: \fRx .RE .TP \fBfmt\fR Formats mise.toml .TP \fBgenerate\fR Generate files for various tools/services .RS \fIAliases: \fRgen .RE .TP \fBgenerate bootstrap\fR Generate a script to download+execute mise .TP \fBgenerate config\fR Generate a mise.toml file .TP \fBgenerate devcontainer\fR Generate a devcontainer to execute mise .TP \fBgenerate git\-pre\-commit\fR Generate a git pre\-commit hook .RS \fIAliases: \fRpre\-commit .RE .TP \fBgenerate github\-action\fR Generate a GitHub Action workflow file .TP \fBgenerate task\-docs\fR Generate documentation for tasks in a project .TP \fBgenerate task\-stubs\fR Generates shims to run mise tasks .TP \fBgenerate tool\-stub\fR Generate a tool stub for HTTP\-based tools .TP \fBimplode\fR Removes mise CLI and all related data .TP \fBedit\fR Edit mise.toml interactively .TP \fBinstall\fR Install a tool version .RS \fIAliases: \fRi .RE .TP \fBinstall\-into\fR Install a tool version to a specific path .TP \fBlatest\fR Gets the latest available version for a plugin .TP \fBlink\fR Symlinks a tool version into mise .RS \fIAliases: \fRln .RE .TP \fBlock\fR Update lockfile checksums and URLs for all specified platforms .TP \fBls\fR List installed and active tool versions .RS \fIAliases: \fRlist .RE .TP \fBls\-remote\fR List runtime versions available for install. .TP \fBmcp\fR Run Model Context Protocol (MCP) server .TP \fBoci\fR [experimental] Build OCI container images from a mise.toml .TP \fBoci build\fR [experimental] Build an OCI image from the current mise.toml .TP \fBoci push\fR [experimental] Build an OCI image and push it to a registry .TP \fBoci run\fR [experimental] Build an OCI image from the current mise.toml and run a command in it .TP \fBoutdated\fR Shows outdated tool versions .TP \fBpatrons\fR Show the individuals supporting mise as Patron\-tier members .TP \fBplugins\fR Manage plugins .RS \fIAliases: \fRp .RE .TP \fBplugins install\fR Install a plugin .RS \fIAliases: \fRi, a, add .RE .TP \fBplugins link\fR Symlinks a plugin into mise .RS \fIAliases: \fRln .RE .TP \fBplugins ls\fR List installed plugins .RS \fIAliases: \fRlist .RE .TP \fBplugins ls\-remote\fR .RS \fIAliases: \fRlist\-remote, list\-all .RE .TP \fBplugins uninstall\fR Removes a plugin .RS \fIAliases: \fRremove, rm .RE .TP \fBplugins update\fR Updates a plugin to the latest version .RS \fIAliases: \fRup, upgrade .RE .TP \fBdeps\fR [experimental] Manage project dependencies .RS \fIAliases: \fRdep .RE .TP \fBdeps add\fR Add a dependency .TP \fBdeps install\fR Install all project dependencies .TP \fBdeps remove\fR Remove a dependency .TP \fBprune\fR Delete unused versions of tools .TP \fBregistry\fR List available tools to install .TP \fBreshim\fR Creates new shims based on bin paths from currently installed tools. .TP \fBrun\fR Run task(s) .RS \fIAliases: \fRr .RE .TP \fBsearch\fR Search for tools in the registry .TP \fBself\-update\fR Updates mise itself. .TP \fBset\fR Set environment variables in mise.toml .TP \fBsettings\fR Show current settings .TP \fBsettings add\fR Adds a setting to the configuration file .TP \fBsettings get\fR Show a current setting .TP \fBsettings ls\fR Show current settings .RS \fIAliases: \fRlist .RE .TP \fBsettings set\fR Add/update a setting .RS \fIAliases: \fRcreate .RE .TP \fBsettings unset\fR Clears a setting .RS \fIAliases: \fRrm, remove, delete, del .RE .TP \fBshell\fR Sets a tool version for the current session. .RS \fIAliases: \fRsh .RE .TP \fBshell\-alias\fR Manage shell aliases. .TP \fBshell\-alias get\fR Show the command for a shell alias .TP \fBshell\-alias ls\fR List shell aliases .RS \fIAliases: \fRlist .RE .TP \fBshell\-alias set\fR Add/update a shell alias .RS \fIAliases: \fRadd, create .RE .TP \fBshell\-alias unset\fR Removes a shell alias .RS \fIAliases: \fRrm, remove, delete, del .RE .TP \fBsponsors\fR Show the companies sponsoring mise and the en.dev project family .TP \fBsync\fR Synchronize tools from other version managers with mise .TP \fBsync node\fR Symlinks all tool versions from an external tool into mise .TP \fBsync python\fR Symlinks all tool versions from an external tool into mise .TP \fBsync ruby\fR Symlinks all ruby tool versions from an external tool into mise .TP \fBtasks\fR Manage tasks .RS \fIAliases: \fRt .RE .TP \fBtasks add\fR Create a new task .TP \fBtasks deps\fR Display a tree visualization of a dependency graph .TP \fBtasks edit\fR Edit a task with $EDITOR .TP \fBtasks info\fR Get information about a task .TP \fBtasks ls\fR List available tasks to execute .TP \fBtasks run\fR Run task(s) .RS \fIAliases: \fRr .RE .TP \fBtasks validate\fR Validate tasks for common errors and issues .TP \fBtest\-tool\fR Test a tool installs and executes .TP \fBtoken\fR Display git provider tokens mise will use .TP \fBtoken forgejo\fR Forgejo token .TP \fBtoken github\fR GitHub token .TP \fBtoken gitlab\fR GitLab token .TP \fBtool\fR Gets information about a tool .TP \fBtool\-stub\fR Execute a tool stub .TP \fBtrust\fR Marks a config file as trusted .TP \fBuninstall\fR Removes installed tool versions .TP \fBunset\fR Remove environment variable(s) from the config file. .TP \fBuntrust\fR No longer trust a config, will prompt in the future .TP \fBunuse\fR Removes installed tool versions from mise.toml .RS \fIAliases: \fRrm, remove .RE .TP \fBupgrade\fR Upgrades outdated tools .RS \fIAliases: \fRup .RE .TP \fBuse\fR Installs a tool and adds the version to mise.toml. .RS \fIAliases: \fRu .RE .TP \fBversion\fR Display the version of mise .RS \fIAliases: \fRv .RE .TP \fBwatch\fR Run task(s) and watch for changes to rerun it .RS \fIAliases: \fRw .RE .TP \fBwhere\fR Display the installation path for a tool .TP \fBwhich\fR Shows the path that a tool's bin points to. .SH "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. .PP \fBUsage:\fR mise activate [OPTIONS] [] .PP \fBOptions:\fR .PP .TP \fB\-q, \-\-quiet\fR Suppress non\-error messages .TP \fB\-s, \-\-shell\fR \fI\fR Shell type to generate the script for .TP \fB\-\-no\-hook\-env\fR 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. .TP \fB\-\-shims\fR 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.en.dev/dev\-tools/shims.html#shims\-vs\-path for more information .TP \fB\-\-status\fR Show "mise: @" message when changing directories \fBArguments:\fR .PP .TP \fB\fR Shell type to generate the script for .SH "MISE TOOL-ALIAS" Manage tool version aliases. .PP \fBUsage:\fR mise tool\-alias [OPTIONS] [COMMAND] .PP \fBOptions:\fR .PP .TP \fB\-p, \-\-tool\fR \fI\fR Filter aliases by tool .TP \fB\-\-no\-header\fR Don't show table header .SH "MISE TOOL-ALIAS GET" Show an alias for a tool This is the contents of a tool_alias. entry in ~/.config/mise/config.toml .PP \fBUsage:\fR mise tool\-alias get .PP \fBArguments:\fR .PP .TP \fB\fR The tool to show the alias for .TP \fB\fR The alias to show .SH "MISE TOOL-ALIAS LS" List tool version 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`: [tool_alias.node.versions] lts = "22.0.0" .PP \fBUsage:\fR mise tool\-alias ls [OPTIONS] [] .PP \fBOptions:\fR .PP .TP \fB\-\-no\-header\fR Don't show table header \fBArguments:\fR .PP .TP \fB\fR Show aliases for .SH "MISE TOOL-ALIAS SET" Add/update an alias for a tool/backend This modifies the contents of ~/.config/mise/config.toml .PP \fBUsage:\fR mise tool\-alias set [] .PP \fBArguments:\fR .PP .TP \fB\fR The tool/backend to set the alias for .TP \fB\fR The alias to set .TP \fB\fR The value to set the alias to .SH "MISE TOOL-ALIAS UNSET" Clears an alias for a tool/backend This modifies the contents of ~/.config/mise/config.toml .PP \fBUsage:\fR mise tool\-alias unset [] .PP \fBArguments:\fR .PP .TP \fB\fR The tool/backend to remove the alias from .TP \fB\fR The alias to remove .SH "MISE BIN-PATHS" List all the active runtime bin paths .PP \fBUsage:\fR mise bin\-paths [OPTIONS] [] ... .PP \fBOptions:\fR .PP .TP \fB\-\-bin\-names\fR Output executable names instead of bin directories .TP \fB\-J, \-\-json\fR Output executable entries in JSON format (implies \-\-bin\-names) \fBArguments:\fR .PP .TP \fB\fR Tool(s) to look up e.g.: ruby@3 .SH "MISE BOOTSTRAP" [experimental] Set up a machine for the current config in one command Runs the bootstrap steps for the current config in order: 0. `[bootstrap.hooks.pre\-packages]` — optional setup hook 1. `mise bootstrap packages install` — install missing `[bootstrap.packages]` then `[bootstrap.hooks.post\-packages]` 2. `mise dotfiles apply` — apply dotfiles from `[dotfiles]` surrounded by `pre\-dotfiles`/`post\-dotfiles` hooks 3. `mise bootstrap macos\-defaults apply` — write `[bootstrap.macos.defaults]` entries (macOS) surrounded by `pre\-defaults`/`post\-defaults` hooks 4. `mise bootstrap launchd apply` — install/load macOS LaunchAgents 5. `mise bootstrap systemd apply` — install/start systemd user services (Linux) 6. `mise bootstrap user apply` — set `[bootstrap.user].login_shell` (Unix) surrounded by `pre\-user`/`post\-user` hooks 7. `mise install` — install missing tools from `[tools]` surrounded by `pre\-tools`/`post\-tools` hooks 8. `mise run bootstrap` — if a task named `bootstrap` is defined 9. `[bootstrap.hooks.final]` — optional final hook The declarative steps converge — anything already in its desired state is skipped, so re\-running is safe. The `bootstrap` task runs on every invocation; keep it idempotent. Use it for any project\-specific setup that doesn't fit the declarative sections (cloning repos, seeding databases, etc.) — it runs with the installed tools on PATH. .PP \fBUsage:\fR mise bootstrap [OPTIONS] [COMMAND] .PP \fBOptions:\fR .PP .TP \fB\-n, \-\-dry\-run\fR Print what would happen without installing anything .TP \fB\-y, \-\-yes\fR Skip confirmation prompts .TP \fB\-\-force\-dotfiles\fR Overwrite existing files that conflict with whole\-file dotfile entries .TP \fB\-\-update\fR Refresh system package manager metadata first (apk: `\-\-update\-cache`, apt: `apt\-get update`) .SH "MISE BOOTSTRAP LAUNCHD APPLY" \fBUsage:\fR mise bootstrap launchd apply [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-n, \-\-dry\-run\fR Print the commands that would run without running them .TP \fB\-y, \-\-yes\fR Skip the confirmation prompt .SH "MISE BOOTSTRAP LAUNCHD STATUS" \fBUsage:\fR mise bootstrap launchd status [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-J, \-\-json\fR Output in JSON format .TP \fB\-\-missing\fR Exit with code 1 if any configured LaunchAgent is not in its desired state .SH "MISE BOOTSTRAP MACOS-DEFAULTS APPLY" \fBUsage:\fR mise bootstrap macos\-defaults apply [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-n, \-\-dry\-run\fR Print the commands that would run without running them .TP \fB\-y, \-\-yes\fR Skip the confirmation prompt .SH "MISE BOOTSTRAP MACOS-DEFAULTS STATUS" \fBUsage:\fR mise bootstrap macos\-defaults status [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-J, \-\-json\fR Output in JSON format .TP \fB\-\-missing\fR Exit with code 1 if any configured defaults are not in their desired state .SH "MISE BOOTSTRAP PACKAGES BREW TAP" Add a Homebrew tap URL to [bootstrap.brew.taps] .PP \fBUsage:\fR mise bootstrap packages brew tap [OPTIONS] [] .PP \fBOptions:\fR .PP .TP \fB\-l, \-\-local\fR Write to the local config instead of the global config .TP \fB\-n, \-\-dry\-run\fR Print the config change without writing it .TP \fB\-p, \-\-path\fR \fI\fR Write to this config file or directory \fBArguments:\fR .PP .TP \fB\fR Tap name, e.g. `owner/repo` .TP \fB\fR GitHub URL for the tap. Defaults to https://github.com//homebrew\-.git .SH "MISE BOOTSTRAP PACKAGES BREW UNTAP" Remove Homebrew tap URLs from [bootstrap.brew.taps] .PP \fBUsage:\fR mise bootstrap packages brew untap [OPTIONS] ... .PP \fBOptions:\fR .PP .TP \fB\-l, \-\-local\fR Write to the local config instead of the global config .TP \fB\-n, \-\-dry\-run\fR Print the config change without writing it .TP \fB\-p, \-\-path\fR \fI\fR Write to this config file or directory \fBArguments:\fR .PP .TP \fB\fR Tap name(s), e.g. `owner/repo` .SH "MISE BOOTSTRAP PACKAGES INSTALL" Install missing system packages from `[bootstrap.packages]` Checks which configured packages are missing and installs them with the system package manager. This may elevate with sudo when not running as root (see the `system_packages.sudo` setting). Packages can also be given explicitly in `manager:package` form (e.g. `apk:zlib\-dev`, `apt:curl`, `brew:jq`); they are installed whether or not they appear in the config. Explicit packages and `\-\-manager` scope the run to packages only. .PP \fBUsage:\fR mise bootstrap packages install [OPTIONS] [] ... .PP \fBOptions:\fR .PP .TP \fB\-m, \-\-manager\fR \fI\fR Only install packages for this manager, e.g. `apk`, `apt`, `brew`, `brew\-cask`, or `mas` .TP \fB\-n, \-\-dry\-run\fR Print the commands that would run without running them .TP \fB\-y, \-\-yes\fR Skip the confirmation prompt .TP \fB\-\-update\fR Refresh package manager metadata first (apk: `\-\-update\-cache`, apt: `apt\-get update`) \fBArguments:\fR .PP .TP \fB\fR Packages in `manager:package` form; defaults to everything configured in [bootstrap.packages] .SH "MISE BOOTSTRAP PACKAGES STATUS" Show the status of system packages from `[bootstrap.packages]` .PP \fBUsage:\fR mise bootstrap packages status [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-J, \-\-json\fR Output in JSON format .TP \fB\-\-missing\fR Exit with code 1 if any configured packages are not in their desired state .SH "MISE BOOTSTRAP PACKAGES UPGRADE" Upgrade installed bootstrap packages from `[bootstrap.packages]` Refreshes package manager metadata and upgrades the configured packages that are already installed: apk/apt/dnf/pacman upgrade to the newest available version (apk, apt, and dnf honor a version pinned in config), brew pours the formula's current bottle and replaces the old keg, brew\-cask installs the current cask artifact, and mas upgrades App Store apps. Packages that are not installed yet are skipped — use `mise bootstrap packages install` for those. Packages can also be given explicitly in `manager:package` form. .PP \fBUsage:\fR mise bootstrap packages upgrade [OPTIONS] [] ... .PP \fBOptions:\fR .PP .TP \fB\-m, \-\-manager\fR \fI\fR Only upgrade packages for this manager, e.g. `apk`, `apt`, `brew`, `brew\-cask`, or `mas` .TP \fB\-n, \-\-dry\-run\fR Print the commands that would run without running them .TP \fB\-y, \-\-yes\fR Skip the confirmation prompt \fBArguments:\fR .PP .TP \fB\fR Packages in `manager:package` form; defaults to everything configured in [bootstrap.packages] .SH "MISE BOOTSTRAP PACKAGES USE" Add bootstrap packages to [bootstrap.packages] and install them Like `mise use` for tools: writes `"manager:package" = "version"` entries to mise.toml (the local config by default, the global one with `\-g`) and then installs whatever is missing. Versions are pinned with `@`: `mise bootstrap packages use apt:curl@8.5.0\-2`. Without `@` (or with `@latest`) no pin is written. brew formulae and casks version through their names instead (for example `brew:postgresql@17`, `brew\-cask:temurin@17`), where `@` is part of the Homebrew name rather than a mise version selector. mas uses numeric ADAM IDs and does not support pins. .PP \fBUsage:\fR mise bootstrap packages use [OPTIONS] ... .PP \fBOptions:\fR .PP .TP \fB\-e, \-\-env\fR \fI\fR Write to the config file for this environment (mise..toml) .TP \fB\-g, \-\-global\fR Write to the global config (~/.config/mise/config.toml) instead of the local one .TP \fB\-n, \-\-dry\-run\fR Print the commands that would run without writing config or installing .TP \fB\-p, \-\-path\fR \fI\fR Write to this config file or directory .TP \fB\-y, \-\-yes\fR Skip the confirmation prompt \fBArguments:\fR .PP .TP \fB\fR Packages in `manager:package[@version]` form .SH "MISE BOOTSTRAP SYSTEMD APPLY" \fBUsage:\fR mise bootstrap systemd apply [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-n, \-\-dry\-run\fR Print the commands that would run without running them .TP \fB\-y, \-\-yes\fR Skip the confirmation prompt .SH "MISE BOOTSTRAP SYSTEMD STATUS" \fBUsage:\fR mise bootstrap systemd status [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-J, \-\-json\fR Output in JSON format .TP \fB\-\-missing\fR Exit with code 1 if any configured systemd user service is not in its desired state .SH "MISE BOOTSTRAP USER APPLY" \fBUsage:\fR mise bootstrap user apply [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-n, \-\-dry\-run\fR Print the commands that would run without running them .TP \fB\-y, \-\-yes\fR Skip the confirmation prompt .SH "MISE BOOTSTRAP USER STATUS" \fBUsage:\fR mise bootstrap user status [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-J, \-\-json\fR Output in JSON format .TP \fB\-\-missing\fR Exit with code 1 if any configured user setting is not in its desired state .SH "MISE CACHE CLEAR" Deletes all cache files in mise .PP \fBUsage:\fR mise cache clear [OPTIONS] [] ... .PP \fBOptions:\fR .PP .TP \fB\-\-outdate\fR Mark all cache files as old \fBArguments:\fR .PP .TP \fB\fR Tool(s) to clear cache for e.g.: node, python .SH "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. .PP \fBUsage:\fR mise cache prune [OPTIONS] [] ... .PP \fBOptions:\fR .PP .TP \fB\-v, \-\-verbose\fR Show pruned files .TP \fB\-\-dry\-run\fR Just show what would be pruned \fBArguments:\fR .PP .TP \fB\fR Tool(s) to prune cache for e.g.: node, python .SH "MISE COMPLETION" Generate shell completions .PP \fBUsage:\fR mise completion [OPTIONS] [] .PP \fBOptions:\fR .PP .TP \fB\-s, \-\-shell\fR \fI\fR Shell type to generate completions for .TP \fB\-\-include\-bash\-completion\-lib\fR 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. .TP \fB\-\-usage\fR 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 \fBArguments:\fR .PP .TP \fB\fR Shell type to generate completions for .SH "MISE CONFIG" Manage config files .PP \fBUsage:\fR mise config [OPTIONS] [COMMAND] .PP \fBOptions:\fR .PP .TP \fB\-J, \-\-json\fR Output in JSON format .TP \fB\-\-no\-header\fR Do not print table header .TP \fB\-\-tracked\-configs\fR List all tracked config files .SH "MISE CONFIG GET" Display the value of a setting in a mise.toml file .PP \fBUsage:\fR mise config get [OPTIONS] [] .PP \fBOptions:\fR .PP .TP \fB\-f, \-\-file\fR \fI\fR The path to the mise.toml file to edit If not provided, the nearest mise.toml file will be used \fBArguments:\fR .PP .TP \fB\fR The path of the config to display .SH "MISE CONFIG LS" List config files currently in use .PP \fBUsage:\fR mise config ls [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-J, \-\-json\fR Output in JSON format .TP \fB\-\-no\-header\fR Do not print table header .TP \fB\-\-tracked\-configs\fR List all tracked config files .SH "MISE CONFIG SET" Set the value of a setting in a mise.toml file .PP \fBUsage:\fR mise config set [OPTIONS] [] .PP \fBOptions:\fR .PP .TP \fB\-f, \-\-file\fR \fI\fR The path to the mise.toml file to edit If not provided, the nearest mise.toml file will be used .TP \fB\-t, \-\-type\fR \fI\fR .RS \fIDefault: \fRinfer .RE \fBArguments:\fR .PP .TP \fB\fR The path of the config to display .TP \fB\fR The value to set the key to (optional if provided as KEY=VALUE) .SH "MISE DOTFILES ADD" Add or update dotfiles in `[dotfiles]` If the target is already managed, this updates its source from the live target. Otherwise it creates a `[dotfiles]` entry and seeds the source under `dotfiles.root` unless `\-\-source` is provided. .PP \fBUsage:\fR mise dotfiles add [OPTIONS] ... .PP \fBOptions:\fR .PP .TP \fB\-f, \-\-force\fR Overwrite existing sources without prompting .TP \fB\-g, \-\-global\fR Write to the global config .TP \fB\-l, \-\-local\fR Write to the local config instead of the global config .TP \fB\-m, \-\-mode\fR \fI\fR Dotfile mode to write .TP \fB\-n, \-\-dry\-run\fR Print the config/source updates without writing anything .TP \fB\-p, \-\-path\fR \fI\fR Write to this config file or directory .TP \fB\-s, \-\-source\fR \fI\fR Source path to use for a single target .TP \fB\-y, \-\-yes\fR Skip the confirmation prompt \fBArguments:\fR .PP .TP \fB\fR Targets to add or update .SH "MISE DOTFILES APPLY" Apply dotfiles from `[dotfiles]` Applies configured whole\-file entries and edits that aren't in their desired state. Whole\-file entries may symlink, copy, or render templates. Edit entries manage a marker\-delimited block or a single line in a file mise doesn't otherwise own. .PP \fBUsage:\fR mise dotfiles apply [OPTIONS] [] ... .PP \fBOptions:\fR .PP .TP \fB\-f, \-\-force\fR Overwrite existing files that conflict with whole\-file dotfile entries .TP \fB\-n, \-\-dry\-run\fR Print the actions that would run without writing anything .TP \fB\-y, \-\-yes\fR Skip the confirmation prompt \fBArguments:\fR .PP .TP \fB\fR Only apply these targets .SH "MISE DOTFILES EDIT" Edit a managed dotfile source .PP \fBUsage:\fR mise dotfiles edit [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-\-apply\fR Apply this target after the editor exits .TP \fB\-m, \-\-mode\fR \fI\fR Dotfile mode to use if the target is not yet managed .TP \fB\-s, \-\-source\fR \fI\fR Source path to use if the target is not yet managed .TP \fB\-y, \-\-yes\fR Skip the confirmation prompt when adding an unmanaged target \fBArguments:\fR .PP .TP \fB\fR Target to edit .SH "MISE DOTFILES STATUS" Show the status of dotfiles from `[dotfiles]` .PP \fBUsage:\fR mise dotfiles status [OPTIONS] [] ... .PP \fBOptions:\fR .PP .TP \fB\-J, \-\-json\fR Output in JSON format .TP \fB\-\-missing\fR Exit with code 1 if any configured dotfiles are not in their desired state (missing, source missing, differs) \fBArguments:\fR .PP .TP \fB\fR Only show these targets .SH "MISE DOCTOR" Check mise installation for possible problems .PP \fBUsage:\fR mise doctor [OPTIONS] [COMMAND] .PP \fBOptions:\fR .PP .TP \fB\-J, \-\-json\fR .SH "MISE DOCTOR PATH" Print the current PATH entries mise is providing .PP \fBUsage:\fR mise doctor path [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-f, \-\-full\fR Print all entries including those not provided by mise .SH "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. .PP \fBUsage:\fR mise en [OPTIONS] [] .PP \fBOptions:\fR .PP .TP \fB\-s, \-\-shell\fR \fI\fR Shell to start Defaults to $SHELL \fBArguments:\fR .PP .TP \fB\fR Directory to start the shell in .RS \fIDefault: \fR. .RE .SH "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. .PP \fBUsage:\fR mise env [OPTIONS] [] ... .PP \fBOptions:\fR .PP .TP \fB\-D, \-\-dotenv\fR Output in dotenv format .TP \fB\-J, \-\-json\fR Output in JSON format .TP \fB\-s, \-\-shell\fR \fI\fR Shell type to generate environment variables for .TP \fB\-\-json\-extended\fR Output in JSON format with additional information (source, tool) .TP \fB\-\-redacted\fR Only show redacted environment variables .TP \fB\-\-values\fR Only show values of environment variables \fBArguments:\fR .PP .TP \fB\fR Tool(s) to use .SH "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. .PP \fBUsage:\fR mise exec [OPTIONS] [] ... [] ... .PP \fBOptions:\fR .PP .TP \fB\-c, \-\-command\fR \fI\fR Command string to execute .TP \fB\-j, \-\-jobs\fR \fI\fR Number of jobs to run in parallel [default: 4] .TP \fB\-\-allow\-env\fR \fI\fR Allow specific env var through (implies \-\-deny\-env for everything else) Supports wildcards, e.g. \-\-allow\-env='MYAPP_*' .TP \fB\-\-allow\-net\fR \fI\fR Allow network to specific host (implies \-\-deny\-net for everything else) macOS only in v1; on Linux falls back to allowing all network .TP \fB\-\-allow\-read\fR \fI\fR Allow reads from specific path (implies \-\-deny\-read for everything else) .TP \fB\-\-allow\-write\fR \fI\fR Allow writes to specific path (implies \-\-deny\-write for everything else) .TP \fB\-\-deny\-all\fR Block reads, writes, network, and env vars .TP \fB\-\-deny\-env\fR Block env var inheritance (only PATH, HOME, USER, SHELL, TERM, LANG pass through) .TP \fB\-\-deny\-net\fR Block all network access .TP \fB\-\-deny\-read\fR Block filesystem reads (system libs and tool dirs still accessible) .TP \fB\-\-deny\-write\fR Block all filesystem writes .TP \fB\-\-fresh\-env\fR Bypass the environment cache and recompute the environment .TP \fB\-\-no\-deps\fR Skip automatic dependency preparation .TP \fB\-\-raw\fR Connect backend install command stdin/stdout/stderr directly to the terminal Implies \-\-jobs=1 \fBArguments:\fR .PP .TP \fB\fR Tool(s) to start e.g.: node@20 python@3.10 .TP \fB\fR Command string to execute (same as \-\-command) .SH "MISE FMT" Formats mise.toml Sorts keys and cleans up whitespace in mise.toml .PP \fBUsage:\fR mise fmt [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-a, \-\-all\fR Format all files from the current directory .TP \fB\-c, \-\-check\fR Check if the configs are formatted, no formatting is done .TP \fB\-s, \-\-stdin\fR Read config from stdin and write its formatted version into stdout .SH "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. .PP \fBUsage:\fR mise generate bootstrap [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-l, \-\-localize\fR 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. .TP \fB\-V, \-\-version\fR \fI\fR Specify mise version to fetch .TP \fB\-w, \-\-write\fR \fI\fR instead of outputting the script to stdout, write to a file and make it executable .TP \fB\-\-localized\-dir\fR \fI\fR Directory to put localized data into .RS \fIDefault: \fR.mise .RE .SH "MISE GENERATE CONFIG" Generate a mise.toml file .PP \fBUsage:\fR mise generate config [OPTIONS] [] .PP \fBOptions:\fR .PP .TP \fB\-g, \-\-global\fR Generate the global config file (~/.config/mise/config.toml) .TP \fB\-n, \-\-dry\-run\fR Show what would be generated without writing to file .TP \fB\-t, \-\-tool\-versions\fR \fI\fR Path to a .tool\-versions file to import tools from \fBArguments:\fR .PP .TP \fB\fR Path to the config file to create .SH "MISE GENERATE DEVCONTAINER" Generate a devcontainer to execute mise .PP \fBUsage:\fR mise generate devcontainer [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-i, \-\-image\fR \fI\fR The image to use for the devcontainer .TP \fB\-m, \-\-mount\-mise\-data\fR Bind the mise\-data\-volume to the devcontainer .TP \fB\-n, \-\-name\fR \fI\fR The name of the devcontainer .TP \fB\-w, \-\-write\fR write to .devcontainer/devcontainer.json .SH "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/ .PP \fBUsage:\fR mise generate git\-pre\-commit [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-t, \-\-task\fR \fI\fR The task to run when the pre\-commit hook is triggered .RS \fIDefault: \fRpre\-commit .RE .TP \fB\-w, \-\-write\fR write to .git/hooks/pre\-commit and make it executable .TP \fB\-\-hook\fR \fI\fR Which hook to generate (saves to .git/hooks/$hook) .RS \fIDefault: \fRpre\-commit .RE .SH "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. .PP \fBUsage:\fR mise generate github\-action [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-t, \-\-task\fR \fI\fR The task to run when the workflow is triggered .RS \fIDefault: \fRci .RE .TP \fB\-w, \-\-write\fR write to .github/workflows/$name.yml .TP \fB\-\-name\fR \fI\fR the name of the workflow to generate .RS \fIDefault: \fRci .RE .SH "MISE GENERATE TASK-DOCS" Generate documentation for tasks in a project .PP \fBUsage:\fR mise generate task\-docs [OPTIONS] .PP \fBOptions:\fR .PP .TP \fB\-i, \-\-inject\fR 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. .TP \fB\-I, \-\-index\fR write only an index of tasks, intended for use with `\-\-multi` .TP \fB\-m, \-\-multi\fR render each task as a separate document, requires `\-\-output` to be a directory .TP \fB\-o, \-\-output\fR \fI\fR writes the generated docs to a file/directory .TP \fB\-r, \-\-root\fR \fI\fR root directory to search for tasks .TP \fB\-s, \-\-style\fR \fI