Python uvx

uv’s tool manager for isolated Python applications, like pipx.

mpm drives the uv tool subcommands; each application lives in its own venv. Installed and outdated tools are parsed from the plain-text tool list and tool list --outdated output: unlike the uv pip interface, uv tool emits no JSON. The --outdated listing sets the >=0.10.10 version floor, the first uv release to ship it. The release-age cooldown rides on uv’s --exclude-newer resolver option, covering install, upgrade and outdated through one cutoff.

Hint

Package specs are passed unquoted, working around uv parse failures on quoted specs.

Platforms

  • 🅱️ BSD

  • 🐧 Linux

  • 🍎 macOS

  • ⨂ Unix

  • 🪟 Windows

Operations

Operation

Supported

installed

outdated

search

install

upgrade

upgrade_all

remove

sync

cleanup

Ecosystem

Usage

$ mpm --uvx installed
$ mpm --uvx upgrade --all
$ mpm install pkg:uvx/hello
$ mpm --dry-run --uvx upgrade --all

Every example above accepts --dry-run, which simulates the underlying manager calls without touching the system: the safe way to watch what mpm would do before trusting it.

Deselect the manager for a single run with --no-uvx, disable it from your configuration, or tune its invocation attributes with per-manager overrides.

Command line

  • CLI names, in lookup order: uv

  • Arguments forced before each call: --color never --no-progress

The version is extracted from the output of uv --version with:

r"uv\s+(?P<version>\S+)"

Privilege escalation

mpm runs this manager as the current user and never prepends sudo by default. Flip the policy for its privileged operations with --sudo or the per-manager sudo override.

See privilege escalation for the full policy.

Cooldown

mpm natively enforces its release-age cooldown on Python uvx, injecting the UV_EXCLUDE_NEWER environment variable on every call.

  • Status: ✅ Enforced

  • Mechanism: exclude-newer env UV_EXCLUDE_NEWER

  • Reference: uv docs

Reference traces

Raw native outputs captured in the manager source: the reference mpm’s parsers were written against. If you know Python uvx well and a transcript below looks wrong, or a newer release changed its output format, report it.

$ uv --color never --no-progress tool list
pycowsay v0.0.0.1
- pycowsay
$ uv --color never --no-progress tool list --outdated
pycowsay v0.0.0.1 [latest: 0.0.0.2]
- pycowsay