uv self update: Upgrade the uv Binary
uv self update upgrades the uv executable to the latest release when uv was installed via the standalone installer.
uv self update keeps the binary current, but in CI you usually pin the version instead so behavior does not change mid-pipeline.
What it does
uv self update downloads and replaces the uv binary with the newest release. It only works for standalone-installer installs; a uv installed via pip or a package manager must be upgraded through that manager instead.
Common usage
uv self update
uv self update 0.5.0
uv --version
# pin uv in CI via the setup action input insteadOptions
| Argument / Flag | What it does |
|---|---|
| (no arg) | Update to the latest release |
| <version> | Update (or downgrade) to a specific version |
| --token <token> | GitHub token to avoid rate limits when fetching |
In CI
Prefer pinning uv (for example, the version input on astral-sh/setup-uv, or installing a fixed version) over self update, so the toolchain is reproducible. If you must update in a job, pass --token to dodge GitHub API rate limits on shared runners.
Common errors in CI
"error: Self-update is only available for uv binaries installed via the standalone installer" means uv came from pip or a distro package; upgrade it there instead. "API rate limit exceeded" when checking releases is fixed with --token. A read-only install location yields a permission error replacing the binary.