programs.uv.enable
Whether to enable uv.
Type: boolean
Default:
false
Example:
true
Declared by:
programs.uv.package
The uv package to use.
Type: null or package
Default:
pkgs.uv
Declared by:
programs.uv.python.default
Versions from programs.uv.python.versions to set as default
Python versions, each installed with
uv python install --default.
--default provides the unversioned executable for the
request’s implementation, so defaults of different implementations do
not conflict: a CPython request provides python and
python3, a PyPy request provides pypy and
pypy3, a GraalPy request provides graalpy and
graalpy3. List one request per implementation to set them
all. A bare string is accepted as a single-element list.
Type: (list of string) or string convertible to it
Default:
[ ]
Example:
[
"3.13"
"pypy@3.11"
]
Declared by:
programs.uv.python.prune
Whether to make the set of managed Python versions fully declarative.
When enabled, managed Python versions that no longer match any entry in
programs.uv.python.versions are uninstalled before the listed
versions are installed, so the set is fully declarative. uv resolves
each requested version to the install target it would produce, so only
the difference is removed; versions that are already correct are left
untouched rather than reinstalled.
Warning: Versions installed manually with uv python install are also
removed, since they are not listed here.
Type: boolean
Default:
false
Declared by:
programs.uv.python.versions
Python versions to install with uv python during activation. Each
entry is passed verbatim to uv python install, so any
request it accepts works (e.g. "3.13", "3.12.4", "pypy@3.11",
"cpython-3.14.5+freethreaded").
Entries without a patch component (e.g. "3.13", "pypy@3.11") are
installed with --upgrade, so on every activation they track
the latest patch release. Entries pinned to an exact patch (e.g.
"3.12.4") are installed as requested and never upgraded, since uv
rejects upgrading them. See
https://docs.astral.sh/uv/concepts/python-versions/ for more
information.
Type: list of string
Default:
[ ]
Example:
[
"3.13"
"3.12"
"pypy@3.11"
]
Declared by:
programs.uv.settings
Configuration written to
$XDG_CONFIG_HOME/uv/uv.toml.
See https://docs.astral.sh/uv/configuration/files/
and https://docs.astral.sh/uv/reference/settings/
for more information.
Type: TOML value
Default:
{ }
Example:
{
python-downloads = "never";
python-preference = "only-system";
pip.index-url = "https://test.pypi.org/simple";
}
Declared by:
programs.uv.tool.packages
Tools to install with uv tool during activation. Each entry is passed
verbatim to uv tool install, so version specifiers and extras
work (e.g. "black==24.1.0", "poetry[plugin]").
On every activation uv tool upgrade is run for the listed
tools, which upgrades them to the latest version allowed by the
constraints they were installed with (e.g. "black==24.1.0" stays
pinned). Tools that are not listed are left untouched. See
https://docs.astral.sh/uv/concepts/tools/ for more information.
Type: list of string
Default:
[ ]
Example:
[
"ruff"
"black==24.1.0"
"poetry[plugin]"
]
Declared by:
programs.uv.tool.prune
Whether to make the set of installed tools fully declarative.
When enabled, installed tools whose package name is no longer listed in
programs.uv.tool.packages are uninstalled before the listed
tools are installed, so the set is fully declarative. Only the
difference is removed; tools that are already installed are left for the
upgrade step rather than reinstalled.
Warning: Tools installed manually with uv tool install are also
removed, since they are not listed here.
Type: boolean
Default:
false
Declared by: