CLI Reference
uv
An extremely fast Python package manager.
Usage
Commands
uv authManage authentication
uv runRun a command or script
uv initCreate a new project
uv addAdd dependencies to the project
uv removeRemove dependencies from the project
uv versionRead or update the project's version
uv syncUpdate the project's environment
uv lockUpdate the project's lockfile
uv exportExport the project's lockfile to an alternate format
uv treeDisplay the project's dependency tree
uv formatFormat Python code in the project
uv toolRun and install commands provided by Python packages
uv pythonManage Python versions and installations
uv pipManage Python packages with a pip-compatible interface
uv venvCreate a virtual environment
uv buildBuild Python packages into source distributions and wheels
uv publishUpload distributions to an index
uv cacheManage uv's cache
uv selfManage the uv executable
uv helpDisplay documentation for a command
uv auth
Manage authentication
Usage
Commands
uv auth loginLogin to a service
uv auth logoutLogout of a service
uv auth tokenShow the authentication token for a service
uv auth dirShow the path to the uv credentials directory
uv auth login
Login to a service
Usage
Arguments
- SERVICE
The domain or URL of the service to log into
Options
--allow-insecure-host,--trusted-hostallow-insecure-hostAllow insecure connections to a host.
Can be provided multiple times.
Expects to receive either a hostname (e.g.,
localhost), a host-port pair (e.g.,localhost:8080), or a URL (e.g.,https://localhost).WARNING: Hosts included in this list will not be verified against the system's certificate store. Only use
--allow-insecure-hostin a secure network with verified sources, as it bypasses SSL verification and could expose you to MITM attacks.May also be set with the
UV_INSECURE_HOSTenvironment variable.--cache-dircache-dirPath to the cache directory.
Defaults to
$XDG_CACHE_HOME/uvor$HOME/.cache/uvon macOS and Linux, and%LOCALAPPDATA%\uv\cacheon Windows.To view the location of the cache directory, run
uv cache dir.May also be set with the
UV_CACHE_DIRenvironment variable.--colorcolor-choiceControl the use of color in output.
By default, uv will automatically detect support for colors when writing to a terminal.
Possible values:
auto: Enables colored output only when the output is going to a terminal or TTY with supportalways: Enables colored output regardless of the detected environmentnever: Disables colored output
--config-fileconfig-fileThe path to a
uv.tomlfile to use for configuration.While uv configuration can be included in a
pyproject.tomlfile, it is not allowed in this context.May also be set with the
UV_CONFIG_FILEenvironment variable.--directorydirectoryChange to the given directory prior to running the command.
Relative paths are resolved with the given directory as the base.
See
--projectto only change the project root directory.May also be set with the
UV_WORKING_DIRenvironment variable.--help,-hDisplay the concise help for this command
--keyring-providerkeyring-providerThe keyring provider to use for storage of credentials.
Only
--keyring-provider nativeis supported forlogin, which uses the system keyring via an integration built into uv.May also be set with the
UV_KEYRING_PROVIDERenvironment variable.Possible values:
disabled: Do not use keyring for credential lookupsubprocess: Use thekeyringcommand for credential lookup
--managed-pythonRequire use of uv-managed Python versions.
By default, uv prefers using Python versions it manages. However, it will use system Python versions if a uv-managed Python is not installed. This option disables use of system Python versions.
May also be set with the
UV_MANAGED_PYTHONenvironment variable.--native-tlsWhether to load TLS certificates from the platform's native certificate store.
By default, uv loads certificates from the bundled
webpki-rootscrate. Thewebpki-rootsare a reliable set of trust roots from Mozilla, and including them in uv improves portability and performance (especially on macOS).However, in some cases, you may want to use the platform's native certificate store, especially if you're relying on a corporate trust root (e.g., for a mandatory proxy) that's included in your system's certificate store.
May also be set with the
UV_NATIVE_TLSenvironment variable.--no-cache,--no-cache-dir,-nAvoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation
May also be set with the
UV_NO_CACHEenvironment variable.--no-configAvoid discovering configuration files (
pyproject.toml,uv.toml).Normally, configuration files are discovered in the current directory, parent directories, or user configuration directories.
May also be set with the
UV_NO_CONFIGenvironment variable.--no-managed-pythonDisable use of uv-managed Python versions.
Instead, uv will search for a suitable Python version on the system.
May also be set with the
UV_NO_MANAGED_PYTHONenvironment variable.--no-progressHide all progress outputs.
For example, spinners or progress bars.
May also be set with the
UV_NO_PROGRESSenvironment variable.--no-python-downloadsDisable automatic downloads of Python.
--offlineDisable network access.
When disabled, uv will only use locally cached data and locally available files.
May also be set with the
UV_OFFLINEenvironment variable.--passwordpasswordThe password to use for the service.
Use
-to read the password from stdin.--projectprojectDiscover a project in the given directory.
All
pyproject.toml,uv.toml, and.python-versionfiles will be discovered by walking up the directory tree from the project root, as will the project's virtual environment (.venv).Other command-line arguments (such as relative paths) will be resolved relative to the current working directory.
See
--directoryto change the working directory entirely.This setting has no effect when used in the
uv pipinterface.May also be set with the
UV_PROJECTenvironment variable.--quiet,-qUse quiet output.
Repeating this option, e.g.,
-qq, will enable a silent mode in which uv will write no output to stdout.--token,-ttokenThe token to use for the service.
The username will be set to
__token__.Use
-to read the token from stdin.--username,-uusernameThe username to use for the service
--verbose,-vUse verbose output.
You can configure fine-grained logging using the
RUST_LOGenvironment variable. (https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives)
uv auth logout
Logout of a service
Usage
Arguments
- SERVICE
The domain or URL of the service to logout from
Options
--allow-insecure-host,--trusted-hostallow-insecure-hostAllow insecure connections to a host.
Can be provided multiple times.
Expects to receive either a hostname (e.g.,
localhost), a host-port pair (e.g.,localhost:8080), or a URL (e.g.,https://localhost).WARNING: Hosts included in this list will not be verified against the system's certificate store. Only use
--allow-insecure-hostin a secure network with verified sources, as it bypasses SSL verification and could expose you to MITM attacks.May also be set with the
UV_INSECURE_HOSTenvironment variable.--cache-dircache-dirPath to the cache directory.
Defaults to
$XDG_CACHE_HOME/uvor$HOME/.cache/uvon macOS and Linux, and%LOCALAPPDATA%\uv\cacheon Windows.To view the location of the cache directory, run
uv cache dir.May also be set with the
UV_CACHE_DIRenvironment variable.--colorcolor-choiceControl the use of color in output.
By default, uv will automatically detect support for colors when writing to a terminal.
Possible values:
auto: Enables colored output only when the output is going to a terminal or TTY with supportalways: Enables colored output regardless of the detected environmentnever: Disables colored output
--config-fileconfig-fileThe path to a
uv.tomlfile to use for configuration.While uv configuration can be included in a
pyproject.tomlfile, it is not allowed in this context.May also be set with the
UV_CONFIG_FILEenvironment variable.--directorydirectoryChange to the given directory prior to running the command.
Relative paths are resolved with the given directory as the base.
See
--projectto only change the project root directory.May also be set with the
UV_WORKING_DIRenvironment variable.--help,-hDisplay the concise help for this command
--keyring-providerkeyring-providerThe keyring provider to use for storage of credentials.
Only
--keyring-provider nativeis supported forlogout, which uses the system keyring via an integration built into uv.May also be set with the
UV_KEYRING_PROVIDERenvironment variable.Possible values:
disabled: Do not use keyring for credential lookupsubprocess: Use thekeyringcommand for credential lookup
--managed-pythonRequire use of uv-managed Python versions.
By default, uv prefers using Python versions it manages. However, it will use system Python versions if a uv-managed Python is not installed. This option disables use of system Python versions.
May also be set with the
UV_MANAGED_PYTHONenvironment variable.--native-tlsWhether to load TLS certificates from the platform's native certificate store.
By default, uv loads certificates from the bundled
webpki-rootscrate. Thewebpki-rootsare a reliable set of trust roots from Mozilla, and including them in uv improves portability and performance (especially on macOS).However, in some cases, you may want to use the platform's native certificate store, especially if you're relying on a corporate trust root (e.g., for a mandatory proxy) that's included in your system's certificate store.
May also be set with the
UV_NATIVE_TLSenvironment variable.--no-cache,--no-cache-dir,-nAvoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation
May also be set with the
UV_NO_CACHEenvironment variable.--no-configAvoid discovering configuration files (
pyproject.toml,uv.toml).Normally, configuration files are discovered in the current directory, parent directories, or user configuration directories.
May also be set with the
UV_NO_CONFIGenvironment variable.--no-managed-pythonDisable use of uv-managed Python versions.
Instead, uv will search for a suitable Python version on the system.
May also be set with the
UV_NO_MANAGED_PYTHONenvironment variable.--no-progressHide all progress outputs.
For example, spinners or progress bars.
May also be set with the
UV_NO_PROGRESSenvironment variable.--no-python-downloadsDisable automatic downloads of Python.
--offlineDisable network access.
When disabled, uv will only use locally cached data and locally available files.
May also be set with the
UV_OFFLINEenvironment variable.--projectprojectDiscover a project in the given directory.
All
pyproject.toml,uv.toml, and.python-versionfiles will be discovered by walking up the directory tree from the project root, as will the project's virtual environment (.venv).Other command-line arguments (such as relative paths) will be resolved relative to the current working directory.
See
--directoryto change the working directory entirely.This setting has no effect when used in the
uv pipinterface.May also be set with the
UV_PROJECTenvironment variable.--quiet,-qUse quiet output.
Repeating this option, e.g.,
-qq, will enable a silent mode in which uv will write no output to stdout.--username,-uusernameThe username to logout
--verbose,-vUse verbose output.
You can configure fine-grained logging using the
RUST_LOGenvironment variable. (https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives)
uv auth token
Show the authentication token for a service
Usage
Arguments
- SERVICE
The domain or URL of the service to lookup
Options
--allow-insecure-host,--trusted-hostallow-insecure-hostAllow insecure connections to a host.
Can be provided multiple times.
Expects to receive either a hostname (e.g.,
localhost), a host-port pair (e.g.,localhost:8080), or a URL (e.g.,https://localhost).WARNING: Hosts included in this list will not be verified against the system's certificate store. Only use
--allow-insecure-hostin a secure network with verified sources, as it bypasses SSL verification and could expose you to MITM attacks.May also be set with the
UV_INSECURE_HOSTenvironment variable.--cache-dircache-dirPath to the cache directory.
Defaults to
$XDG_CACHE_HOME/uvor$HOME/.cache/uvon macOS and Linux, and%LOCALAPPDATA%\uv\cacheon Windows.To view the location of the cache directory, run
uv cache dir.May also be set with the
UV_CACHE_DIRenvironment variable.--colorcolor-choiceControl the use of color in output.
By default, uv will automatically detect support for colors when writing to a terminal.
Possible values:
auto: Enables colored output only when the output is going to a terminal or TTY with supportalways: Enables colored output regardless of the detected environmentnever: Disables colored output
--config-fileconfig-fileThe path to a
uv.tomlfile to use for configuration.While uv configuration can be included in a
pyproject.tomlfile, it is not allowed in this context.May also be set with the
UV_CONFIG_FILEenvironment variable.--directorydirectoryChange to the given directory prior to running the command.
Relative paths are resolved with the given directory as the base.
See
--projectto only change the project root directory.May also be set with the
UV_WORKING_DIRenvironment variable.--help,-hDisplay the concise help for this command
--keyring-providerkeyring-providerThe keyring provider to use for reading credentials
May also be set with the
UV_KEYRING_PROVIDERenvironment variable.Possible values:
disabled: Do not use keyring for credential lookupsubprocess: Use thekeyringcommand for credential lookup
--managed-pythonRequire use of uv-managed Python versions.
By default, uv prefers using Python versions it manages. However, it will use system Python versions if a uv-managed Python is not installed. This option disables use of system Python versions.
May also be set with the
UV_MANAGED_PYTHONenvironment variable.--native-tlsWhether to load TLS certificates from the platform's native certificate store.
By default, uv loads certificates from the bundled
webpki-rootscrate. Thewebpki-rootsare a reliable set of trust roots from Mozilla, and including them in uv improves portability and performance (especially on macOS).However, in some cases, you may want to use the platform's native certificate store, especially if you're relying on a corporate trust root (e.g., for a mandatory proxy) that's included in your system's certificate store.
May also be set with the
UV_NATIVE_TLSenvironment variable.--no-cache,--no-cache-dir,-nAvoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation
May also be set with the
UV_NO_CACHEenvironment variable.--no-configAvoid discovering configuration files (
pyproject.toml,uv.toml).Normally, configuration files are discovered in the current directory, parent directories, or user configuration directories.
May also be set with the
UV_NO_CONFIGenvironment variable.--no-managed-pythonDisable use of uv-managed Python versions.
Instead, uv will search for a suitable Python version on the system.
May also be set with the
UV_NO_MANAGED_PYTHONenvironment variable.--no-progressHide all progress outputs.
For example, spinners or progress bars.
May also be set with the
UV_NO_PROGRESSenvironment variable.--no-python-downloadsDisable automatic downloads of Python.
--offlineDisable network access.
When disabled, uv will only use locally cached data and locally available files.
May also be set with the
UV_OFFLINEenvironment variable.--projectprojectDiscover a project in the given directory.
All
pyproject.toml,uv.toml, and.python-versionfiles will be discovered by walking up the directory tree from the project root, as will the project's virtual environment (.venv).Other command-line arguments (such as relative paths) will be resolved relative to the current working directory.
See
--directoryto change the working directory entirely.This setting has no effect when used in the
uv pipinterface.May also be set with the
UV_PROJECTenvironment variable.--quiet,-qUse quiet output.
Repeating this option, e.g.,
-qq, will enable a silent mode in which uv will write no output to stdout.--username,-uusernameThe username to lookup
--verbose,-vUse verbose output.
You can configure fine-grained logging using the
RUST_LOGenvironment variable. (https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives)
uv auth dir
Show the path to the uv credentials directory.
By default, credentials are stored in the uv data directory at $XDG_DATA_HOME/uv/credentials or $HOME/.local/share/uv/credentials on Unix and %APPDATA%\uv\data\credentials on Windows.
The credentials directory may be overridden with $UV_CREDENTIALS_DIR.
Credentials are only stored in this directory when the plaintext backend is used, as opposed to the native backend, which uses the system keyring.
Usage
Arguments
- SERVICE
The domain or URL of the service to lookup
Options
--allow-insecure-host,--trusted-hostallow-insecure-hostAllow insecure connections to a host.
Can be provided multiple times.
Expects to receive either a hostname (e.g.,
localhost), a host-port pair (e.g.,localhost:8080), or a URL (e.g.,https://localhost).WARNING: Hosts included in this list will not be verified against the system's certificate store. Only use
--allow-insecure-hostin a secure network with verified sources, as it bypasses SSL verification and could expose you to MITM attacks.May also be set with the
UV_INSECURE_HOSTenvironment variable.--cache-dircache-dirPath to the cache directory.
Defaults to
$XDG_CACHE_HOME/uvor$HOME/.cache/uvon macOS and Linux, and%LOCALAPPDATA%\uv\cacheon Windows.To view the location of the cache directory, run
uv cache dir.May also be set with the
UV_CACHE_DIRenvironment variable.--colorcolor-choiceControl the use of color in output.
By default, uv will automatically detect support for colors when writing to a terminal.
Possible values:
auto: Enables colored output only when the output is going to a terminal or TTY with supportalways: Enables colored output regardless of the detected environmentnever: Disables colored output
--config-fileconfig-fileThe path to a
uv.tomlfile to use for configuration.While uv configuration can be included in a
pyproject.tomlfile, it is not allowed in this context.May also be set with the
UV_CONFIG_FILEenvironment variable.--directorydirectoryChange to the given directory prior to running the command.
Relative paths are resolved with the given directory as the base.
See
--projectto only change the project root directory.May also be set with the
UV_WORKING_DIRenvironment variable.--help,-hDisplay the concise help for this command
--managed-pythonRequire use of uv-managed Python versions.
By default, uv prefers using Python versions it manages. However, it will use system Python versions if a uv-managed Python is not installed. This option disables use of system Python versions.
May also be set with the
UV_MANAGED_PYTHONenvironment variable.--native-tlsWhether to load TLS certificates from the platform's native certificate store.
By default, uv loads certificates from the bundled
webpki-rootscrate. Thewebpki-rootsare a reliable set of trust roots from Mozilla, and including them in uv improves portability and performance (especially on macOS).However, in some cases, you may want to use the platform's native certificate store, especially if you're relying on a corporate trust root (e.g., for a mandatory proxy) that's included in your system's certificate store.
May also be set with the
UV_NATIVE_TLSenvironment variable.--no-cache,--no-cache-dir,-nAvoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation
May also be set with the
UV_NO_CACHEenvironment variable.--no-configAvoid discovering configuration files (
pyproject.toml,uv.toml).Normally, configuration files are discovered in the current directory, parent directories, or user configuration directories.
May also be set with the
UV_NO_CONFIGenvironment variable.--no-managed-pythonDisable use of uv-managed Python versions.
Instead, uv will search for a suitable Python version on the system.
May also be set with the
UV_NO_MANAGED_PYTHONenvironment variable.--no-progressHide all progress outputs.
For example, spinners or progress bars.
May also be set with the
UV_NO_PROGRESSenvironment variable.--no-python-downloadsDisable automatic downloads of Python.
--offlineDisable network access.
When disabled, uv will only use locally cached data and locally available files.
May also be set with the
UV_OFFLINEenvironment variable.--projectprojectDiscover a project in the given directory.
All
pyproject.toml,uv.toml, and.python-versionfiles will be discovered by walking up the directory tree from the project root, as will the project's virtual environment (.venv).Other command-line arguments (such as relative paths) will be resolved relative to the current working directory.
See
--directoryto change the working directory entirely.This setting has no effect when used in the
uv pipinterface.May also be set with the
UV_PROJECTenvironment variable.--quiet,-qUse quiet output.
Repeating this option, e.g.,
-qq, will enable a silent mode in which uv will write no output to stdout.--verbose,-vUse verbose output.
You can configure fine-grained logging using the
RUST_LOGenvironment variable. (https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives)
uv run
Run a command or script.
Ensures that the command runs in a Python environment.
When used with a file ending in .py or an HTTP(S) URL, the file will be treated as a script and run with a Python interpreter, i.e., uv run file.py is equivalent to uv run python file.py. For URLs, the script is temporarily downloaded before execution. If the script contains inline dependency metadata, it will be installed into an isolated, ephemeral environment. When used with -, the input will be read from stdin, and treated as a Python script.
When used in a project, the project environment will be created and updated before invoking the command.
When used outside a project, if a virtual environment can be found in the current directory or a parent directory, the command will be run in that environment. Otherwise, the command will be run in the environment of the discovered interpreter.
Arguments following the command (or script) are not interpreted as arguments to uv. All options to uv must be provided before the command, e.g., uv run --verbose foo. A -- can be used to separate the command from uv options for clarity, e.g., uv run --python 3.12 -- python.
Usage
Options
--activePrefer the active virtual environment over the project's virtual environment.
If the project virtual environment is active or no virtual environment is active, this has no effect.
--all-extrasInclude all optional dependencies.
Optional dependencies are defined via
project.optional-dependenciesin apyproject.toml.This option is only available when running in a project.
--all-groupsInclude dependencies from all dependency groups.
--no-groupcan be used to exclude specific groups.--all-packagesRun the command with all workspace members installed.
The workspace's environment (
.venv) is updated to include all workspace members.Any extras or groups specified via
--extra,--group, or related options will be applied to all workspace members.--allow-insecure-host,--trusted-hostallow-insecure-hostAllow insecure connections to a host.
Can be provided multiple times.
Expects to receive either a hostname (e.g.,
localhost), a host-port pair (e.g.,localhost:8080), or a URL (e.g.,https://localhost).WARNING: Hosts included in this list will not be verified against the system's certificate store. Only use
--allow-insecure-hostin a secure network with verified sources, as it bypasses SSL verification and could expose you to MITM attacks.May also be set with the
UV_INSECURE_HOSTenvironment variable.--cache-dircache-dirPath to the cache directory.
Defaults to
$XDG_CACHE_HOME/uvor$HOME/.cache/uvon macOS and Linux, and%LOCALAPPDATA%\uv\cacheon Windows.To view the location of the cache directory, run
uv cache dir.May also be set with the
UV_CACHE_DIRenvironment variable.--colorcolor-choiceControl the use of color in output.
By default, uv will automatically detect support for colors when writing to a terminal.
Possible values:
auto: Enables colored output only when the output is going to a terminal or TTY with supportalways: Enables colored output regardless of the detected environmentnever: Disables colored output
--compile-bytecode,--compileCompile Python files to bytecode after installation.
By default, uv does not compile Python (
.py) files to bytecode (__pycache__/*.pyc); instead, compilation is performed lazily the first time a module is imported. For use-cases in which start time is critical, such as CLI applications and Docker containers, this option can be enabled to trade longer installation times for faster start times.When enabled, uv will process the entire site-packages directory (including packages that are not being modified by the current operation) for consistency. Like pip, it will also ignore errors.
May also be set with the
UV_COMPILE_BYTECODEenvironment variable.--config-fileconfig-fileThe path to a
uv.tomlfile to use for configuration.While uv configuration can be included in a
pyproject.tomlfile, it is not allowed in this context.May also be set with the
UV_CONFIG_FILEenvironment variable.--config-setting,--config-settings,-Cconfig-settingSettings to pass to the PEP 517 build backend, specified as
KEY=VALUEpairs--config-settings-package,--config-settings-packageconfig-settings-packageSettings to pass to the PEP 517 build backend for a specific package, specified as
PACKAGE:KEY=VALUEpairs--default-indexdefault-indexThe URL of the default package index (by default: https://pypi.org/simple).
Accepts either a repository compliant with PEP 503 (the simple repository API), or a local directory laid out in the same format.
The index given by this flag is given lower priority than all other indexes specified via the
--indexflag.May also be set with the
UV_DEFAULT_INDEXenvironment variable.--directorydirectoryChange to the given directory prior to running the command.
Relative paths are resolved with the given directory as the base.
See
--projectto only change the project root directory.May also be set with the
UV_WORKING_DIRenvironment variable.--env-fileenv-fileLoad environment variables from a
.envfile.Can be provided multiple times, with subsequent files overriding values defined in previous files.
May also be set with the
UV_ENV_FILEenvironment variable.--exactPerform an exact sync, removing extraneous packages.
When enabled, uv will remove any extraneous packages from the environment. By default,
uv runwill make the minimum necessary changes to satisfy the requirements.--exclude-newerexclude-newerLimit candidate packages to those that were uploaded prior to the given date.
Accepts RFC 3339 timestamps (e.g.,
2006-12-02T02:07:43Z), local dates in the same format (e.g.,2006-12-02) resolved based on your system's configured time zone, a "friendly" duration (e.g.,24 hours,1 week,30 days), or an ISO 8601 duration (e.g.,PT24H,P7D,P30D).Durations do not respect semantics of the local time zone and are always resolved to a fixed number of seconds assuming that a day is 24 hours (e.g., DST transitions are ignored). Calendar units such as months and years are not allowed.
May also be set with the
UV_EXCLUDE_NEWERenvironment variable.--exclude-newer-packageexclude-newer-packageLimit candidate packages for specific packages to those that were uploaded prior to the given date.
Accepts package-date pairs in the format
PACKAGE=DATE, whereDATEis an RFC 3339 timestamp (e.g.,2006-12-02T02:07:43Z), a local date in the same format (e.g.,2006-12-02) resolved based on your system's configured time zone, a "friendly" duration (e.g.,24 hours,1 week,30 days), or an ISO 8601 duration (e.g.,PT24H,P7D,P30D).Durations do not respect semantics of the local time zone and are always resolved to a fixed number of seconds assuming that a day is 24 hours (e.g., DST transitions are ignored). Calendar units such as months and years are not allowed.
Can be provided multiple times for different packages.
--extraextraInclude optional dependencies from the specified extra name.
May be provided more than once.
Optional dependencies are defined via
project.optional-dependenciesin apyproject.toml.This option is only available when running in a project.
--extra-index-urlextra-index-url(Deprecated: use
--indexinstead) Extra URLs of package indexes to use, in addition to--index-url.Accepts either a repository compliant with PEP 503 (the simple repository API), or a local directory laid out in the same format.
All indexes provided via this flag take priority over the index specified by
--index-url(which defaults to PyPI). When multiple--extra-index-urlflags are provided, earlier values take priority.May also be set with the
UV_EXTRA_INDEX_URLenvironment variable.--find-links,-ffind-linksLocations to search for candidate distributions, in addition to those found in the registry indexes.
If a path, the target must be a directory that contains packages as wheel files (
.whl) or source distributions (e.g.,.tar.gzor.zip) at the top level.If a URL, the page must contain a flat list of links to package files adhering to the formats described above.
May also be set with the
UV_FIND_LINKSenvironment variable.--fork-strategyfork-strategyThe strategy to use when selecting multiple versions of a given package across Python versions and platforms.
By default, uv will optimize for selecting the latest version of each package for each supported Python version (
requires-python), while minimizing the number of selected versions across platforms.Under
fewest, uv will minimize the number of selected versions for each package, preferring older versions that are compatible with a wider range of supported Python versions or platforms.May also be set with the
UV_FORK_STRATEGYenvironment variable.Possible values:
fewest: Optimize for selecting the fewest number of versions for each package. Older versions may be preferred if they are compatible with a wider range of supported Python versions or platformsrequires-python: Optimize for selecting latest supported version of each package, for each supported Python version
--frozenRun without updating the
uv.lockfile.Instead of checking if the lockfile is up-to-date, uses the versions in the lockfile as the source of truth. If the lockfile is missing, uv will exit with an error. If the
pyproject.tomlincludes changes to dependencies that have not been included in the lockfile yet, they will not be present in the environment.May also be set with the
UV_FROZENenvironment variable.--groupgroupInclude dependencies from the specified dependency group.
May be provided multiple times.
--gui-scriptRun the given path as a Python GUI script.
Using
--gui-scriptwill attempt to parse the path as a PEP 723 script and run it withpythonw.exe, irrespective of its extension. Only available on Windows.--help,-hDisplay the concise help for this command
--indexindexThe URLs to use when resolving dependencies, in addition to the default index.
Accepts either a repository compliant with PEP 503 (the simple repository API), or a local directory laid out in the same format.
All indexes provided via this flag take priority over the index specified by
--default-index(which defaults to PyPI). When multiple--indexflags are provided, earlier values take priority.Index names are not supported as values. Relative paths must be disambiguated from index names with
./or../on Unix or.\\,..\\,./or../on Windows.May also be set with the
UV_INDEXenvironment variable.--index-strategyindex-strategyThe strategy to use when resolving against multiple index URLs.
By default, uv will stop at the first index on which a given package is available, and limit resolutions to those present on that first index (
first-index). This prevents "dependency confusion" attacks, whereby an attacker can upload a malicious package under the same name to an alternate index.May also be set with the
UV_INDEX_STRATEGYenvironment variable.Possible values:
first-index: Only use results from the first index that returns a match for a given package nameunsafe-first-match: Search for every package name across all indexes, exhausting the versions from the first index before moving on to the nextunsafe-best-match: Search for every package name across all indexes, preferring the "best" version found. If a package version is in multiple indexes, only look at the entry for the first index
--index-url,-iindex-url(Deprecated: use
--default-indexinstead) The URL of the Python package index (by default: https://pypi.org/simple).Accepts either a repository compliant with PEP 503 (the simple repository API), or a local directory laid out in the same format.
The index given by this flag is given lower priority than all other indexes specified via the
--extra-index-urlflag.May also be set with the
UV_INDEX_URLenvironment variable.--isolatedRun the command in an isolated virtual environment.
Usually, the project environment is reused for performance. This option forces a fresh environment to be used for the project, enforcing strict isolation between dependencies and declaration of requirements.
An editable installation is still used for the project.
When used with
--withor--with-requirements, the additional dependencies will still be layered in a second environment.May also be set with the
UV_ISOLATEDenvironment variable.--keyring-providerkeyring-providerAttempt to use
keyringfor authentication for index URLs.At present, only
--keyring-provider subprocessis supported, which configures uv to use thekeyringCLI to handle authentication.Defaults to
disabled.May also be set with the
UV_KEYRING_PROVIDERenvironment variable.Possible values:
disabled: Do not use keyring for credential lookupsubprocess: Use thekeyringcommand for credential lookup
--link-modelink-modeThe method to use when installing packages from the global cache.
Defaults to
clone(also known as Copy-on-Write) on macOS, andhardlinkon Linux and Windows.WARNING: The use of symlink link mode is discouraged, as they create tight coupling between the cache and the target environment. For example, clearing the cache (
uv cache clean) will break all installed packages by way of removing the underlying source files. Use symlinks with caution.May also be set with the
UV_LINK_MODEenvironment variable.Possible values:
clone: Clone (i.e., copy-on-write) packages from the wheel into thesite-packagesdirectorycopy: Copy packages from the wheel into thesite-packagesdirectoryhardlink: Hard link packages from the wheel into thesite-packagesdirectorysymlink: Symbolically link packages from the wheel into thesite-packagesdirectory
--lockedAssert that the
uv.lockwill remain unchanged.Requires that the lockfile is up-to-date. If the lockfile is missing or needs to be updated, uv will exit with an error.
May also be set with the
UV_LOCKEDenvironment variable.--managed-pythonRequire use of uv-managed Python versions.
By default, uv prefers using Python versions it manages. However, it will use system Python versions if a uv-managed Python is not installed. This option disables use of system Python versions.
May also be set with the
UV_MANAGED_PYTHONenvironment variable.--module,-mRun a Python module.
Equivalent to
python -m <module>.--native-tlsWhether to load TLS certificates from the platform's native certificate store.
By default, uv loads certificates from the bundled
webpki-rootscrate. Thewebpki-rootsare a reliable set of trust roots from Mozilla, and including them in uv improves portability and performance (especially on macOS).However, in some cases, you may want to use the platform's native certificate store, especially if you're relying on a corporate trust root (e.g., for a mandatory proxy) that's included in your system's certificate store.
May also be set with the
UV_NATIVE_TLSenvironment variable.--no-binaryDon't install pre-built wheels.
The given packages will be built and installed from source. The resolver will still use pre-built wheels to extract package metadata, if available.
May also be set with the
UV_NO_BINARYenvironment variable.--no-binary-packageno-binary-packageDon't install pre-built wheels for a specific package
May also be set with the
UV_NO_BINARY_PACKAGEenvironment variable.--no-buildDon't build source distributions.
When enabled, resolving will not run arbitrary Python code. The cached wheels of already-built source distributions will be reused, but operations that require building distributions will exit with an error.
May also be set with the
UV_NO_BUILDenvironment variable.--no-build-isolationDisable isolation when building source distributions.
Assumes that build dependencies specified by PEP 518 are already installed.
May also be set with the
UV_NO_BUILD_ISOLATIONenvironment variable.--no-build-isolation-packageno-build-isolation-packageDisable isolation when building source distributions for a specific package.
Assumes that the packages' build dependencies specified by PEP 518 are already installed.
--no-build-packageno-build-packageDon't build source distributions for a specific package
May also be set with the
UV_NO_BUILD_PACKAGEenvironment variable.