Skip to content

pip & uv setup

When: you want pip or uv to use this backend without repeating flags.

Both package managers call keyring through the subprocess provider. Turn it on once, then use pip/uv as normal.

pip

Add to ~/.config/pip/pip.conf (or %APPDATA%\pip\pip.ini on Windows):

[global]
keyring-provider = subprocess

Or pass --keyring-provider=subprocess per command. When the package is installed in the same environment as pip, no flag is needed — it is discovered via entry points.

uv

Enable the provider in project config:

# pyproject.toml or uv.toml
[tool.uv]
keyring-provider = "subprocess"

Or set UV_KEYRING_PROVIDER=subprocess.

uv only calls keyring when the index URL contains a username, so include __token__@:

[[tool.uv.index]]
name = "my-feed"
url = "https://__token__@pkgs.dev.azure.com/{org}/_packaging/{feed}/pypi/simple/"

Legacy subdomain feed URLs work too: https://__token__@myorg.pkgs.visualstudio.com/_packaging/{feed}/pypi/simple/.

Tip

See Reference for every supported feed host, and How it works for which auth flow supplies the credentials.