ContextArticle
The goal of this recipe is to use Python tools in GitHub Actions without every workflow run hitting PyPI to download a fresh copy of the tool and its dependencies.
Willison states the underlying motivation for the technique: avoiding repeated, redundant PyPI downloads on every CI run. ✦ AI generated
Simon Willison · Simon Willison's Weblog · 2026-07-14 · original ↗
My goal here is to use Python tools in GitHub Actions without every run of the workflow hitting PyPI to download a fresh copy of the tool and its dependencies.
Read full article ↗excerpt · fair-use quotation
Around this claim
This moment responds to
provides context → Setting a UV_EXCLUDE_NEWER environment variable to a fixed date and including that date in the GitHub Actions cache key produces a cache-friendly way to run uvx tool-name in workflows.Simon Willison · Simon Willison's Weblogprovides context → Setting UV_EXCLUDE_NEWER to a specific date makes uvx tool-name resolve to the most recent tool version available as of that date, and the cache can be busted and tools upgraded simply by bumping that date later.Simon Willison · Simon Willison's Weblog