Skip to content

pnpm wins · 1210 (11 drawn)

Agent experience — stories about agent experience in this arenaAgent experience

Stories about agent experience in this arena

Headless installs

  1. ai-native userHave an agent install and update project dependencies non-interactively, with clear exit codes and errors when something fails

    weight 3 · round drawn

    pnpm docs show strong non-interactive/CI-friendly behavior: automatic frozen-lockfile mode in CI, installation failing if the lockfile needs updates, offline mode failing if a package is unavailable, and audit/fix commands for dependency issues — all consistent with reliable scripted use by an agent. However, there is no explicit documentation of exit-code semantics or structured error output for install/update failures, and community evidence only discusses speed/DX, not error-handling robustness for automation. Missing for 10: explicit exit-code documentation, structured/machine-readable error output, and independent verification that failures are clearly signaled in agent/CI pipelines.

    • [claimed-docs] When pnpm detects that it is running in CI, it switches to frozen-lockfile mode automatically.
    • [claimed-docs] In a CI environment, installation fails if a lockfile is present but needs an update.
    • [claimed-docs] If true, pnpm will use only packages already available in the store. If a package won't be found locally, the installation will fail.
    • [claimed-docs] Run a full dependency resolution and report what a real install would change, without writing anything to disk.
    • [claimed-docs] Checks for known security issues with the installed packages.
    • [claimed-docs] Checks for known security issues with the installed packages... run `pnpm audit --fix`.

    uv's `uv add`, `uv remove`, and `uv lock --upgrade-package` commands are documented as non-interactive CLI operations that update the lockfile/environment, and community reports confirm uv surfaces resolution errors (e.g., failing to resolve a local wheel) rather than silently succeeding, supporting scriptable failure detection. However, no evidence explicitly documents uv's exit-code conventions or structured/machine-parseable error output for agent-driven automation. Missing for 10: explicit exit-code documentation, structured/JSON error reporting, and first-party guidance on non-interactive/CI failure handling.

    • [claimed-docs] You can add dependencies to your `pyproject.toml` with the `uv add` command. This will also update the lockfile and project environment
    • [claimed-docs] To remove a package, you can use `uv remove`
    • [claimed-docs] To upgrade a package, run `uv lock` with the `--upgrade-package` flag
    • [community] I have one problem with uv... It doesn't seem to understand the concept of >= when it's trying to resolve a local wheel I built and use... i…
    • [claimed-docs] The `--upgrade-package` flag will attempt to update the specified package to the latest compatible version, while keeping the rest of the lo…

Manifest editing

  1. ai-native userAdd, remove, and upgrade dependencies through CLI commands that safely rewrite the manifest and lockfile, so an agent never hand-edits them

    weight 2 · round to uv

    pnpm's entire design centers on CLI-driven manifest/lockfile management: dry-run installs show exactly what would change before writing anything (pnpm-docs-9/19), CI automatically enforces frozen-lockfile integrity so manifest/lockfile drift is caught (pnpm-docs-13/34), and workspace/catalog features (pnpm-docs-6/7/32) show version bumps propagate safely through the manifest without manual editing. Community reports corroborate reliable, fast lockfile-driven installs across large monorepos (pnpm-comm-3, pnpm-comm-12, pnpm-comm-14). missing for 10: explicit documentation citation of pnpm add/remove/update command syntax and lockfile-safety guarantees specifically for those subcommands (evidence only covers install/audit/workspace behavior, not the add/remove/update commands directly)

    • [claimed-docs] Run a full dependency resolution and report what a real install would change, without writing anything to disk.
    • [claimed-docs] Run a full dependency resolution and report what a real install would change, without writing anything to disk. No lockfile, manifest, or `n…
    • [claimed-docs] When pnpm detects that it is running in CI, it switches to frozen-lockfile mode automatically.
    • [claimed-docs] In a CI environment, installation fails if a lockfile is present but needs an update.
    • [claimed-docs] First-class monorepos: the workspace protocol for local packages, filtering to run tasks on just the projects you touched, and a single lock…
    • [claimed-docs] Define a dependency version once in pnpm-workspace.yaml and reference it as "catalog:" everywhere. One line to upgrade, and no more version-…
    • [community] pnpm has been my goto JS monorepo package manager + script runner for a couple of years now. IMO it has almost zero downsides and huge upsid…
    • [community] we're part way through switching all our monorepos from lerna to pnpm & simply could not be happier & more excited... everything on pnpm's b…
    • [community] I recently migrated a fairly large monorepo (20+ packages) that used Lerna and npm to pnpm... Dependency install times went down by a huge a…

    uv provides dedicated CLI commands (`uv add`, `uv remove`, `uv lock --upgrade-package`) that programmatically update both pyproject.toml and uv.lock, exactly the kind of safe manifest/lockfile rewrite an agent would invoke instead of hand-editing files, and this is corroborated by community reports of uv 'just working' for dependency management. missing for 10: no explicit hands-on evidence of an agent-driven workflow using these commands, and no discussion of safety guarantees against manual lockfile edits.

    • [claimed-docs] You can add dependencies to your `pyproject.toml` with the `uv add` command. This will also update the lockfile and project environment
    • [claimed-docs] The `--upgrade-package` flag will attempt to update the specified package to the latest compatible version, while keeping the rest of the lo…
    • [claimed-docs] To remove a package, you can use `uv remove`
    • [claimed-docs] To upgrade a package, run `uv lock` with the `--upgrade-package` flag
    • [claimed-docs] `uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
    • [community] UV is fast, like FAST. Plus, it removes the need for pyenv and pip for me... no need to activate env or anything, uv run automatically runs …
    • [community] The biggest praise I can give uv is that as a non Python dev, it makes Python a lot more accessible... With uv, you don't have to care about…

