<img alt="Shows a bar chart with benchmark results." src="https://github.com/astral-sh/uv/assets/1309177/629e59c0-9c6e-4013-9ad4-adb2bcf5080d#only-light">
<img alt="Shows a bar chart with benchmark results." src="https://github.com/astral-sh/uv/assets/1309177/03aa9163-1c79-4a87-a31d-7a9311ed9310#only-dark">
Then, check out the [first steps](./first-steps.md), see more [installation methods](./installation.md), or read on for a brief overview.
## Project management
uv can manage project dependencies and environments:
```console
$ uv init example
Initialized project `example` at `/home/user/example`
$cd example
$ uv add ruff
Creating virtualenv at: .venv
Resolved 2 packages in 170ms
Built example @ file:///home/user/example
Prepared 2 packages in 627ms
Installed 2 packages in 1ms
+ example==0.1.0 (from file:///home/user/example)
+ ruff==0.5.4
$ uv run -- ruff check
All checks passed!
```
See the [project guide](./guides/projects.md) to get started.
## Tool management
uv provides an interface for executing and installing command-line tools provided by Python packages, similar to `pipx`.
Run a tool in an ephemeral environment with `uvx`:
```console
$ uvx pycowsay 'hello world!'
Resolved 1 package in 167ms
Installed 1 package in 9ms
+ pycowsay==0.0.0.2
"""
------------
< hello world! >
------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
```
Install a tool with `uv tool install`:
```console
$ uv tool install ruff
Resolved 1 package in 6ms
Installed 1 package in 2ms
+ ruff==0.5.4
Installed 1 executable: ruff
$ ruff --version
ruff 0.5.4
```
See the [tools guide](./guides/tools.md) to get started.
## Python management
uv supports installing Python and managing multiple Python versions.
Install the Python versions your project requires:
```console
$ uv python install 3.10 3.11 3.12
warning: `uv python install` is experimental and may change without warning
Searching for Python versions matching: Python 3.10
Searching for Python versions matching: Python 3.11
Searching for Python versions matching: Python 3.12
Installed 3 versions in 3.42s
+ cpython-3.10.14-macos-aarch64-none
+ cpython-3.11.9-macos-aarch64-none
+ cpython-3.12.4-macos-aarch64-none
```
Or, fetch Python versions on demand:
```console
$ uv venv --python 3.12.0
Creating virtualenv at: .venv
Activate with: source .venv/bin/activate
```
See the [installing Python guide](./guides/install-python.md) to get started.
## Package management
uv provides a drop-in replacement for common `pip`, `pip-tools`, and `virtualenv` commands with support for
a wide range of advanced `pip` features, including editable installs, Git dependencies, direct URL dependencies, local dependencies, constraints, source distributions, HTML and JSON indexes, and more.
uv extends these interfaces with advanced features, such as dependency version overrides, multi-platform resolutions, reproducible resolutions, alternative resolution strategies, and more.
Compile requirements into a multi-platform requirements file: