Skip to content

Rank #4 of 6 in Package & Toolchain Managers

uv logo

uv

Open Source

Astral Software Inc.

89.8k30.4k/yrpypi 28.4M/wk +341pypi/wk +800.9k

Access

Install

installercurl -LsSf https://astral.sh/uv/install.sh | sh

Vendor-official, but review any script before piping it to a shell.

brewbrew install uv

Compare head-to-head

Alternatives to uv

Showcase

uv homepage screenshot
homepage · captured Sep 2026 · view live ↗
uv docs screenshot
docs · captured Sep 2026 · view live ↗

Try itExperimental

See what an agent can do with uv before you ever sign up. Pick a story: recorded sessions replay real probe-harness transcripts; sandboxed self-drive sessions are designed and gated (docs/TRY-IT.md).

$uv --versionrecorded session — replayed, not live
recorded 2026-09-04 · exit 0 · captured verbatim by our probe harness, secrets redacted

Verified integrations

Connections to other tracked products — hover a chip for the verbatim evidence quote behind it.

By theme — the product's score on each story themeBy theme

Agent experience — stories about agent experience in this arenaAgent experienceevidence →

Stories about agent experience in this arena

44.0/100

Agenticness — how well agents can access and operate the productAgenticnessevidence →

How well agents can access and operate the product

33.6/100

Automation depth — how much of the product can run unattendedAutomation depthevidence →

How much of the product can run unattended

24.0/100

Cross platform — stories about cross platform in this arenaCross platformevidence →

Stories about cross platform in this arena

70.0/100

Ecosystem extensibility — stories about ecosystem extensibility in this arenaEcosystem extensibilityevidence →

Stories about ecosystem extensibility in this arena

32.0/100

Install reproducibility — stories about install reproducibility in this arenaInstall reproducibilityevidence →

Stories about install reproducibility in this arena

64.0/100

Migration adoption — stories about migration adoption in this arenaMigration adoptionevidence →

Stories about migration adoption in this arena

39.0/100

Monorepo workspaces — stories about monorepo workspaces in this arenaMonorepo workspacesevidence →

Stories about monorepo workspaces in this arena

42.0/100

Openness — open source, data portability, and self-hosting storiesOpennessevidence →

Open source, data portability, and self-hosting stories

30.0/100

Performance caching — stories about performance caching in this arenaPerformance cachingevidence →

Stories about performance caching in this arena

58.4/100

Privacy posture — data-handling and privacy storiesPrivacy postureevidence →

Data-handling and privacy stories

0.0/100

Security supply chain — stories about security supply chain in this arenaSecurity supply chainevidence →

Stories about security supply chain in this arena

0.0/100

Toolchain management — stories about toolchain management in this arenaToolchain managementevidence →

Stories about toolchain management in this arena

63.3/100

Story verdicts — every judged story with its evidenceStory verdicts

?

Sorted by importance (agentic first) (high → low) · 54/54 stories · click a row’s chevron for the rationale and evidence

Drive the product through a documented public API G

Agent access

ai-native userAgenticness — how well agents can access and operate the productAgenticness3partial5/10T

Connect an agent via an official MCP server G

Agent access

ai-native userAgenticness — how well agents can access and operate the productAgenticness3n/auntestednone yet

Delegate tasks to a built-in AI assistant inside the product G

Agentic features

ai-native userAgenticness — how well agents can access and operate the productAgenticness3n/auntestednone yet

Plug MCP servers into this product so it can use their tools G

Agent access

ai-native userAgenticness — how well agents can access and operate the productAgenticness3n/auntestednone yet

Use an official CLI G

Agent access

ai-native userAgenticness — how well agents can access and operate the productAgenticness2full9/10T

Point an agent at llms.txt or agent-oriented docs G

Agent access

ai-native userAgenticness — how well agents can access and operate the productAgenticness2full8/10T

Run the product headlessly / in CI for automation G

Agent access

ai-native userAgenticness — how well agents can access and operate the productAgenticness2full8/10X

Download a machine-readable API spec (OpenAPI or equivalent) G

Api quality

ai-native userAgenticness — how well agents can access and operate the productAgenticness2partial4/10T

