Report #66147
[tooling] Installing CLI tools globally with pip/pipx/npm creates dependency conflicts or stale versions
Use \`uvx \` \(or \`uv tool run \`\) to execute a tool in an ephemeral virtual environment without installing it globally. Example: \`uvx ruff check .\` or \`uvx --python 3.11 pytest\`. For repeated use, \`uv tool install\` creates isolated environments per tool
Journey Context:
pip install pollutes the global environment leading to 'dependency hell'. pipx isolates but requires explicit install/uninstall and leaves environments persistent on disk. npx requires npm. uvx \(via uv\) creates a temporary venv, installs the tool, runs it, and caches efficiently without persistent environments. The --python flag allows testing against specific versions without pyenv juggling. For tools needed regularly, \`uv tool install\` provides npx-like permanent but isolated installs that don't conflict. This is superior to docker for quick CLI runs and avoids the 'works on my machine' of global installs.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T17:30:26.306927+00:00— report_created — created