<!-- @generated by usage-cli from usage spec -->
# `mise upgrade`

- **Usage**: `mise upgrade [FLAGS] [INSTALLED_TOOL@VERSION]…`
- **Aliases**: `up`
- **Effect**: modifies state
- **Source code**: [`src/cli/upgrade.rs`](https://github.com/jdx/mise/blob/main/src/cli/upgrade.rs)

Upgrades outdated tools

By default, this keeps the range specified in mise.toml. So if you have node@20 set, it will
upgrade to the latest 20.x.x version available. See the `--bump` flag to use the latest version
and bump the version in mise.toml.

This will update mise.lock if it is enabled, see <https://mise.jdx.dev/configuration/settings.html#lockfile>

## Arguments

### `[INSTALLED_TOOL@VERSION]…`

Tool(s) to upgrade
e.g.: node@20 python@3.10
If not specified, all current tools will be upgraded

## Flags

### `-b --bump`

Upgrades to the latest version available, bumping the version in mise.toml

For example, if you have `node = "20.0.0"` in your mise.toml but 22.1.0 is the latest available,
this will install 22.1.0 and set `node = "22.1.0"` in your config.

It keeps the same precision as what was there before, so if you instead had `node = "20"`, it
would change your config to `node = "22"`.

### `-i --interactive`

Display multiselect menu to choose which tools to upgrade

### `-j --jobs <JOBS>`

Number of jobs to run in parallel
Values below 1 are treated as 1
[default: 4]

### `-n --dry-run`

Just print what would be done, don't actually do it

### `-x --exclude… <INSTALLED_TOOL>`

Tool(s) to exclude from upgrading
e.g.: go python

### `--dry-run-code`

Like --dry-run but exits with code 1 if there are outdated tools

This is useful for scripts to check if tools need to be upgraded.

### `--inactive`

Upgrade all tools, including installed-but-inactive tools not present in the current config

### `--local`

Only upgrade tools defined in local config files

This will only upgrade tools that are defined in project-local mise.toml and
will skip tools defined in the global config (~/.config/mise/config.toml).

### `--minimum-release-age <MINIMUM_RELEASE_AGE>`

Only upgrade to versions released before this date or older than this duration

Supports absolute dates like "2024-06-01" and relative durations like "90d" or "1y".
This can be useful for reproducibility or security purposes.

This only affects fuzzy version matches like "20" or "latest".
Explicitly pinned versions like "22.5.0" are not filtered.

### `--monorepo`

Placeholder for future monorepo upgrades; `mise upgrade --monorepo` is not implemented yet.

### `--no-prune`

Do not uninstall the versions that were upgraded away from

By default the old version is removed once the new one installs, unless another
tracked config or tool stub still needs it. Use this to keep it anyway, e.g. when
something outside of mise points at the old install directory.

Set `upgrade.auto_prune = false` to make this the default.

### `--prune`

Uninstall the versions that were upgraded away from

This is already the default. Use it to override `upgrade.auto_prune = false`
for a single run.

### `--raw`

Connect backend install command stdin/stdout/stderr directly to the terminal Implies --jobs=1

Deprecation:

The `-l` shorthand for `--bump` is deprecated and will be removed in mise 2027.8.5.
After removal, `-l` will become shorthand for `--local`. Use `-b` or `--bump` instead.

Examples:

```
# Upgrades node to the latest version matching the range in mise.toml
$ mise upgrade node

# Upgrades node to the latest version and bumps the version in mise.toml
$ mise upgrade node --bump

# Upgrades all tools to the latest versions
$ mise upgrade

# Upgrades all tools to the latest versions and bumps the version in mise.toml
$ mise upgrade --bump

# Just print what would be done, don't actually do it
$ mise upgrade --dry-run

# Upgrades node and python to the latest versions
$ mise upgrade node python

# Upgrade all tools except go
$ mise upgrade --exclude go

# Show a multiselect menu to choose which tools to upgrade
$ mise upgrade --interactive

# Only upgrade tools defined in local mise.toml, not global ones
$ mise upgrade --local
```