Explore an interactive API reference with runnable examples G

Api quality

ai-native userAgenticness — how well agents can access and operate the productAgenticness2none0/10

Rely on versioned APIs with a documented deprecation policy G

Api quality

ai-native userAgenticness — how well agents can access and operate the productAgenticness2none0/10

Build against official SDKs G

Agent access

ai-native userAgenticness — how well agents can access and operate the productAgenticness2noneuntestednone yet

Get AI-generated insights and suggestions from my data inside the product G

Agentic features

ai-native userAgenticness — how well agents can access and operate the productAgenticness2n/auntestednone yet

Issue scoped/least-privilege API credentials for an agent G

Agent access

ai-native userAgenticness — how well agents can access and operate the productAgenticness2n/auntestednone yet

Operate the product with natural-language commands G

Agentic features

ai-native userAgenticness — how well agents can access and operate the productAgenticness2noneuntestednone yet

Set up automations that run autonomously in the background G

Agentic features

ai-native userAgenticness — how well agents can access and operate the productAgenticness2n/auntestednone yet

Subscribe to events via webhooks G

Agent access

ai-native userAgenticness — how well agents can access and operate the productAgenticness2n/auntestednone yet

Test against a sandbox environment without touching production data G

Api quality

ai-native userAgenticness — how well agents can access and operate the productAgenticness1n/auntestednone yet

Pin exact versions of packages and tools per project and have the manager respect those pins C

Pinning

developerInstall reproducibility — stories about install reproducibility in this arenaInstall reproducibility3full9/10X

Install prebuilt binary packages from a cache instead of compiling from source C

Binary caching

developerPerformance caching — stories about performance caching in this arenaPerformance caching3full8/10X

Install dependencies from a lockfile and get the exact same resolved versions on every machine C

Lockfiles

developerInstall reproducibility — stories about install reproducibility in this arenaInstall reproducibility3full7/10C

Make CI installs fast with a documented cache-restore setup and offline-capable installs C

Ci speed

platform-engineerPerformance caching — stories about performance caching in this arenaPerformance caching3partial7/10X

Manage many packages in one monorepo with workspaces sharing a single lockfile and cross-linked local dependencies C

Workspaces

developerMonorepo workspaces — stories about monorepo workspaces in this arenaMonorepo workspaces3full7/10C

Have an agent install and update project dependencies non-interactively, with clear exit codes and errors when something fails C

Headless installs

ai-native userAgent experience — stories about agent experience in this arenaAgent experience3partial6/10X

Export all of my data in open formats and leave G

ai-native userOpenness — open source, data portability, and self-hosting storiesOpenness3partial5/10C

Audit installed dependencies for known vulnerabilities directly from the CLI C

Auditing

platform-engineerSecurity supply chain — stories about security supply chain in this arenaSecurity supply chain3noneuntestednone yet

Define rules that trigger actions automatically on events G

ai-native userAutomation depth — how much of the product can run unattendedAutomation depth3n/auntestednone yet

Prevent my data from being used to train AI models G

ai-native userPrivacy posture — data-handling and privacy storiesPrivacy posture3n/auntestednone yet

Self-host the core product G

ai-native userOpenness — open source, data portability, and self-hosting storiesOpenness3n/auntestednone yet

Add, remove, and upgrade dependencies through CLI commands that safely rewrite the manifest and lockfile, so an agent never hand-edits them C

Manifest editing

ai-native userAgent experience — stories about agent experience in this arenaAgent experience2full8/10X

Bootstrap a fresh clone with one command that installs everything the project declares C

Bootstrap

developerInstall reproducibility — stories about install reproducibility in this arenaInstall reproducibility2full8/10X

Install almost anything I need from a large, actively maintained package registry or repository C

Registry

developerEcosystem extensibility — stories about ecosystem extensibility in this arenaEcosystem extensibility2full8/10X

Install and switch language runtimes or tool versions per project from a checked-in config file C

Runtimes

developerToolchain management — stories about toolchain management in this arenaToolchain management2full8/10C

Rely on a shared content-addressable store so the same dependency version is stored once on disk across all projects C

Disk efficiency