Structured output

  1. ai-native userGet machine-readable (JSON) output from core commands so an agent can parse results instead of scraping text

    weight 2 · round to uv
    pnpmnone0/10

    No evidence in the pack mentions JSON output flags (e.g. --json) for pnpm commands like list, outdated, or audit; the docs pack covers workspaces, patching, security, and CLI options but nothing about machine-readable output formats for agent consumption.

      Docs show at least one core command supporting machine-readable output (`uv version --output-format json`), indicating uv has JSON output support for some commands, which an agent could parse instead of scraping text. However, evidence pack shows only this single command with a JSON flag; there's no documentation of JSON output across other core commands (uv add, uv lock, uv tree, uv pip list, uv tool list, etc.) or independent confirmation of consistent structured-output support. Missing for 10: JSON/structured output evidence for other core commands (add, remove, lock, tree, pip list/freeze), a documented schema, and independent/hands-on confirmation that agents can reliably parse it.

    • ai-native userPoint an agent at a documented, text-based lockfile format it can read and diff

      weight 1 · round to uv

      The docs repeatedly reference a lockfile mechanism (frozen-lockfile in CI, failing installs when the lockfile needs updates, dry-run install reporting what would change) which implies a persistent, checked-in lockfile artifact that tooling can inspect, but none of the evidence explicitly documents the lockfile's format (e.g. YAML/text), its human-readability, or its diffability for an agent. Missing for 10: explicit statement that pnpm-lock.yaml is a plain-text/YAML format, documentation framing it as git-diffable, and any independent/hands-on evidence of an agent or tool actually reading/diffing it.

      • [claimed-docs] When pnpm detects that it is running in CI, it switches to frozen-lockfile mode automatically.
      • [claimed-docs] In a CI environment, installation fails if a lockfile is present but needs an update.
      • [claimed-docs] Run a full dependency resolution and report what a real install would change, without writing anything to disk.
      • [claimed-docs] Run a full dependency resolution and report what a real install would change, without writing anything to disk. No lockfile, manifest, or `n…

      uv.lock is documented as a well-defined, cross-platform lockfile containing exact dependency information, and uv provides a documented CLI/reference and llms.txt for machine consumption, supporting agent readability. However, the evidence never explicitly states the lockfile's text format (TOML) or its diff-friendliness, nor is there community/hands-on confirmation of agents reading/diffing uv.lock. Missing for 10: explicit documentation of the lockfile's text/TOML format, explicit diff-friendliness claims, and independent evidence of agents successfully parsing or diffing uv.lock.

      • [claimed-docs] `uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
      • [claimed-docs] uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
      • [claimed-docs] uv.lock is a cross-platform lockfile that contains exact information about your project's dependencies.
      • [claimed-docs] uv publishes an llms.txt index of its documentation at docs.astral.sh/uv/llms.txt (served as text/plain): "# uv > uv is an extremely fast Py…
      • [probe] official CLI documented at https://docs.astral.sh/uv/reference/cli/

    Agenticness — how well agents can access and operate the productAgenticness

    How well agents can access and operate the product

    Agent access

    1. ai-native userPoint an agent at llms.txt or agent-oriented docs

      weight 2 · round to uv
      pnpmnone0/10

      Direct probes show pnpm.io does not serve an llms.txt or markdown-formatted docs (404s), and no evidence pack item mentions agent-oriented documentation formats; the CLI docs page exists but is standard human-facing documentation, not an agent-discoverable format.

      • [probe] PROBE llms.txt: HTTP 404 at https://pnpm.io/llms.txt
      • [probe] PROBE docs-md: HTTP 404 at https://pnpm.io/motivation.md
      • [probe] PROBE openapi: all candidate paths 404 (https://pnpm.io/openapi.json, https://pnpm.io/swagger.json, https://pnpm.io/api/openapi.json, https:…

      uv explicitly publishes an llms.txt index at docs.astral.sh/uv/llms.txt and exposes every doc page as raw markdown via an index.md suffix, directly enabling agent-oriented doc consumption. The probe evidence checked different, incorrect paths (root-level llms.txt, bare .md suffix) so it does not actually contradict the documented llms.txt location. Missing for 10: independent/hands-on confirmation that the exact documented llms.txt URL and index.md convention work as described.

      • [claimed-docs] uv publishes an llms.txt index of its documentation at docs.astral.sh/uv/llms.txt (served as text/plain): "# uv > uv is an extremely fast Py…
      • [probe] PROBE llms.txt: HTTP 404 at https://docs.astral.sh/llms.txt
      • [probe] PROBE docs-md: HTTP 404 at https://docs.astral.sh/uv/.md
    2. ai-native userRun the product headlessly / in CI for automation

      weight 2 · round drawn

      pnpm has explicit, documented CI-oriented behavior: automatic frozen-lockfile mode when CI is detected, failing installs if the lockfile needs updates, a self-contained executable requiring no Node.js (with ability to install runtime afterwards), and package manager version pinning via packageManager field — all directly aimed at headless/automated CI usage. Community evidence corroborates fast, reliable CI performance. Missing for 10: independent third-party CI-integration case studies beyond docs, and no explicit GitHub Actions/other CI platform official integration guides in evidence.

      • [claimed-docs] When pnpm detects that it is running in CI, it switches to frozen-lockfile mode automatically.
      • [claimed-docs] It needs no Node.js. pnpm is a self-contained executable, and it can install the runtime for you afterwards with `pnpm runtime set node lts …
      • [claimed-docs] If your `package.json` has a `packageManager` or `devEngines.packageManager` field, pnpm switches to that version on first use
      • [claimed-docs] It needs no Node.js. pnpm is a self-contained executable, and it can install the runtime for you afterwards with pnpm runtime set node lts -…
      • [claimed-docs] In a CI environment, installation fails if a lockfile is present but needs an update.
      • [community] It works very fast in CI, its cache is smaller and it builds node_modules much faster... Speed difference is 15s vs 35s for our use case whi…

      uv is explicitly designed as a scriptable CLI with deterministic, non-interactive commands (init, add, run, lock, tool install) and provides official CI tooling via the astral-sh/setup-uv GitHub Action, cache persistence for CI, and self-update; it also ships a documented CLI reference and JSON output mode (uv version --output-format json) for machine parsing, all consistent with headless/CI use. Missing for 10: no independent CI-hands-on report confirming smooth headless runs at scale, and community notes mention some friction with Docker/CI env var complexity (uv-comm-16).

      • [claimed-docs] we recommend the official `astral-sh/setup-uv` action, which installs uv, adds it to PATH, (optionally) persists the cache, and more
      • [claimed-docs] we recommend the official [`astral-sh/setup-uv`](https://github.com/astral-sh/setup-uv) action, which installs uv, adds it to PATH, (optiona…
      • [claimed-docs] When using a matrix to test multiple Python versions, set the Python version using `astral-sh/setup-uv`
      • [claimed-docs] This will respect the Python version pinned in the project.
      • [claimed-docs] $ uv version --output-format json
      • [github] uv can update itself to the latest version: bash uv self update
      • [community] 1. It tries to do too many things... 2. You end up needing to use `uv pip` so it's not even a full replacement for pip. 3. It does not play …
    3. ai-native userUse an official CLI

      weight 2 · round drawn

      pnpm is fundamentally a CLI tool with extensive first-party documentation of its command set (install, audit, patch, licenses, etc.) and a dedicated CLI reference page, plus broad community usage confirming real-world CLI use in scripts/CI. Missing for 10: no AI-specific CLI aids like an llms.txt (404) or machine-readable API/docs for agent discovery.

      • [probe] official CLI documented at https://pnpm.io/pnpm-cli
      • [claimed-docs] Run a full dependency resolution and report what a real install would change, without writing anything to disk.
      • [claimed-docs] Verifies the ECDSA registry signatures of installed packages against the public keys published by each registry at `/-/npm/v1/keys`.
      • [claimed-docs] Checks for known security issues with the installed packages.
      • [community] pnpm has been my goto JS monorepo package manager + script runner for a couple of years now. IMO it has almost zero downsides and huge upsid…
      • [community] It works very fast in CI, its cache is smaller and it builds node_modules much faster... Speed difference is 15s vs 35s for our use case whi…

      uv ships an official, extensively documented CLI (docs.astral.sh/uv/reference/cli/) covering project management, tool execution, packaging, and even JSON-structured output (`uv version --output-format json`) suitable for scripting/agentic use, corroborated by extensive first-party docs and independent hands-on community reports of CLI usage. Missing for 10: no explicit documentation or guide targeting AI-agent/automation-specific CLI usage patterns beyond general scriptability.

      • [probe] official CLI documented at https://docs.astral.sh/uv/reference/cli/
      • [claimed-docs] $ uv version --output-format json
      • [claimed-docs] A single tool to replace `pip`, `pip-tools`, `pipx`, `poetry`, `pyenv`, `twine`, `virtualenv`, and more.
      • [claimed-docs] Runs scripts, with support for inline dependency metadata.
      • [community] UV is fast, like FAST. Plus, it removes the need for pyenv and pip for me... no need to activate env or anything, uv run automatically runs …
      • [community] The biggest praise I can give uv is that as a non Python dev, it makes Python a lot more accessible... With uv, you don't have to care about…
      • [claimed-docs] uv publishes an llms.txt index of its documentation at docs.astral.sh/uv/llms.txt (served as text/plain): "# uv > uv is an extremely fast Py…
    4. ai-native userDrive the product through a documented public API

      weight 3 · round to uv
      pnpmnone0/10

      pnpm is a CLI package manager with no documented public API, SDK, or programmatic interface for AI agents to drive it — probes confirm no llms.txt, no docs-md, and no OpenAPI spec exist, only a CLI reference. missing for 10: any documented public API (REST/SDK/programmatic), machine-readable API spec, or agent-facing interface beyond shell CLI invocation.

      • [probe] PROBE llms.txt: HTTP 404 at https://pnpm.io/llms.txt
      • [probe] PROBE docs-md: HTTP 404 at https://pnpm.io/motivation.md
      • [probe] PROBE openapi: all candidate paths 404 (https://pnpm.io/openapi.json, https://pnpm.io/swagger.json, https://pnpm.io/api/openapi.json, https:…
      • [probe] official CLI documented at https://pnpm.io/pnpm-cli

      uv is a CLI tool whose only 'API' is its command-line interface, which is thoroughly documented (uv-probe-4 CLI reference) and includes some machine-friendly outputs (e.g. `uv version --output-format json`) plus a claimed llms.txt/markdown doc mirror for LLM consumption (uv-docs-52). However there is no true public REST/SDK API, and independent probes found no openapi spec and a 404 on the root llms.txt path (uv-probe-1, uv-probe-3), so AI-native programmatic access is limited to shelling out to the CLI rather than calling a documented API surface. Missing for 10: a genuine REST/SDK API, confirmed working llms.txt/openapi endpoint, and evidence of agents driving uv via anything beyond CLI invocation.

      • [probe] official CLI documented at https://docs.astral.sh/uv/reference/cli/
      • [claimed-docs] $ uv version --output-format json
      • [claimed-docs] uv publishes an llms.txt index of its documentation at docs.astral.sh/uv/llms.txt (served as text/plain): "# uv > uv is an extremely fast Py…
      • [probe] PROBE llms.txt: HTTP 404 at https://docs.astral.sh/llms.txt
      • [probe] PROBE openapi: all candidate paths 404 (https://docs.astral.sh/openapi.json, https://docs.astral.sh/swagger.json, https://docs.astral.sh/api…

    Api quality

    1. ai-native userExplore an interactive API reference with runnable examples

      weight 2 · round drawn
      pnpmnone0/10

      pnpm is a CLI package manager with static docs pages; there's no evidence of an interactive API reference with runnable examples, and probes for llms.txt, docs-md, and openapi specs all returned 404s, indicating no such interactive/machine-readable reference exists.

      • [probe] PROBE llms.txt: HTTP 404 at https://pnpm.io/llms.txt
      • [probe] PROBE docs-md: HTTP 404 at https://pnpm.io/motivation.md
      • [probe] PROBE openapi: all candidate paths 404 (https://pnpm.io/openapi.json, https://pnpm.io/swagger.json, https://pnpm.io/api/openapi.json, https:…
      uvnone0/10

      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.

      • [probe] PROBE llms.txt: HTTP 404 at https://docs.astral.sh/llms.txt
      • [probe] PROBE docs-md: HTTP 404 at https://docs.astral.sh/uv/.md
      • [probe] PROBE openapi: all candidate paths 404 (https://docs.astral.sh/openapi.json, https://docs.astral.sh/swagger.json, https://docs.astral.sh/api…
      • [probe] official CLI documented at https://docs.astral.sh/uv/reference/cli/
    2. ai-native userRely on versioned APIs with a documented deprecation policy

      weight 2 · round drawn
      pnpmnone0/10

      No evidence pack item documents a formal API/CLI versioning scheme or deprecation policy for pnpm; the closest signals are community complaints about breaking changes (e.g., dropped corepack support) with no linked deprecation notice, and no changelog or semver policy is cited.

      • [community] Am I the only one that hates the decision to no longer support corepack?
      uvnone0/10

      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. The axis is applicable (a tool could publish versioned APIs/CLI compatibility guarantees with deprecation notices) but no such policy is evidenced.

      • [probe] PROBE openapi: all candidate paths 404 (https://docs.astral.sh/openapi.json, https://docs.astral.sh/swagger.json, https://docs.astral.sh/api…
      • [claimed-docs] uv publishes an llms.txt index of its documentation at docs.astral.sh/uv/llms.txt (served as text/plain): "# uv > uv is an extremely fast Py…
      • [probe] official CLI documented at https://docs.astral.sh/uv/reference/cli/

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

    How much of the product can run unattended

    1. ai-native userPerform bulk operations across many items at once

      weight 2 · round to pnpm

      pnpm's workspace filtering ('run tasks on just the projects you touched'), single lockfile across all packages, and catalogs ('define a dependency version once... reference it everywhere, one line to upgrade') directly enable bulk operations across many packages/dependencies at once, and community reports confirm this monorepo tooling works well in practice. Missing for 10: concrete CLI examples of the --filter bulk syntax, evidence of scale limits, and no AI-native-specific framing or independent benchmarking of bulk operations.

      • [claimed-docs] First-class monorepos: the workspace protocol for local packages, filtering to run tasks on just the projects you touched, and a single lock…
      • [claimed-docs] Define a dependency version once in pnpm-workspace.yaml and reference it as "catalog:" everywhere. One line to upgrade, and no more version-…
      • [claimed-docs] Allows setting project-specific configuration for individual workspace packages. This replaces workspace project-specific `.npmrc` files.
      • [community] we're part way through switching all our monorepos from lerna to pnpm & simply could not be happier & more excited... everything on pnpm's b…
      • [community] I recently migrated a fairly large monorepo (20+ packages) that used Lerna and npm to pnpm... Dependency install times went down by a huge a…

      uv supports some bulk-style operations — importing all dependencies from a requirements.txt via `uv add -r` (uv-docs-42), workspace support for managing multiple sub-projects (uv-docs-32/56), and lockfile-wide upgrade operations (uv-docs-9/39) — but there is no explicit 'bulk operate across many items' feature (e.g., batch scripting many independent tasks, mass tool upgrades, or fleet-style operations) documented or discussed by users. Missing for 10: dedicated bulk/batch command documentation, evidence of scaling to many independent items (not just one project's dependency tree), and hands-on confirmation of bulk workflows.

      • [claimed-docs] If you're migrating from a `requirements.txt` file, you can use `uv add` with the `-r` flag to add all dependencies from the file
      • [claimed-docs] Supports Cargo-style [workspaces](concepts/projects/workspaces/) for scalable projects.
      • [claimed-docs] Supports Cargo-style workspaces for scalable projects.
      • [claimed-docs] The `--upgrade-package` flag will attempt to update the specified package to the latest compatible version, while keeping the rest of the lo…
      • [claimed-docs] To upgrade a package, run `uv lock` with the `--upgrade-package` flag

    Cross platform — stories about cross platform in this arenaCross platform

    Stories about cross platform in this arena

    Platform parity

    1. developerUse the same workflow and config on macOS, Linux, and Windows

      weight 2 · round to uv

      pnpm is a self-contained executable that doesn't require Node.js, can install/pin Node per project, and provides a single consistent CLI/config (pnpm-workspace.yaml, .npmrc) that works the same regardless of OS, plus CI docs treat it uniformly. However, there is no explicit cross-platform statement or Windows/macOS/Linux parity documentation, and community evidence shows real platform-specific friction (Electron/symlink incompatibility, symlinks getting messed up) that undercuts a fully uniform workflow claim. Missing for 10: explicit vendor documentation confirming identical behavior across macOS/Linux/Windows, and independent verification that config/workflow is truly platform-agnostic without caveats.

      • [claimed-docs] It needs no Node.js. pnpm is a self-contained executable, and it can install the runtime for you afterwards with `pnpm runtime set node lts …
      • [claimed-docs] Install and pin Node.js per project straight from pnpm — no nvm, no shell hooks, no “works on my machine” version mismatches.
      • [claimed-docs] If your `package.json` has a `packageManager` or `devEngines.packageManager` field, pnpm switches to that version on first use
      • [claimed-docs] When pnpm detects that it is running in CI, it switches to frozen-lockfile mode automatically.
      • [community] I was unable to use pnpm with a project that used Electron (~2 years ago), IIRC because some spawned process was incompatible with symlinks.…
      • [community] I use pnpm only for monorepos for which I find it works quite well. Although at times there have been issues, mainly with symlinks getting m…

      uv's lockfile is explicitly documented as cross-platform, and it ships standalone installers (curl-based) plus pip installation, with consistent CLI commands (`uv add`, `uv run`, `uv tool install`, etc.) that work the same way regardless of OS. Community comments corroborate a consistent, fast workflow but don't specifically stress-test Windows parity. Missing for 10: explicit Windows-specific documentation/testing, independent hands-on confirmation of identical behavior across macOS/Linux/Windows, and any discussion of platform-specific quirks.

      • [claimed-docs] `uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
      • [claimed-docs] uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
      • [claimed-docs] uv.lock is a cross-platform lockfile that contains exact information about your project's dependencies.
      • [github] Installable without Rust or Python via `curl` or `pip`.
      • [claimed-docs] A single tool to replace `pip`, `pip-tools`, `pipx`, `poetry`, `pyenv`, `twine`, `virtualenv`, and more.
      • [community] Tried uv a while ago and I was shocked by how fast and easy it is to use. There's basically no reason to use pip anymore, and if you're usin…
      • [community] UV is fast, like FAST. Plus, it removes the need for pyenv and pip for me... no need to activate env or anything, uv run automatically runs …

    Ecosystem extensibility — stories about ecosystem extensibility in this arenaEcosystem extensibility

    Stories about ecosystem extensibility in this arena

    Extensibility

    1. developerExtend the manager through third-party taps, overlays, plugins, or backends

      weight 1 · round drawn
      pnpmnone0/10

      The evidence pack shows no plugin architecture, taps, overlays, or pluggable backend system for pnpm — only built-in features like patches, catalogs, and audit. No documentation of a third-party extension mechanism analogous to Homebrew taps or npm/yarn plugin systems appears anywhere in the pack.

        uvnone0/10

        The evidence pack contains no mention of any plugin system, third-party backend hooks, taps, or overlay mechanism for uv; all citations describe uv's built-in commands (add/remove/run/tool/venv/cache) rather than any extensibility API for third parties to hook into the manager. This is a fair axis for a package/project manager (comparable to pip plugins or poetry plugins), but no evidence shows uv supports it.

        Private registries

        1. platform-engineerPoint the manager at private registries or mirrors with scoped authentication

          weight 2 · round to pnpm

          The docs mention project-specific `.npmrc`-replacing settings and registry signature verification against per-registry public keys, implying multi-registry support, but there is no explicit documentation in the pack of configuring private registries/mirrors with scoped (per-package-scope) authentication tokens. missing for 10: explicit docs on `.npmrc` scoped registry/authToken configuration, mirror setup examples, and any hands-on confirmation of scoped auth working in practice.

          • [claimed-docs] Allows setting project-specific configuration for individual workspace packages. This replaces workspace project-specific `.npmrc` files.
          • [claimed-docs] Verifies the ECDSA registry signatures of installed packages against the public keys published by each registry at `/-/npm/v1/keys`.
          • [claimed-docs] Verifies the ECDSA registry signatures of installed packages against the public keys published by each registry at /-/npm/v1/keys.
          • [claimed-docs] Verifies the ECDSA registry signatures of installed packages against the public keys published by each registry
          uvnone0/10

          The evidence pack covers uv's project management, tools, caching, and pip-compatibility features but contains no mention of configuring private package indexes, mirrors, or scoped authentication credentials. This is a fair axis for a package manager, but no supporting evidence exists in the pack.

          Registry

          1. developerInstall almost anything I need from a large, actively maintained package registry or repository

            weight 2 · round drawn

            pnpm is a drop-in replacement for npm that installs from the same npm registry ecosystem, giving developers access to virtually the entire npm package registry without migration or rewrites; community reports confirm large real-world projects (20+ package monorepos, Electron apps, etc.) installing arbitrary npm dependencies successfully via pnpm. missing for 10: explicit first-party statements about registry size/maintenance or support for alternate registries beyond npm compatibility.

            • [claimed-docs] pnpm is a drop-in replacement for npm — and then keeps going, with the features large repos actually need.
            • [claimed-docs] Point it at any existing project — no migration, no rewrites, no lockfile gymnastics.
            • [claimed-docs] pnpm is a drop-in replacement for npm. Point it at any existing project — no migration, no rewrites, no lockfile gymnastics.
            • [community] I recently migrated a large project from yarn to pnpm and the speed difference is insane... The only tricky thing is that we had some issues…
            • [community] I recently migrated a fairly large monorepo (20+ packages) that used Lerna and npm to pnpm... Dependency install times went down by a huge a…

            uv fully supports installing Python packages and tools via uv add, uv pip, uv tool install/uvx, all of which draw on the standard Python package ecosystem (PyPI) and are corroborated by extensive community use for real-world packages like torch, ruff, and pycowsay, showing it can fetch a huge range of actively maintained packages quickly and reliably. missing for 10: explicit mention of PyPI/registry scale or freshness, and independent benchmarking of registry breadth vs pip/conda.

            • [claimed-docs] You can add dependencies to your `pyproject.toml` with the `uv add` command. This will also update the lockfile and project environment
            • [claimed-docs] The `uv pip` interface exposes the speed and functionality of uv to power users and projects that are not ready to transition away from `pip…
            • [claimed-docs] uv provides a drop-in replacement for common `pip`, `pip-tools`, and `virtualenv` commands.
            • [claimed-docs] Install a tool with `uv tool install`: $ uv tool install ruff
            • [claimed-docs] $ uvx pycowsay 'hello world!'
            • [community] Tried uv a while ago and I was shocked by how fast and easy it is to use. There's basically no reason to use pip anymore, and if you're usin…
            • [community] UV is fast, like FAST. Plus, it removes the need for pyenv and pip for me... no need to activate env or anything, uv run automatically runs …
            • [community] the 86GB python dependency download cache on my primary SSD, most of which can be attributed to the 50 different versions of torch... even u…

          Install reproducibility — stories about install reproducibility in this arenaInstall reproducibility

          Stories about install reproducibility in this arena

          Bootstrap

          1. developerBootstrap a fresh clone with one command that installs everything the project declares

            weight 2 · round drawn

            pnpm's core workflow is a single `pnpm install` that resolves and links all declared dependencies from package.json/lockfile, with frozen-lockfile enforcement in CI (docs-13, docs-34) ensuring reproducible bootstrapping, and community reports confirm fast, reliable installs on fresh clones/monorepos (pnpm-comm-5, pnpm-comm-14, pnpm-comm-17). The content-addressable store and node_modules linking (docs-15, docs-28) further support consistent installs across machines. Missing for 10: an explicit doc snippet naming the single `pnpm install` bootstrap command/flow rather than inferring it from CI/lockfile docs, and independent benchmarking beyond anecdotal HN comments.

            • [claimed-docs] When pnpm detects that it is running in CI, it switches to frozen-lockfile mode automatically.
            • [claimed-docs] In a CI environment, installation fails if a lockfile is present but needs an update.
            • [claimed-docs] Files inside node_modules are hard-linked from a single content-addressable store. A hundred projects on the same version cost you one copy …
            • [claimed-docs] The files in the node_modules directories are hard links to the same files in the content-addressable store.
            • [community] It works very fast in CI, its cache is smaller and it builds node_modules much faster... Speed difference is 15s vs 35s for our use case whi…
            • [community] I recently migrated a fairly large monorepo (20+ packages) that used Lerna and npm to pnpm... Dependency install times went down by a huge a…
            • [community] I've migrated from yarn to pnpm two days ago and I can tell the difference when I first hit install... Thanks to its non-flat algorithm the …

            uv's project workflow (uv init, uv add, uv.lock cross-platform lockfile) combined with `uv run` automatically creating/syncing the environment before executing anything means a fresh clone can be bootstrapped and run with a single command, as confirmed by docs (uv-docs-17, uv-docs-16) and hands-on community reports ('no need to activate env or anything, uv run automatically runs your code through the env' — uv-comm-6; 'The venv and your Python install are just handled for you by uv run' — uv-comm-10). missing for 10: no explicit citation of the dedicated `uv sync` subcommand or an end-to-end fresh-clone walkthrough in the evidence pack.

            • [claimed-docs] `uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
            • [claimed-docs] $ uv run ruff check All checks passed!
            • [claimed-docs] $ uv init example Initialized project `example` at `/home/user/example`
            • [community] UV is fast, like FAST. Plus, it removes the need for pyenv and pip for me... no need to activate env or anything, uv run automatically runs …
            • [community] The biggest praise I can give uv is that as a non Python dev, it makes Python a lot more accessible... With uv, you don't have to care about…

          Lockfiles

          1. platform-engineerEnforce a frozen/immutable lockfile mode that fails the install when the manifest and lockfile disagree

            weight 2 · round to pnpm

            pnpm documents an explicit --frozen-lockfile install mode that fails when the lockfile doesn't match the manifest, and auto-enables this mode in CI environments, directly matching the platform-engineer's need for enforceable install reproducibility. missing for 10: independent/hands-on confirmation of frozen-lockfile failure behavior beyond first-party docs.

            • [claimed-docs] When pnpm detects that it is running in CI, it switches to frozen-lockfile mode automatically.
            • [claimed-docs] In a CI environment, installation fails if a lockfile is present but needs an update.
            uvnone0/10

            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. Since lockfile reproducibility is clearly an applicable axis for a package manager but no supporting evidence exists, this is 'none' rather than 'na'.

            • [claimed-docs] `uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
            • [claimed-docs] uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
            • [claimed-docs] uv.lock is a cross-platform lockfile that contains exact information about your project's dependencies.
            • [claimed-docs] The `--upgrade-package` flag will attempt to update the specified package to the latest compatible version, while keeping the rest of the lo…
            • [claimed-docs] To upgrade a package, run `uv lock` with the `--upgrade-package` flag
          2. developerInstall dependencies from a lockfile and get the exact same resolved versions on every machine

            weight 3 · round to pnpm

            pnpm's docs describe frozen-lockfile installs (default in CI, failing if the lockfile is stale) and a content-addressable, hard-linked store that guarantees identical resolved package files across machines, and multiple community reports confirm consistent, fast, reproducible installs in real projects/monorepos. Missing for 10: an independent third-party audit specifically verifying byte-identical resolution across machines, and one community comment (pnpm-comm-15) prefers yarn3 for reproducibility, giving a minor secondary caveat.

            • [claimed-docs] When pnpm detects that it is running in CI, it switches to frozen-lockfile mode automatically.
            • [claimed-docs] In a CI environment, installation fails if a lockfile is present but needs an update.
            • [claimed-docs] Files inside node_modules are hard-linked from a single content-addressable store. A hundred projects on the same version cost you one copy …
            • [claimed-docs] The files in the node_modules directories are hard links to the same files in the content-addressable store.
            • [community] pnpm has been my goto JS monorepo package manager + script runner for a couple of years now. IMO it has almost zero downsides and huge upsid…
            • [community] we're part way through switching all our monorepos from lerna to pnpm & simply could not be happier & more excited... everything on pnpm's b…
            • [community] I recently migrated a fairly large monorepo (20+ packages) that used Lerna and npm to pnpm... Dependency install times went down by a huge a…
            • [community] We migrated from pnpm to yarn3 with node_modules linker. pnpm focus on wrong things, speed, disk efficiently is less important than stable, …

            uv's `uv.lock` is described as a cross-platform lockfile with exact dependency information, and `uv add`/`uv lock --upgrade-package` explicitly preserve the rest of the lockfile intact, supporting deterministic, reproducible installs across machines. Missing for 10: explicit documentation of the `uv sync` command for installing strictly from the lockfile, and independent/hands-on confirmation that resolved versions are identical across different OS/machines.

            • [claimed-docs] `uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
            • [claimed-docs] uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
            • [claimed-docs] uv.lock is a cross-platform lockfile that contains exact information about your project's dependencies.
            • [claimed-docs] You can add dependencies to your `pyproject.toml` with the `uv add` command. This will also update the lockfile and project environment
            • [claimed-docs] The `--upgrade-package` flag will attempt to update the specified package to the latest compatible version, while keeping the rest of the lo…
            • [claimed-docs] To upgrade a package, run `uv lock` with the `--upgrade-package` flag

          Pinning

          1. developerPin exact versions of packages and tools per project and have the manager respect those pins

            weight 3 · round to uv

            pnpm supports lockfiles with frozen-install/CI enforcement, overrides in pnpm-workspace.yaml, catalogs for pinning shared versions, and packageManager/devEngines pinning of Node itself, all of which are respected during install (frozen-lockfile, --offline, --update-checksums controls). missing for 10: independent hands-on verification of pin enforcement across edge cases, and clearer detail on per-dependency exact-version pinning (save-exact) beyond catalogs/overrides.

            • [claimed-docs] Define a dependency version once in pnpm-workspace.yaml and reference it as "catalog:" everywhere. One line to upgrade, and no more version-…
            • [claimed-docs] Add overrides to the `pnpm-workspace.yaml` file in order to force non-vulnerable versions of the dependencies.
            • [claimed-docs] When pnpm detects that it is running in CI, it switches to frozen-lockfile mode automatically.
            • [claimed-docs] If your `package.json` has a `packageManager` or `devEngines.packageManager` field, pnpm switches to that version on first use
            • [claimed-docs] In a CI environment, installation fails if a lockfile is present but needs an update.
            • [claimed-docs] Allows setting project-specific configuration for individual workspace packages. This replaces workspace project-specific `.npmrc` files.
            • [claimed-docs] Catalogs are also defined in the `pnpm-workspace.yaml` file. See [_Catalogs_](/catalogs) for details.

            uv.lock provides exact cross-platform dependency pinning respected by uv sync/run, uv python pin pins Python version per project, and tool installs respect specified version constraints on upgrade; community feedback corroborates reliable reproducible behavior. Missing for 10: no independent hands-on test explicitly verifying pin enforcement across CI/multiple machines beyond docs claims.

            • [claimed-docs] `uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
            • [claimed-docs] You can add dependencies to your `pyproject.toml` with the `uv add` command. This will also update the lockfile and project environment
            • [claimed-docs] To remove a package, you can use `uv remove`
            • [github] Use a specific Python version in the current directory: console $ uv python pin 3.11 Pinned `.python-version` to `3.11`
            • [claimed-docs] This will respect the Python version pinned in the project.
            • [claimed-docs] Tool upgrades will respect the version constraints provided when installing the tool.
            • [community] Tried uv a while ago and I was shocked by how fast and easy it is to use. There's basically no reason to use pip anymore, and if you're usin…
            • [community] uv is much faster than both [pyenv and poetry], has a more ergonomic CLI, and solves both of the issues I just mentioned [poetry resolver st…

          Migration adoption — stories about migration adoption in this arenaMigration adoption

          Stories about migration adoption in this arena

          Compatibility

          1. switcherKeep using familiar commands and interface conventions from the incumbent tool while adopting this manager

            weight 2 · round drawn

            pnpm explicitly markets itself as a drop-in npm replacement usable on existing projects with no migration or lockfile rewrites, and community reports confirm successful switches from npm/yarn/lerna with major speed gains. However, hands-on accounts document real behavioral differences from npm that switchers hit — peer deps aren't auto-installed (unlike npm@7+), some setups needed --shamefully-hoist to restore npm-like flat resolution, symlink-related incompatibilities (e.g. Electron), and confusion from the pnpm binary name being easily mistyped as npm. missing for 10: independent verification that all npm CLI flags/behaviors are fully compatible, and resolution of the documented peer-dependency/symlink friction points.

            • [claimed-docs] pnpm is a drop-in replacement for npm — and then keeps going, with the features large repos actually need.
            • [claimed-docs] Point it at any existing project — no migration, no rewrites, no lockfile gymnastics.
            • [claimed-docs] pnpm is a drop-in replacement for npm. Point it at any existing project — no migration, no rewrites, no lockfile gymnastics.
            • [community] I recently migrated a large project from yarn to pnpm and the speed difference is insane... The only tricky thing is that we had some issues…
            • [community] we're part way through switching all our monorepos from lerna to pnpm & simply could not be happier & more excited... everything on pnpm's b…
            • [community] I recently migrated a fairly large monorepo (20+ packages) that used Lerna and npm to pnpm... Dependency install times went down by a huge a…
            • [community] I've migrated from yarn to pnpm two days ago and I can tell the difference when I first hit install... Thanks to its non-flat algorithm the …
            • [community] Pnpm doesn't auto install peer dependencies, which is annoying and forces you to unnecessary add them to package.json. Npm@7 with auto insta…
            • [community] I was unable to use pnpm with a project that used Electron (~2 years ago), IIRC because some spawned process was incompatible with symlinks.…
            • [community] I ran into glitches around the pnpm script that wrap binaries... The name is too close to npm. I'll inadvertently type npm and that starts d…

            uv explicitly ships a `uv pip` interface described as a drop-in replacement for common pip/pip-tools/virtualenv commands, letting switchers keep familiar syntax while adopting uv (uv-docs-5, uv-docs-31), and also supports migrating requirements.txt via `uv add -r` (uv-docs-42). However, hands-on community reports show real friction: missing `uv pip install --user` support, `uv pip` not being a full pip replacement in some workflows, and non-standard handling of things like NVIDIA's package hacks or pre-releases (uv-comm-8, uv-comm-12, uv-comm-16). Missing for 10: independent verification that all common pip/poetry/pyenv command idioms map cleanly, and resolution of documented edge-case incompatibilities.

            • [claimed-docs] The `uv pip` interface exposes the speed and functionality of uv to power users and projects that are not ready to transition away from `pip…
            • [claimed-docs] uv provides a drop-in replacement for common `pip`, `pip-tools`, and `virtualenv` commands.
            • [claimed-docs] If you're migrating from a `requirements.txt` file, you can use `uv add` with the `-r` flag to add all dependencies from the file
            • [community] Lack of `uv pip install --user` has made transitioning our existing python environment a bit more challenging than I'd like, but not a deal …
            • [community] This does not work with uv, even with the `uv pip` interface, because uv rightly doesn't put up with that shit [NVIDIA's registry-breaking p…
            • [community] 1. It tries to do too many things... 2. You end up needing to use `uv pip` so it's not even a full replacement for pip. 3. It does not play …

          Migration

          1. switcherMigrate an existing project from the incumbent tool with documented import or conversion tooling

            weight 2 · round drawn

            pnpm positions itself as a drop-in replacement for npm requiring no migration/rewrites/lockfile gymnastics, and community reports confirm real-world migrations from yarn/lerna/npm with noted speed and dependency benefits (pnpm-docs-2, pnpm-docs-17, pnpm-comm-10, pnpm-comm-14, pnpm-comm-17). However there is no dedicated migration guide, import command, or conversion tooling documented, and community evidence shows friction requiring workarounds like --shamefully-hoist and manual peer-dependency fixes during migration. Missing for 10: a documented step-by-step migration/import guide, an automated lockfile-conversion tool, and first-party acknowledgment of common migration pitfalls.

            • [claimed-docs] Point it at any existing project — no migration, no rewrites, no lockfile gymnastics.
            • [claimed-docs] pnpm is a drop-in replacement for npm. Point it at any existing project — no migration, no rewrites, no lockfile gymnastics.
            • [community] I recently migrated a large project from yarn to pnpm and the speed difference is insane... The only tricky thing is that we had some issues…
            • [community] I recently migrated a fairly large monorepo (20+ packages) that used Lerna and npm to pnpm... Dependency install times went down by a huge a…
            • [community] I've migrated from yarn to pnpm two days ago and I can tell the difference when I first hit install... Thanks to its non-flat algorithm the …
            • [community] Pnpm doesn't auto install peer dependencies, which is annoying and forces you to unnecessary add them to package.json. Npm@7 with auto insta…

            uv documents a concrete import path from pip's requirements.txt (`uv add -r`) and offers a `uv pip` drop-in interface plus positions itself as a pip/pip-tools/poetry/pyenv/virtualenv replacement, and community reports confirm many users migrating with minor friction (e.g. missing `--user` flag). However there is no dedicated conversion tool or documented guide for importing an existing poetry.lock/Pipfile/conda environment, and some community feedback shows migration is only partial (still using `uv pip`, or treating uv as 'just a faster pip+venv'). missing for 10: dedicated poetry/Pipfile/conda lockfile conversion tooling, an official step-by-step migration guide beyond the requirements.txt case, independent hands-on confirmation of full incumbent-tool migration.

            • [claimed-docs] If you're migrating from a `requirements.txt` file, you can use `uv add` with the `-r` flag to add all dependencies from the file
            • [claimed-docs] A single tool to replace `pip`, `pip-tools`, `pipx`, `poetry`, `pyenv`, `twine`, `virtualenv`, and more.
            • [claimed-docs] The `uv pip` interface exposes the speed and functionality of uv to power users and projects that are not ready to transition away from `pip…
            • [claimed-docs] uv provides a drop-in replacement for common `pip`, `pip-tools`, and `virtualenv` commands.
            • [community] Lack of `uv pip install --user` has made transitioning our existing python environment a bit more challenging than I'd like, but not a deal …
            • [community] UV is great but I use it as a more convenient pip+venv. Maybe I'm not using it to it's full potential.
            • [community] 1. It tries to do too many things... 2. You end up needing to use `uv pip` so it's not even a full replacement for pip. 3. It does not play …

          Monorepo workspaces — stories about monorepo workspaces in this arenaMonorepo workspaces

          Stories about monorepo workspaces in this arena

          Workspaces

          1. developerManage many packages in one monorepo with workspaces sharing a single lockfile and cross-linked local dependencies

            weight 3 · round to pnpm

            pnpm's docs explicitly describe first-class monorepo support: workspace protocol for cross-linked local packages, single lockfile across the workspace, filtering to run tasks on touched projects, and catalogs for shared dependency versions to avoid drift. Community evidence corroborates this in practice, with users praising pnpm's built-in monorepo support after migrating from Lerna/Yarn. Missing for 10: no independent large-scale case study detailing lockfile conflict resolution at scale, and some community reports note occasional symlink/dependency-linking glitches in monorepos.

            • [claimed-docs] First-class monorepos: the workspace protocol for local packages, filtering to run tasks on just the projects you touched, and a single lock…
            • [claimed-docs] Define a dependency version once in pnpm-workspace.yaml and reference it as "catalog:" everywhere. One line to upgrade, and no more version-…
            • [claimed-docs] pnpm supports the workspace: protocol. When this protocol is used, pnpm will refuse to resolve to anything other than a local workspace pack…
            • [claimed-docs] we dynamically replace any workspace: dependency by: The corresponding version in the target workspace
            • [claimed-docs] we dynamically replace any `workspace:` dependency by: The corresponding version in the target workspace
            • [community] we're part way through switching all our monorepos from lerna to pnpm & simply could not be happier & more excited... everything on pnpm's b…
            • [community] I recently migrated a fairly large monorepo (20+ packages) that used Lerna and npm to pnpm... Dependency install times went down by a huge a…
            • [community] I use pnpm only for monorepos for which I find it works quite well. Although at times there have been issues, mainly with symlinks getting m…

            uv explicitly documents Cargo-style workspaces for scalable monorepo projects and a single cross-platform uv.lock lockfile shared across the project, which is the core mechanism for cross-linked local dependencies. Missing for 10: independent/hands-on community confirmation specifically of workspace usage (all community comments concern general uv speed/behavior, not workspaces), and no detail on workspace-specific edge cases or member-linking syntax beyond the doc pointer.

            • [claimed-docs] Supports Cargo-style [workspaces](concepts/projects/workspaces/) for scalable projects.
            • [claimed-docs] Supports Cargo-style workspaces for scalable projects.
            • [claimed-docs] `uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
            • [claimed-docs] uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
            • [claimed-docs] uv.lock is a cross-platform lockfile that contains exact information about your project's dependencies.
          2. developerRun installs and scripts filtered to a subset of workspace packages (including only those affected by a change)

            weight 2 · round to pnpm

            pnpm docs explicitly cite 'filtering to run tasks on just the projects you touched' as a first-class monorepo feature, plus community feedback confirms strong built-in monorepo support for scripts/installs across workspace subsets. missing for 10: no explicit doc citation naming the `--filter` flag syntax or change-based filtering (e.g. `--filter=...[origin/main]`), and no independent hands-on verification of filtered install/run behavior beyond general monorepo praise.

            • [claimed-docs] First-class monorepos: the workspace protocol for local packages, filtering to run tasks on just the projects you touched, and a single lock…
            • [community] we're part way through switching all our monorepos from lerna to pnpm & simply could not be happier & more excited... everything on pnpm's b…
            • [community] pnpm is great. I love `pnpm store prune`. Also it's great for monorepos.
            uvnone0/10

            Evidence confirms uv supports Cargo-style workspaces (uv-docs-32, uv-docs-56) but contains no mention of filtering installs or `uv run` scripts to a subset of workspace packages, package-selection flags (e.g. per-package targeting), or any 'affected packages' detection mechanism.

            • [claimed-docs] Supports Cargo-style [workspaces](concepts/projects/workspaces/) for scalable projects.
            • [claimed-docs] Supports Cargo-style workspaces for scalable projects.

          Openness — open source, data portability, and self-hosting storiesOpenness

          Open source, data portability, and self-hosting stories

          1. ai-native userRead the product's source under an open license

            weight 2 · round to uv
            pnpmnone0/10

            pnpm is known to be open source (MIT licensed, hosted on GitHub), but the evidence pack contains no citation confirming a license or repository access — only a GitHub repo link with unrelated performance claims, no license mention.

              The evidence confirms uv's source code lives in a public GitHub repository (astral-sh/uv) that is directly quoted and referenced, indicating openly readable source, but no citation in the pack states or confirms an explicit open-source license (e.g., MIT/Apache) for the project. missing for 10: explicit license file/badge citation, independent confirmation of license terms, and any docs page stating the licensing model.

              • [github] Use a specific Python version in the current directory: console $ uv python pin 3.11 Pinned `.python-version` to `3.11`
              • [github] Installable without Rust or Python via `curl` or `pip`.
              • [github] uv can update itself to the latest version: bash uv self update
              • [github] $ uv python pin 3.11 Pinned `.python-version` to `3.11`
              • [github] $ uv python pin 3.11 [] Pinned `.python-version` to `3.11`

            Performance caching — stories about performance caching in this arenaPerformance caching

            Stories about performance caching in this arena

            Benchmarks

            1. developerSee published benchmarks or measured numbers backing the manager's speed claims

              weight 1 · round to pnpm

              GitHub README explicitly claims 'Up to 2x faster than the alternatives (see benchmark)' pointing to a benchmark section, and independent community reports give concrete measured numbers (e.g., 15s vs 35s CI install, and a Rust rewrite showing 3x/29x speedups). However, the actual benchmark methodology/table isn't present in the evidence pack, and doc probes show no dedicated benchmarks page was found. Missing for 10: the full benchmark data/table itself, methodology details, and independent third-party benchmark reproduction beyond anecdotal HN comments.

              • [github] Up to 2x faster than the alternatives (see [benchmark](#benchmark)).
              • [community] It works very fast in CI, its cache is smaller and it builds node_modules much faster... Speed difference is 15s vs 35s for our use case whi…
              • [community] I recently migrated a fairly large monorepo (20+ packages) that used Lerna and npm to pnpm... Dependency install times went down by a huge a…
              • [community] It is a rewrite of pnpm in Rust — their benchmarks report a clean install with lockfile is about 3x faster (7s -> 2.2s) and a no-op install …
              uvnone0/10

              Evidence contains only qualitative claims of speed ('extremely fast', community anecdotes like 'confusingly fast') but no published benchmark suite, methodology, or measured numbers from Astral or third parties; one community comment (uv-comm-19) references informal internal benchmarking but reports no figures and notes gains can vanish under certain configs, undermining rather than substantiating a benchmark claim.

              • [claimed-docs] uv publishes an llms.txt index of its documentation at docs.astral.sh/uv/llms.txt (served as text/plain): "# uv > uv is an extremely fast Py…
              • [community] When you're used to pip, it's just confusingly fast. More than once I thought maybe it didn't work because it returned too quickly.
              • [community] Tried uv a while ago and I was shocked by how fast and easy it is to use. There's basically no reason to use pip anymore, and if you're usin…
              • [community] At Plotly we did a decent amount of benchmarking... We found you lost almost all of the speed gains if you configured uv behave as much like…

            Binary caching

            1. developerInstall prebuilt binary packages from a cache instead of compiling from source

              weight 3 · round to uv

              pnpm's content-addressable store hard-links previously downloaded/built package files across projects, and `--offline` forces installs to use only packages already in the local store rather than re-fetching, which delivers the caching benefit described. However, the evidence never specifically addresses caching precompiled native binaries to skip source compilation (e.g., node-gyp builds) — it's generic package caching, not binary-artifact caching. missing for 10: explicit documentation of prebuilt/precompiled binary caching for native addons, independent benchmark isolating compile-skip behavior.

              • [claimed-docs] Files inside node_modules are hard-linked from a single content-addressable store. A hundred projects on the same version cost you one copy …
              • [claimed-docs] The files in the node_modules directories are hard links to the same files in the content-addressable store.
              • [claimed-docs] If true, pnpm will use only packages already available in the store. If a package won't be found locally, the installation will fail.
              • [community] It works very fast in CI, its cache is smaller and it builds node_modules much faster... Speed difference is 15s vs 35s for our use case whi…
              • [community] I recently migrated a fairly large monorepo (20+ packages) that used Lerna and npm to pnpm... Dependency install times went down by a huge a…

              uv installs Python packages via wheels (prebuilt binaries) by default and uses a global cache to avoid re-downloading/re-building dependencies already fetched, with docs confirming aggressive caching and disk-efficient global cache for deduplication; community reports corroborate the speed gains from this caching. missing for 10: explicit first-party documentation contrasting wheel vs sdist source builds, and independent benchmarking specifically isolating binary-cache reuse rather than general speed.

              • [claimed-docs] uv uses aggressive caching to avoid re-downloading (and re-building) dependencies that have already been accessed in prior runs.
              • [claimed-docs] Disk-space efficient, with a [global cache](concepts/cache/) for dependency deduplication.
              • [claimed-docs] you can add cache key entries under `tool.uv.cache-keys`, which covers both file paths and Git commit hashes.
              • [community] When you're used to pip, it's just confusingly fast. More than once I thought maybe it didn't work because it returned too quickly.
              • [community] Tried uv a while ago and I was shocked by how fast and easy it is to use. There's basically no reason to use pip anymore, and if you're usin…
              • [community] Switched to uv and everything just worked [after pip's cache was taking up too much space on a shared server with no root access].

            Ci speed

            1. platform-engineerMake CI installs fast with a documented cache-restore setup and offline-capable installs

              weight 3 · round to pnpm

              pnpm documents CI-specific behavior including automatic frozen-lockfile mode, a `--prefer-offline`/offline install flag that fails if packages aren't in the local store, and a content-addressable hard-linked store that dramatically speeds up repeated installs, all reinforced by community reports of faster CI installs and smaller caches. missing for 10: a dedicated first-party 'CI cache setup' guide walking through actions/cache key configuration for pnpm store dir, and independent benchmark data specifically for offline/cache-restore CI scenarios beyond general speed anecdotes.

              • [claimed-docs] When pnpm detects that it is running in CI, it switches to frozen-lockfile mode automatically.
              • [claimed-docs] If true, pnpm will use only packages already available in the store. If a package won't be found locally, the installation will fail.
              • [claimed-docs] Files inside node_modules are hard-linked from a single content-addressable store. A hundred projects on the same version cost you one copy …
              • [claimed-docs] The files in the node_modules directories are hard links to the same files in the content-addressable store.
              • [claimed-docs] In a CI environment, installation fails if a lockfile is present but needs an update.
              • [claimed-docs] It needs no Node.js. pnpm is a self-contained executable, and it can install the runtime for you afterwards with `pnpm runtime set node lts …
              • [community] It works very fast in CI, its cache is smaller and it builds node_modules much faster... Speed difference is 15s vs 35s for our use case whi…
              • [community] It is a rewrite of pnpm in Rust — their benchmarks report a clean install with lockfile is about 3x faster (7s -> 2.2s) and a no-op install …

              uv documents a clear CI caching workflow via the official `astral-sh/setup-uv` GitHub Action (installs uv, persists cache) plus a global dependency cache, cache-key config, and cache-clean commands, which directly supports fast CI installs with cache-restore. However, there is no explicit documentation of an 'offline mode' or offline-install flag, and community reports note real caching gaps (e.g. uvx sometimes re-downloading dependencies, large disk cache growth) that undercut a fully offline-capable guarantee. Missing for 10: explicit offline-install/--offline flag documentation, first-party guidance on air-gapped CI use, and confirmation that cache-restore avoids network calls entirely.

              • [claimed-docs] we recommend the official `astral-sh/setup-uv` action, which installs uv, adds it to PATH, (optionally) persists the cache, and more
              • [claimed-docs] we recommend the official [`astral-sh/setup-uv`](https://github.com/astral-sh/setup-uv) action, which installs uv, adds it to PATH, (optiona…
              • [claimed-docs] Disk-space efficient, with a [global cache](concepts/cache/) for dependency deduplication.
              • [claimed-docs] uv uses aggressive caching to avoid re-downloading (and re-building) dependencies that have already been accessed in prior runs.
              • [claimed-docs] To clear the cache entirely, run `uv cache clean`. To clear the cache for a specific package, run `uv cache clean <package-name>`.
              • [claimed-docs] you can add cache key entries under `tool.uv.cache-keys`, which covers both file paths and Git commit hashes.
              • [claimed-docs] you can add cache key entries under `tool.uv.cache-keys`, which covers both file paths and Git commit hashes
              • [community] I continue to be puzzled why sometime running uvx (uv tool run) will redownload all dependencies even though it just downloaded them for ano…
              • [community] the 86GB python dependency download cache on my primary SSD, most of which can be attributed to the 50 different versions of torch... even u…

            Disk efficiency

            1. developerRely on a shared content-addressable store so the same dependency version is stored once on disk across all projects

              weight 2 · round to pnpm

              First-party docs explicitly describe the content-addressable store with hard-linked files so a package version is stored once on disk across projects, and community reports independently corroborate dramatic disk-space savings from this design. Missing for 10: independent benchmark/measurement of actual disk savings across many real projects beyond anecdotal HN comments.

              • [claimed-docs] Files inside node_modules are hard-linked from a single content-addressable store. A hundred projects on the same version cost you one copy …
              • [claimed-docs] The files in the node_modules directories are hard links to the same files in the content-addressable store.
              • [community] This is my default one, much faster and disk space reduced dramatically when I have lots of node_modules in use. Can't recommend enough.

              uv's docs explicitly describe a global cache that deduplicates dependencies across projects ('Disk-space efficient, with a global cache for dependency deduplication') and detail cache management (cache-keys, cache clean) plus aggressive caching to avoid re-downloading previously accessed packages, directly matching the shared content-addressable store story. Community reports corroborate large speed/disk benefits, though one user notes uvx sometimes re-downloads dependencies unexpectedly, suggesting the caching isn't always perfectly hit. Missing for 10: explicit technical detail on content-addressing/hard-linking mechanism and independent verification of true single-copy-on-disk behavior across projects.

              • [claimed-docs] uv uses aggressive caching to avoid re-downloading (and re-building) dependencies that have already been accessed in prior runs.
              • [claimed-docs] Disk-space efficient, with a [global cache](concepts/cache/) for dependency deduplication.
              • [claimed-docs] To clear the cache entirely, run `uv cache clean`. To clear the cache for a specific package, run `uv cache clean <package-name>`.
              • [claimed-docs] you can add cache key entries under `tool.uv.cache-keys`, which covers both file paths and Git commit hashes.
              • [claimed-docs] you can add cache key entries under `tool.uv.cache-keys`, which covers both file paths and Git commit hashes
              • [community] I continue to be puzzled why sometime running uvx (uv tool run) will redownload all dependencies even though it just downloaded them for ano…
              • [community] Switched to uv and everything just worked [after pip's cache was taking up too much space on a shared server with no root access].

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

            Stories about security supply chain in this arena

            Auditing

            1. platform-engineerAudit installed dependencies for known vulnerabilities directly from the CLI

              weight 3 · round to pnpm

              pnpm ships a native `pnpm audit` CLI command that checks installed packages for known security issues, supports `--fix`, and even verifies registry signatures; docs also describe using overrides to force non-vulnerable versions. This directly matches the platform-engineer story of auditing dependencies from the CLI. Missing for 10: independent/hands-on community corroboration of `pnpm audit` usage and details on vulnerability database source/severity reporting.

              • [claimed-docs] Checks for known security issues with the installed packages.
              • [claimed-docs] Checks for known security issues with the installed packages... run `pnpm audit --fix`.
              • [claimed-docs] Verifies the ECDSA registry signatures of installed packages against the public keys published by each registry at `/-/npm/v1/keys`.
              • [claimed-docs] Add overrides to the `pnpm-workspace.yaml` file in order to force non-vulnerable versions of the dependencies.
              uvnone0/10

              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.

              Hardening

              1. platform-engineerTurn on protections against malicious packages, such as blocking lifecycle scripts or enforcing a minimum release age

                weight 2 · round to pnpm

                pnpm docs confirm lifecycle-script blocking ("Install scripts don't run for arbitrary dependencies. You approve which packages may execute build scripts") plus audit/signature verification for known vulnerabilities, and community evidence confirms a real `minimumReleaseAge` config key exists. However, the minimum-release-age feature is not documented in the first-party pack (only referenced via a confused community question about global vs workspace scope), and there's no first-party doc explaining how to configure/enforce it. Missing for 10: first-party docs on minimumReleaseAge configuration and scope, plus confirmation it works reliably at the global level.

                • [claimed-docs] Install scripts don't run for arbitrary dependencies. You approve which packages may execute build scripts — supply-chain safety without ext…
                • [claimed-docs] Install scripts don’t run for arbitrary dependencies. You approve which packages may execute build scripts — supply-chain safety without ext…
                • [claimed-docs] Checks for known security issues with the installed packages.
                • [claimed-docs] Checks for known security issues with the installed packages... run `pnpm audit --fix`.
                • [community] If I run: pnpm config set -g minimumReleaseAge 1440 — Does that work as well? I can't tell if the global settings are the same as workspace …
                • [community] Why must this be in a workspace file which you may not even have if you aren't in a monorepo, why not in package.json? Anyway, it's progress…
                uvnone0/10

                No evidence in the pack mentions any supply-chain security controls like blocking lifecycle scripts, enforcing minimum package release age, or similar malicious-package protections; all citations concern project/tool management, caching, and general performance/UX feedback.

                Integrity

                1. platform-engineerTrust that fetched packages are verified against checksums, signatures, or attestations before they run

                  weight 2 · round to pnpm

                  pnpm ships `pnpm audit` which verifies ECDSA registry signatures of installed packages against published registry keys and flags known vulnerabilities, plus install-script gating so arbitrary deps can't execute without approval, and lockfile checksums that must be explicitly overridden via --update-checksums. However, signature/audit verification is invoked manually rather than automatically gating every install, and there's no documented support for artifact attestations (e.g., SLSA/sigstore provenance) as part of the trust chain. Missing for 10: automatic pre-execution signature/attestation enforcement on every install, explicit attestation/provenance verification support, independent confirmation the audit signature check is on by default.

                  • [claimed-docs] Verifies the ECDSA registry signatures of installed packages against the public keys published by each registry at `/-/npm/v1/keys`.
                  • [claimed-docs] Verifies the ECDSA registry signatures of installed packages against the public keys published by each registry at /-/npm/v1/keys.
                  • [claimed-docs] Verifies the ECDSA registry signatures of installed packages against the public keys published by each registry
                  • [claimed-docs] Checks for known security issues with the installed packages.
                  • [claimed-docs] Install scripts don't run for arbitrary dependencies. You approve which packages may execute build scripts — supply-chain safety without ext…
                  • [claimed-docs] Install scripts don’t run for arbitrary dependencies. You approve which packages may execute build scripts — supply-chain safety without ext…
                  • [claimed-docs] --update-checksums is the narrowly-scoped opt-in for the legitimate case (e.g. a registry rewrote its tarballs and you've verified the new b…
                  uvnone0/10

                  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.

                  Toolchain management — stories about toolchain management in this arenaToolchain management

                  Stories about toolchain management in this arena

                  Environments

                  1. developerHave the right tool versions and environment variables activate automatically when I enter a project directory

                    weight 1 · round to uv

                    pnpm documents automatic per-project Node.js version pinning without nvm or shell hooks, switching to the version declared in packageManager/devEngines fields on first use (docs-4, docs-22, docs-27). However, there is no evidence of automatic environment-variable activation, nor of true directory-entry (cd-triggered) activation like direnv/mise — pnpm's switching happens 'on first use' of the pnpm CLI, not on shell directory change. Missing for 10: environment variable auto-loading, true cd-triggered activation (vs. on-command-run switching), and any independent/hands-on confirmation of this specific behavior.

                    • [claimed-docs] Install and pin Node.js per project straight from pnpm — no nvm, no shell hooks, no “works on my machine” version mismatches.
                    • [claimed-docs] If your `package.json` has a `packageManager` or `devEngines.packageManager` field, pnpm switches to that version on first use
                    • [claimed-docs] It needs no Node.js. pnpm is a self-contained executable, and it can install the runtime for you afterwards with pnpm runtime set node lts -…
                    • [github] Works as a Node.js version manager.

                    uv supports per-project Python version pinning (`uv python pin`, `.python-version`) and `uv run` automatically uses the correct interpreter/venv without manual activation, and community feedback confirms this removes the need to 'activate' environments manually. However, there is no evidence of automatic shell-hook style activation when simply `cd`-ing into a directory (no direnv-like trigger), nor of automatic environment-variable loading tied to directory entry — activation still requires invoking `uv run`/`uvx` explicitly. missing for 10: automatic directory-based activation without invoking a uv command, evidence of environment-variable (not just Python-version) auto-loading on cd, and independent confirmation of this exact workflow.

                    • [github] Use a specific Python version in the current directory: console $ uv python pin 3.11 Pinned `.python-version` to `3.11`
                    • [github] $ uv python pin 3.11 Pinned `.python-version` to `3.11`
                    • [community] UV is fast, like FAST. Plus, it removes the need for pyenv and pip for me... no need to activate env or anything, uv run automatically runs …
                    • [community] The biggest praise I can give uv is that as a non Python dev, it makes Python a lot more accessible... With uv, you don't have to care about…

                  Runtimes

                  1. developerInstall and switch language runtimes or tool versions per project from a checked-in config file

                    weight 2 · round drawn

                    pnpm docs describe installing/pinning Node.js per project directly from pnpm (no nvm needed), and switching to the version specified in package.json's packageManager/devEngines.packageManager field on first use — exactly the 'checked-in config file' workflow described. GitHub also markets pnpm as usable 'as a Node.js version manager.' Missing for 10: independent/hands-on confirmation that runtime switching works reliably across projects (community discussion instead focuses on corepack deprecation, a related but distinct concern), and broader tool-version support beyond Node.js.

                    • [claimed-docs] Install and pin Node.js per project straight from pnpm — no nvm, no shell hooks, no “works on my machine” version mismatches.
                    • [claimed-docs] It needs no Node.js. pnpm is a self-contained executable, and it can install the runtime for you afterwards with `pnpm runtime set node lts …
                    • [claimed-docs] If your `package.json` has a `packageManager` or `devEngines.packageManager` field, pnpm switches to that version on first use
                    • [claimed-docs] It needs no Node.js. pnpm is a self-contained executable, and it can install the runtime for you afterwards with pnpm runtime set node lts -…
                    • [github] Works as a Node.js version manager.

                    uv supports `uv python pin 3.11` which writes a checked-in `.python-version` file, and `uv python install` to install runtimes, plus `uv tool install`/`uvx` for per-project tool versions pinned via pyproject.toml/lockfile. This directly matches installing/switching runtimes or tool versions from a checked-in config file. Missing for 10: independent hands-on confirmation specifically of `.python-version` switching behavior across projects (only vendor docs/GitHub README cited) and no community corroboration of multi-project runtime switching workflow.

                    • [github] Use a specific Python version in the current directory: console $ uv python pin 3.11 Pinned `.python-version` to `3.11`
                    • [github] $ uv python pin 3.11 Pinned `.python-version` to `3.11`
                    • [github] $ uv python pin 3.11 [] Pinned `.python-version` to `3.11`
                    • [claimed-docs] Python can be installed with the `python install` command
                    • [claimed-docs] uv installs Python and allows quickly switching between versions.
                    • [claimed-docs] This will respect the Python version pinned in the project.
                    • [claimed-docs] $ uv tool install ruff Resolved 1 package in 6ms Installed 1 package in 2ms
                    • [claimed-docs] Install a tool with `uv tool install`

                  Not comparable on these axes

                  1. ai-native userPlug MCP servers into this product so it can use their tools

                    weight 3 · not comparable
                    pnpmn/a

                    pnpm is a package manager/CLI, not an AI agent or MCP-capable tool; plugging MCP servers into it to use their tools is a category error for this product type.

                      uvn/a

                      uv is a Python package/project manager, not an AI agent or assistant; there is no evidence of MCP server integration in its feature set, and this axis is outside its product category.

                      • ai-native userConnect an agent via an official MCP server

                        weight 3 · not comparable
                        pnpmn/a

                        pnpm is a package manager CLI, not an AI agent or a server exposing tools to agents; no evidence of an official MCP server, and this axis is a category error for this product type.

                          uvn/a

                          uv is a Python packaging/project tool, not an agent, and there is no evidence of an official MCP server for it; connecting agents via MCP is outside this product's category.

                          • ai-native userIssue scoped/least-privilege API credentials for an agent

                            weight 2 · not comparable
                            pnpmn/a

                            pnpm is a package manager, not a credential-issuing or API-access-control service; scoped API credential issuance for agents is outside its product category.

                              uvn/a

                              uv is a Python packaging/project tool; it has no concept of API credentials or agent identity/authorization scoping, so scoped/least-privilege credential issuance is a category error for this product type.

                              • ai-native userBuild against official SDKs

                                weight 2 · not comparable
                                pnpmn/a

                                pnpm is a package manager/CLI tool, not a service or platform that offers SDKs to build against; the concept of 'official SDKs' is a category mismatch for this product type.

                                  uvnone0/10

                                  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.

                                  • ai-native userSubscribe to events via webhooks

                                    weight 2 · not comparable
                                    pnpmn/a

                                    pnpm is a package manager CLI/tool with no event-driven or webhook-subscription surface; webhooks are not a fair axis for this kind of product.

                                      uvn/a

                                      uv is a Python packaging/project management CLI tool, not an event-driven service; webhooks/event subscriptions are not a relevant capability category for this kind of product.

                                      • ai-native userGet AI-generated insights and suggestions from my data inside the product

                                        weight 2 · not comparable
                                        pnpmn/a

                                        pnpm is a package manager for JavaScript dependency management; it has no data/analytics surface for AI-generated insights or suggestions, so this axis is a category error for this product type.

                                          uvn/a

                                          uv is a Python packaging/project management tool with no data-analysis or insight-generation features; AI-generated insights from user data is a category error for this product type.

                                          • ai-native userSet up automations that run autonomously in the background

                                            weight 2 · not comparable
                                            pnpmn/a

                                            pnpm is a package manager/CLI tool, not an automation or agent-orchestration platform; setting up autonomous background automations is outside its product category (wrong axis).

                                              uvn/a

                                              uv is a Python packaging/project management tool, not an automation/orchestration platform; there is no axis in the evidence for scheduling or running autonomous background automations, and this capability is outside its category (wrong axis, not a missing feature of this tool type).

                                              • ai-native userDelegate tasks to a built-in AI assistant inside the product

                                                weight 3 · not comparable
                                                pnpmn/a

                                                pnpm is a package manager/CLI tool, not an AI assistant product; delegating tasks to a built-in AI assistant is a category error for this kind of tool and no evidence suggests otherwise.

                                                  uvn/a

                                                  uv is a Python package/project manager CLI, not an AI assistant product; the evidence pack shows no built-in AI assistant feature, and this axis is a category error for this type of tool.

                                                  • ai-native userOperate the product with natural-language commands

                                                    weight 2 · not comparable
                                                    pnpmn/a

                                                    pnpm is a package manager CLI operated via explicit commands and config files, not a natural-language interface; there is no evidence (and no plausible category fit) for operating it via NL commands. This axis is a category error for a package manager, so it does not apply.

                                                      uvnone0/10

                                                      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.

                                                      • ai-native userDownload a machine-readable API spec (OpenAPI or equivalent)

                                                        weight 2 · not comparable
                                                        pnpmn/a

                                                        pnpm is a CLI package manager, not a service with an HTTP API; a machine-readable API spec like OpenAPI is not a relevant axis for this product category — it has no web API to document.

                                                          uv is a CLI tool without a REST/network API, so a traditional OpenAPI spec doesn't apply, but it does publish a machine-readable llms.txt index and raw markdown for every docs page, which is the closest 'equivalent' to a machine-readable spec of its surface (uv-docs-52). However, dedicated probes for actual OpenAPI/swagger endpoints and root-level llms.txt all returned 404s, showing no formal structured API spec exists (uv-probe-1, uv-probe-2, uv-probe-3). Missing for 10: a structured machine-readable spec of the CLI commands/flags themselves (e.g., JSON schema of the CLI), and confirmation the llms.txt/markdown route is discoverable at a standard well-known path.

                                                          • [claimed-docs] uv publishes an llms.txt index of its documentation at docs.astral.sh/uv/llms.txt (served as text/plain): "# uv > uv is an extremely fast Py…
                                                          • [probe] PROBE llms.txt: HTTP 404 at https://docs.astral.sh/llms.txt
                                                          • [probe] PROBE docs-md: HTTP 404 at https://docs.astral.sh/uv/.md
                                                          • [probe] PROBE openapi: all candidate paths 404 (https://docs.astral.sh/openapi.json, https://docs.astral.sh/swagger.json, https://docs.astral.sh/api…
                                                          • [probe] official CLI documented at https://docs.astral.sh/uv/reference/cli/
                                                        • ai-native userTest against a sandbox environment without touching production data

                                                          weight 1 · not comparable
                                                          pnpmn/a

                                                          pnpm is a package manager; it has no concept of production data or sandboxed test environments — this axis is a category error for this product type.

                                                            uvn/a

                                                            uv is a Python package/project manager, not a service with production data or a sandbox/test-environment concept; testing against a sandbox vs production data is a category error for this kind of tool.

                                                            • ai-native userDefine rules that trigger actions automatically on events

                                                              weight 3 · not comparable
                                                              pnpmn/a

                                                              pnpm is a package manager; defining event-triggered automation rules (like workflow/agent rule triggers) is outside its category. It offers lifecycle scripts (install hooks) but no rule-based event-trigger automation system, so this is a category mismatch rather than a missing feature.

                                                                uvn/a

                                                                uv is a Python packaging/project management tool; it has no event-based rule/trigger/automation-workflow engine, and event-driven automation is outside its category (a buyer would use CI/CD or task schedulers for that, not uv itself). This is a wrong-axis question for a package manager, not a missing feature.

                                                                • ai-native userSchedule recurring jobs or workflows

                                                                  weight 2 · not comparable
                                                                  pnpmn/a

                                                                  pnpm is a package manager/CLI, not a workflow orchestration or scheduling tool; scheduling recurring jobs is outside its category and not something a package manager could conceivably ship.

                                                                    uvn/a

                                                                    uv is a Python packaging/project manager; scheduling recurring jobs or workflows is outside its product category — no scheduler/cron/orchestration feature is claimed or implied by any evidence.

                                                                    • ai-native userVersion, review, and roll back my automations

                                                                      weight 1 · not comparable
                                                                      pnpmn/a

                                                                      pnpm is a package manager, not an automation/workflow orchestration tool; versioning, reviewing, and rolling back 'automations' is not within its product category (it manages dependency lockfiles, not AI agent automations or workflows).

                                                                        uvn/a

                                                                        uv is a Python packaging/project manager (dependency installs, virtual envs, tool execution, lockfiles), not an automation/workflow platform; the story's concept of versioning, reviewing, and rolling back 'automations' (e.g., agent workflows) does not map to any uv capability in the evidence pack.

                                                                        • ai-native userDo everything through the API that I can do in the UI

                                                                          weight 2 · not comparable
                                                                          pnpmn/a

                                                                          pnpm is a CLI-only package manager with no graphical UI or web console and no separate API surface — the CLI is the single interface, so an API-vs-UI parity question is a category error for this product type.

                                                                            uvn/a

                                                                            uv is a CLI/package-manager tool with no graphical or web UI and no separate API surface — the CLI itself is the sole interface, so a UI-vs-API parity question is a category error for this kind of product.

                                                                            • ai-native userExport all of my data in open formats and leave

                                                                              weight 3 · not comparable
                                                                              pnpmn/a

                                                                              pnpm is a local CLI package manager that operates directly on files in your own repository (package.json, pnpm-lock.yaml) rather than a hosted service that stores user data behind a proprietary interface; there is no 'export and leave' concept applicable since nothing is locked in a vendor silo to begin with. This data-portability/exit story is a category mismatch for a local dev tool, not a capability gap.

                                                                                uv stores all project state in plain, open formats (pyproject.toml, uv.lock) that live on the user's own filesystem rather than in a proprietary or hosted store, so there is inherently nothing to 'export' — the user already owns open, portable files. However, there's no explicit documentation framing this as a data-portability/export guarantee, and evidence doesn't address other local state (e.g., cache) or any hosted account data. Missing for 10: explicit vendor statement on data portability/no lock-in, documentation of exporting/migrating full project state, independent confirmation of no proprietary artifacts.

                                                                                • [claimed-docs] `uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
                                                                                • [claimed-docs] uv.lock` is a cross-platform lockfile that contains exact information about your project's dependencies.
                                                                                • [claimed-docs] uv.lock is a cross-platform lockfile that contains exact information about your project's dependencies.
                                                                                • [claimed-docs] uv uses aggressive caching to avoid re-downloading (and re-building) dependencies that have already been accessed in prior runs.
                                                                                • [claimed-docs] To clear the cache entirely, run `uv cache clean`. To clear the cache for a specific package, run `uv cache clean <package-name>`.
                                                                              • ai-native userSelf-host the core product

                                                                                weight 3 · not comparable
                                                                                pnpmn/a

                                                                                pnpm is a locally-run, open-source CLI package manager with no hosted/cloud service offering — there is no vendor-hosted version to 'self-host' as an alternative to; the concept of self-hosting doesn't apply to this category of tool.

                                                                                  uvn/a

                                                                                  uv is a local CLI package/project manager distributed as open-source binaries (installed via curl/pip) that runs entirely on the user's own machine; there is no hosted/SaaS version for which 'self-hosting' would be a meaningful alternative deployment choice. This axis is a category error for this kind of product.

                                                                                  • ai-native userChoose where my data is stored (region/residency)

                                                                                    weight 2 · not comparable
                                                                                    pnpmn/a

                                                                                    pnpm is a local package manager with no cloud data storage; data residency/region selection is not applicable to its product category.

                                                                                      uvn/a

                                                                                      uv is a local Python package/project manager CLI tool with no hosted data storage or cloud service component, so data residency/region selection is a category error for this product type.

                                                                                      • ai-native userPrevent my data from being used to train AI models

                                                                                        weight 3 · not comparable
                                                                                        pnpmn/a

                                                                                        pnpm is a package manager, not an AI model provider or data processor; it has no relationship to AI training data usage policies. This axis is a category error for this product type.

                                                                                          uvn/a

                                                                                          uv is a Python package/project manager; it has no data-training or AI-model opt-out feature, and this axis is a category error for a package management CLI tool.

                                                                                          • ai-native userControl data retention and deletion

                                                                                            weight 2 · not comparable
                                                                                            pnpmn/a

                                                                                            pnpm is a package manager/build tool, not a data-processing or AI service that retains user data on a vendor's behalf; 'data retention and deletion' controls are not a meaningful axis for this category of product.

                                                                                              uvn/a

                                                                                              uv is a local Python package/project manager CLI; it does not process, retain, or store user data on behalf of an AI workflow in a way that data-retention/deletion controls would apply. Its only local state is a build/dependency cache (clearable via `uv cache clean`), which is not about privacy-sensitive data retention — this axis is a category error for this product type.

                                                                                              • ai-native userOpt out of telemetry and usage tracking

                                                                                                weight 2 · not comparable
                                                                                                pnpmn/a

                                                                                                pnpm is a local package manager CLI; it does not collect or transmit telemetry/usage data to a vendor server in the way that would require an opt-out, unlike SaaS/AI tools. This is a category mismatch — no evidence pack material discusses telemetry collection or opt-out mechanisms for pnpm.

                                                                                                  uvnone0/10

                                                                                                  No evidence in the pack mentions telemetry, usage tracking, or an opt-out mechanism for uv; none of the docs or community items address this axis.