developerPerformance caching — stories about performance caching in this arenaPerformance caching2full8/10X

Keep using familiar commands and interface conventions from the incumbent tool while adopting this manager C

Compatibility

switcherMigration adoption — stories about migration adoption in this arenaMigration adoption2partial7/10X

Use the same workflow and config on macOS, Linux, and Windows C

Platform parity

developerCross platform — stories about cross platform in this arenaCross platform2full7/10X

Migrate an existing project from the incumbent tool with documented import or conversion tooling G

Migration

switcherMigration adoption — stories about migration adoption in this arenaMigration adoption2partial6/10X

Read the product's source under an open license G

ai-native userOpenness — open source, data portability, and self-hosting storiesOpenness2partial5/10C

Get machine-readable (JSON) output from core commands so an agent can parse results instead of scraping text G

Structured output

ai-native userAgent experience — stories about agent experience in this arenaAgent experience2partial4/10C

Perform bulk operations across many items at once G

ai-native userAutomation depth — how much of the product can run unattendedAutomation depth2partial4/10C

Enforce a frozen/immutable lockfile mode that fails the install when the manifest and lockfile disagree C

Lockfiles

platform-engineerInstall reproducibility — stories about install reproducibility in this arenaInstall reproducibility2none0/10

Run installs and scripts filtered to a subset of workspace packages (including only those affected by a change) C

Workspaces

developerMonorepo workspaces — stories about monorepo workspaces in this arenaMonorepo workspaces2none0/10

Choose where my data is stored (region/residency) G

ai-native userPrivacy posture — data-handling and privacy storiesPrivacy posture2n/auntestednone yet

Control data retention and deletion G

ai-native userPrivacy posture — data-handling and privacy storiesPrivacy posture2n/auntestednone yet

Do everything through the API that I can do in the UI G

ai-native userOpenness — open source, data portability, and self-hosting storiesOpenness2n/auntestednone yet

Opt out of telemetry and usage tracking G

ai-native userPrivacy posture — data-handling and privacy storiesPrivacy posture2noneuntestednone yet

Point the manager at private registries or mirrors with scoped authentication C

Private registries

platform-engineerEcosystem extensibility — stories about ecosystem extensibility in this arenaEcosystem extensibility2noneuntestednone yet

Schedule recurring jobs or workflows G

ai-native userAutomation depth — how much of the product can run unattendedAutomation depth2n/auntestednone yet

Trust that fetched packages are verified against checksums, signatures, or attestations before they run C

Integrity

platform-engineerSecurity supply chain — stories about security supply chain in this arenaSecurity supply chain2noneuntestednone yet

Turn on protections against malicious packages, such as blocking lifecycle scripts or enforcing a minimum release age C

Hardening

platform-engineerSecurity supply chain — stories about security supply chain in this arenaSecurity supply chain2noneuntestednone yet

Point an agent at a documented, text-based lockfile format it can read and diff C

Structured output

ai-native userAgent experience — stories about agent experience in this arenaAgent experience1partial6/10T

Have the right tool versions and environment variables activate automatically when I enter a project directory C

Environments

developerToolchain management — stories about toolchain management in this arenaToolchain management1partial5/10X

See published benchmarks or measured numbers backing the manager's speed claims C

Benchmarks

developerPerformance caching — stories about performance caching in this arenaPerformance caching1none0/10

Extend the manager through third-party taps, overlays, plugins, or backends C

Extensibility

developerEcosystem extensibility — stories about ecosystem extensibility in this arenaEcosystem extensibility1noneuntestednone yet

Version, review, and roll back my automations G

ai-native userAutomation depth — how much of the product can run unattendedAutomation depth1n/auntestednone yet

Opportunities — the stories that would move this product's scores, from its own judged verdictsOpportunitiestop 8 of 25 stories with headroom

What would move uv’s scores — derived from its own judged verdicts, biggest headroom first. Each line quotes what the judge found missing; shipping it (or evidencing it publicly) is the fix.

  1. Security supply chain — stories about security supply chain in this arenaAudit installed dependencies for known vulnerabilities directly from the CLI

    nonemoves PA Scoreimpact 30

    No evidence pack item mentions vulnerability scanning, CVE auditing, or security advisories in uv's CLI; coverage is entirely about dependency management, tooling, caching, and Python version handling.

  2. Agenticness — how well agents can access and operate the productOperate the product with natural-language commands

    nonemoves Built-in AIimpact 30

    uv's entire interface is a structured CLI with explicit subcommands (uv init, uv add, uv run, uvx, etc.) documented across the evidence pack; there is no mention of natural-language parsing, an AI assistant, or NL-to-command translation anywhere in the docs or community discussion.

  3. Agenticness — how well agents can access and operate the productBuild against official SDKs

    nonemoves agent-readyimpact 30

    uv's evidence pack covers CLI commands, docs, and package management features, but there is no mention of an official SDK or programmatic API library that developers could build against for AI-native integration; the closest is the llms.txt documentation index, which is not an SDK.

  4. Agenticness — how well agents can access and operate the productExplore an interactive API reference with runnable examples

    nonemoves API qualityimpact 30

    uv ships static CLI reference documentation (uv-probe-4) with code-block examples, but there is no interactive, runnable API reference — explicit probes for llms.txt, markdown-doc endpoints, and OpenAPI/Swagger specs all returned 404s (uv-probe-1, uv-probe-2, uv-probe-3), and no evidence describes an interactive playground or executable docs.

  5. Agenticness — how well agents can access and operate the productRely on versioned APIs with a documented deprecation policy

    nonemoves API qualityimpact 30

    uv is a CLI package manager; the evidence pack shows no versioned API surface, API reference, or documented deprecation policy for such an API — only CLI commands, self-update, and docs indexing are mentioned.

  6. Agenticness — how well agents can access and operate the productDrive the product through a documented public API

    partialq5/10moves agent-readyimpact 22.5

    Missing: a genuine REST/SDK API, confirmed working llms.txt/openapi endpoint, and evidence of agents driving uv via anything beyond CLI invocation.

  7. Security supply chain — stories about security supply chain in this arenaTrust that fetched packages are verified against checksums, signatures, or attestations before they run

    nonemoves PA Scoreimpact 20

    No evidence in the pack mentions checksum verification, package signing, or attestation checks before installing/running packages; docs cover caching, tool install, and lockfiles but not supply-chain verification mechanisms.

  8. Install reproducibility — stories about install reproducibility in this arenaEnforce a frozen/immutable lockfile mode that fails the install when the manifest and lockfile disagree

    nonemoves PA Scoreimpact 20

    The evidence pack confirms uv has a lockfile (uv.lock) and commands like uv add/uv lock --upgrade-package, but nowhere does it mention a --frozen or --locked flag (or any mode) that fails an install when the manifest and lockfile diverge.

Showing the top 8 of 25 — every none/partial verdict in the story verdicts table is headroom.

Think a verdict is wrong? Every verdicts-table row has a Flag link — see the methodology.

Coverage map — which docs area, API section, or community source covers which judged storiesCoverage map5 surfaces · 25 covered stories

Where the cited evidence behind each covered verdict came from — the same citations the verdicts table shows, no extra judging.

Uv docs23 stories

Probe proofs — replayable recordings from the probe harnessProbe proofs

Replayable recordings from our probe harness — see the Prove-It protocol to submit one.

$uv --versionreproduced
$ uv --version
uv 0.12.5 (Homebrew 2026-08-14 aarch64-apple-darwin)
proves: Use an official CLIrecorded 2026-09-04
$uv pip install --helpreproduced
$ uv pip install --help
Install packages into an environment

Usage: uv pip install [OPTIONS] <PACKAGE|--requirements <REQUIREMENTS>|--editable <EDITABLE>|--group <GROUP>>

Arguments:
  [PACKAGE]...  Install all listed packages

Options:
  -r, --requirements <REQUIREMENTS>
          Install the packages listed in the given files
  -e, --editable <EDITABLE>
          Install the editable package based on the provided local file path
      --no-editable
          Install any editable dependencies as non-editable [env: UV_NO_EDITABLE=]
      --no-editable-package <NO_EDITABLE_PACKAGE>
          Install the specified editable packages as non-editable
  -c, --constraints <CONSTRAINTS>
          Constrain versions using the given requirements files [env: UV_CONSTRAINT=]
      --overrides <OVERRIDES>
          Override versions using the given requirements files [env: UV_OVERRIDE=]
      --excludes <EXCLUDES>
          Exclude packages from resolution using the given requirements files [env: UV_EXCLUDE=]
  -b, --build-constraints <BUILD_CONSTRAINTS>
          Constrain build dependencies using the given requirements files when building source
          distributions [env: UV_BUILD_CONSTRAINT=]
      --extra <EXTRA>
          Include optional dependencies from the specified extra name; may be provided more than
          once
      --all-extras
          Include all optional dependencies
      --cert <FILE>
          Path to a PEM-encoded CA certificate bundle
      --group <GROUP>
          Install the specified dependency group from a `pylock.toml` or `pyproject.toml`
      --no-deps
          Ignore package dependencies, instead only installing those packages explicitly listed on
          the command line or in the requirements files
      --require-hashes
          Require a matching hash for each requirement [env: UV_REQUIRE_HASHES=]
      --no-verify-hashes
          Disable validation of hashes in the requirements file [env: UV_NO_VERIFY_HASHES=]
      --system
          Install packages into the system Python environment [env: UV_SYSTEM_PYTHON=]
      --break-system-packages
          Allow uv to modify an `EXTERNALLY-MANAGED` Python installation [env:
          UV_BREAK_SYSTEM_PACKAGES=]
      --no-break-system-packages

  -t, --target <TARGET>
          Install packages into the specified directory, rather than into the virtual or system
          Python environment. The packages will be installed at the top-level of the directory
      --prefix <PREFIX>
          Install packages into `lib`, `bin`, and other top-level folders under the specified
          directory, as if a virtual environment were present at that location
      --no-build
          Don't build source distributions
      --no-binary <NO_BINARY>
          Don't install pre-built wheels
      --only-binary <ONLY_BINARY>
          Only use pre-built wheels; don't build source distributions
      --python-version <PYTHON_VERSION>
          The minimum Python version that should be supported by the requirements (e.g., `3.7` or
          `3.7.9`)
      --python-platform <PYTHON_PLATFORM>
          The platform for which requirements should be installed [possible values: windows, linux,
          macos, x86_64-pc-windows-msvc, aarch64-pc-windows-msvc, i686-pc-windows-msvc,
          x86_64-unknown-linux-gnu, aarch64-apple-darwin, x86_64-apple-darwin,
          aarch64-unknown-linux-gnu, aarch64-unknown-linux-musl, x86_64-unknown-linux-musl,
          riscv64-unknown-linux, x86_64-manylinux2014, x86_64-manylinux_2_17, x86_64-manylinux_2_28,
          x86_64-manylinux_2_31, x86_64-manylinux_2_32, x86_64-manylinux_2_33,
          x86_64-manylinux_2_34, x86_64-manylinux_2_35, x86_64-manylinux_2_36,
          x86_64-manylinux_2_37, x86_64-manylinux_2_38, x86_64-manylinux_2_39,
          x86_64-manylinux_2_40, aarch64-manylinux2014, aarch64-manylinux_2_17,
          aarch64-manylinux_2_28, aarch64-manylinux_2_31, aarch64-manylinux_2_32,
          aarch64-manylinux_2_33, aarch64-manylinux_2_34, aarch64-manylinux_2_35,
          aarch64-manylinux_2_36, aarch64-manylinux_2_37, aarch64-manylinux_2_38,
          aarch64-manylinux_2_39, aarch64-manylinux_2_40, aarch64-linux-android,
          x86_64-linux-android, wasm32-pyodide2024, wasm32-pyodide2025, arm64-apple-ios,
          arm64-apple-ios-simulator, x86_64-apple-ios-simulator]
      --exact
          Perform an exact sync, removing extraneous packages
      --strict
          Validate the Python environment after completing the installation, to detect packages with
          missing dependencies or other issues
      --dry-run
          Perform a dry run, i.e., don't actually install anything but resolve the dependencies and
          print the resulting plan
      --torch-backend <TORCH_BACKEND>
          The backend to use when fetching packages in the PyTorch ecosystem (e.g., `cpu`, `cu126`,
          or `auto`) [env: UV_TORCH_BACKEND=] [possible values: auto, cpu, cu132, cu130, cu129,
          cu128, cu126, cu125, cu124, cu123, cu122, cu121, cu120, cu118, cu117, cu116, cu115, cu114,
          cu113, cu112, cu111, cu110, cu102, cu101, cu100, cu92, cu91, cu90, cu80, rocm7.2, rocm7.1,
          rocm7.0, rocm6.4, rocm6.3, rocm6.2.4, rocm6.2, rocm6.1, rocm6.0, rocm5.7, rocm5.6,
          rocm5.5, rocm5.4.2, rocm5.4, rocm5.3, rocm5.2, rocm5.1.1, rocm4.2, rocm4.1, rocm4.0.1,
          xpu]
      --user

Index options:
      --index <INDEX>
          The indexes to use when resolving dependencies, in addition to the default index [env:
          UV_INDEX]
      --default-index <DEFAULT_INDEX>
          The default package index (by default: <https://pypi.org/simple>) [env: UV_DEFAULT_INDEX]
  -i, --index-url <INDEX_URL>
          (Deprecated: use `--default-index` instead) The URL of the Python package index (by
          default: <https://pypi.org/simple>) [env: UV_INDEX_URL]
      --extra-index-url <EXTRA_INDEX_URL>
          (Deprecated: use `--index` instead) Extra URLs of package indexes to use, in addition to
          `--index-url` [env: UV_EXTRA_INDEX_URL]
  -f, --find-links <FIND_LINKS>
          Locations to search for candidate distributions, in addition to those found in the
          registry indexes [env: UV_FIND_LINKS]
      --no-index
          Ignore the registry index (e.g., PyPI), instead relying on direct URL dependencies and
          those provided via `--find-links`
      --index-strategy <INDEX_STRATEGY>
          The strategy to use when resolving against multiple index URLs [env: UV_INDEX_STRATEGY=]
          [possible values: first-index, unsafe-first-match, unsafe-best-match]
      --[redacted]ring-provider <[redacted]RING_PROVIDER>
          Attempt to use `[redacted]ring` for authentication for index URLs [env: UV_[redacted]RING_PROVIDER=]
          [possible values: disabled, subprocess]

Resolver options:
  -U, --upgrade
          Allow package upgrades, ignoring pinned versions in any existing output file. Implies
          `--refresh`
  -P, --upgrade-package <UPGRADE_PACKAGE>
          Allow upgrades for a specific package, ignoring pinned versions in any existing output
          file. Implies `--refresh-package`
      --upgrade-group <UPGRADE_GROUP>
          Allow upgrades for all packages in a dependency group, ignoring pinned versions in any
          existing output file
      --resolution <RESOLUTION>
          The strategy to use when selecting between the different compatible versions for a given
          package requirement [env: UV_RESOLUTION=] [possible values: highest, lowest,
          lowest-direct]
      --prerelease <PRERELEASE>
          The strategy to use when considering pre-release versions [env: UV_PRERELEASE=] [possible
          values: disallow, allow, if-necessary, explicit, if-necessary-or-explicit]
      --prerelease-package <PRERELEASE_PACKAGE>
          The strategy to use when considering pre-release versions for a specific package
      --fork-strategy <FORK_STRATEGY>
          The strategy to use when selecting multiple versions of a given package across Python
          versions and platforms [env: UV_FORK_STRATEGY=] [possible values: fewest, requires-python]
      --exclude-newer <EXCLUDE_NEWER>
          Limit candidate packages to those that were uploaded prior to the given date [env:
          UV_EXCLUDE_NEWER=]
      --exclude-newer-package <EXCLUDE_NEWER_PACKAGE>
          Limit candidate packages for specific packages to those that were uploaded prior to the
          given date
      --no-sources
          Ignore the `tool.uv.sources` table when resolving dependencies. Used to lock against the
          standards-compliant, publishable package metadata, as opposed to using any workspace, Git,
          URL, or local path sources [env: UV_NO_SOURCES=]
      --no-sources-package <NO_SOURCES_PACKAGE>
          Don't use sources from the `tool.uv.sources` table for the specified packages [env:
          `UV_NO_SOURCES_PACKAGE`=]

Installer options:
      --reinstall
          Reinstall all packages, regardless of whether they're already installed. Implies
          `--refresh`
      --reinstall-package <REINSTALL_PACKAGE>
          Reinstall a specific package, regardless of whether it's already installed. Implies
          `--refresh-package`
      --link-mode <LINK_MODE>
          The method to use when installing packages from the global cache [env: UV_LINK_MODE=]
          [possible values: clone, copy, hardlink, symlink]
      --compile-bytecode
          Compile Python files to bytecode after installation [env: UV_COMPILE_BYTECODE=]

Build options:
  -C, --config-setting <CONFIG_SETTING>
          Settings to pass to the PEP 517 build backend, specified as `[redacted]=VALUE` pairs
      --config-settings-package <CONFIG_SETTINGS_PACKAGE>
          Settings to pass to the PEP 517 build backend for a specific package, specified as
          `PACKAGE:[redacted]=VALUE` pairs
      --no-build-isolation
          Disable isolation when building source distributions [env: UV_NO_BUILD_ISOLATION=]
      --no-build-isolation-package <NO_BUILD_ISOLATION_PACKAGE>
          Disable isolation when building source distributions for a specific package

Cache options:
  -n, --no-cache
          Avoid reading from or writing to the cache, instead using a temporary directory for the
          duration of the operation [env: UV_NO_CACHE=]
      --cache-dir <CACHE_DIR>
          Path to the cache directory [env: UV_CACHE_DIR=]
      --refresh
          Refresh all cached data
      --refresh-package <REFRESH_PACKAGE>
          Refresh cached data for a specific package

Python options:
  -p, --python <PYTHON>      The Python interpreter into which packages should be installed. [env:
                             UV_PYTHON=]
      --managed-python       Require use of uv-managed Python versions [env: UV_MANAGED_PYTHON=]
      --no-managed-python    Disable use of uv-managed Python versions [env: UV_NO_MANAGED_PYTHON=]
      --no-python-downloads  Disable automatic downloads of Python. [env:
                             "UV_PYTHON_DOWNLOADS=never"]

Global options:
  -q, --quiet...
          Use quiet output
  -v, --verbose...
          Use verbose output
      --color <COLOR_CHOICE>
          Control the use of color in output [possible values: auto, always, never]
      --system-certs
          Whether to load TLS certificates from the platform's native certificate store [env:
          UV_SYSTEM_CERTS=]
      --offline
          Disable network access [env: UV_OFFLINE=]
      --allow-insecure-host <ALLOW_INSECURE_HOST>
          Allow insecure connections to a host [env: UV_INSECURE_HOST=]
      --no-progress
          Hide all progress outputs [env: UV_NO_PROGRESS=]
      --directory <DIRECTORY>
          Change to the given directory prior to running the command [env: UV_WORKING_DIR=]
      --project <PROJECT>
          Discover a project in the given directory [env: UV_PROJECT=]
      --config-file <CONFIG_FILE>
          The path to a `uv.toml` file to use for configuration [env: UV_CONFIG_FILE=]
      --no-config
          Avoid discovering configuration files (`pyproject.toml`, `uv.toml`) [env: UV_NO_CONFIG=]
  -h, --help
          Display the concise help for this command

Use `uv help pip install` for more details.
$mktemp -d && uv venv && uv pip install requests && uv pip list --format=jsonreproduced
$ mktemp -d && uv venv && uv pip install requests && uv pip list --format=json
Using CPython 3.13.15
Creating virtual environment at: .venv
⠋ Resolving dependencies...                                                     
⠙ Resolving dependencies...                                                     
⠋ Resolving dependencies...                                                     
⠙ Resolving dependencies...                                                     
⠙ requests==2.34.2                                                              
⠙ charset-normalizer==3.5.1                                                     
⠙ idna==3.19                                                                    
⠙ urllib3==2.7.0                                                                
⠙ certifi==2026.7.22                                                            
⠙                                                                               
Resolved 5 packages in 1ms
░░░░░░░░░░░░░░░░░░░░ [0/0] Installing wheels...                                 
░░░░░░░░░░░░░░░░░░░░ [0/5] Installing wheels...                                 
░░░░░░░░░░░░░░░░░░░░ [0/5] requests==2.34.2                                     
████░░░░░░░░░░░░░░░░ [1/5] requests==2.34.2                                     
████░░░░░░░░░░░░░░░░ [1/5] urllib3==2.7.0                                       
████████░░░░░░░░░░░░ [2/5] urllib3==2.7.0                                       
████████░░░░░░░░░░░░ [2/5] certifi==2026.7.22                                   
████████████░░░░░░░░ [3/5] certifi==2026.7.22                                   
████████████░░░░░░░░ [3/5] charset-normalizer==3.5.1                            
████████████████░░░░ [4/5] charset-normalizer==3.5.1                            
████████████████░░░░ [4/5] idna==3.19                                           
████████████████████ [5/5] idna==3.19                                           
Installed 5 packages in 3ms
 + certifi==2026.7.22
 + charset-normalizer==3.5.1
 + idna==3.19
 + requests==2.34.2
 + urllib3==2.7.0
[{"name":"certifi","version":"2026.7.22"},{"name":"charset-normalizer","version":"3.5.1"},{"name":"idna","version":"3.19"},{"name":"requests","version":"2.34.2"},{"name":"urllib3","version":"2.7.0"}]

Claims vs evidence — vendor claims reconciled against independent verdictsClaims vs evidence

9 of 13 testable claims verified · 0 contradictedintegrity 69/100

32 distinct capability claims found in uv’s own claimed-docs/GitHub materials, reconciled against our judge’s independent verdicts.

9

Verified

4

Unverified

0

Contradicted

12

Undersold

Verified (15)
Unverified (4)
Undersold (12)
Claims outside our story set (14)

Real capability claims found in uv’s own materials, but no story in this arena’s taxonomy covers them yet — that’s feedback on the taxonomy, not a mark against the product.

  • Scaffold a new Python project with `uv init`

    source ↗
  • Run standalone scripts with inline dependency metadata, managing their deps/envs

    source ↗
  • Acts as a single tool replacing pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv

    source ↗
  • Run a CLI tool ephemerally in an isolated temp virtual environment via `uv tool run`

    source ↗
  • Install a CLI tool persistently so its executable is on PATH via `uv tool install`

    source ↗
  • Clear the entire cache or a specific package's cache with `uv cache clean`

    source ↗
  • Standalone-installed uv can update itself on demand via `uv self update`

    source ↗
  • Enable shell autocompletion for uv commands

    source ↗
  • Include extra packages alongside a tool when running it ephemerally via `uvx --with`

    source ↗
  • Manages dependencies and isolated environments for single-file scripts

    source ↗
  • Custom cache-key entries (file paths, git commit hashes) can be configured under tool.uv.cache-keys

    source ↗
  • Tool environments can be upgraded via `uv tool upgrade` or recreated via reinstall

    source ↗
  • Add a dependency to a specific standalone script via `uv add --script`

    source ↗
  • Installable without needing Rust or Python toolchains, via curl or pip

    source ↗
Suggest a story for these →

Business model

open-source

Free, Apache-2.0/MIT dual-licensed Python package and project manager built by Astral, a venture-funded company that monetizes separately (pyx registry) rather than through uv itself.

pricing ↗

Score trend

How this product’s scores have moved as evidence and verdicts are re-derived — a point per change, not per day.

PA Score29 (Sep 4 '26)27 (Sep 4 '26)
Agent-ready46 (Sep 4 '26)54 (Sep 4 '26)

Try Experimental

Run it in the microterminal →

Recorded agent sessions — and a live MCP handshake where the vendor ships one.

Flag

⚑ Flag a verdict

Think a verdict is wrong? Opens a prefilled GitHub issue — or use the ⚑ next to any verdict above.

Badge

Embed this product's score badge →

Hotlinked SVG — always shows the live current score.

For agents

Data