Files
til/python/globally-install-cli-tool-with-uv.md
T

52 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Globally Install CLI Tool With UV
When I add a tool like [`ruff`](https://github.com/astral-sh/ruff) to my project
with [`uv`](https://docs.astral.sh/uv/):
```bash
❯ uv add --dev ruff
```
Then I can run that tool within that project using `uv`:
```bash
❯ uv run ruff format
```
However if I want to be able to run that tool via its binary directly,
especially outside the context of that project, then I need to instead install
it globally.
This can be done with `uv` using the `tool install` subcommand:
```bash
❯ uv tool install ruff
Resolved 1 package in 192ms
Installed 1 package in 4ms
+ ruff==0.15.20
Installed 1 executable: ruff
```
Now I can run `ruff` directly from anywhere:
```bash
❯ ruff config line-length
The line length to use when enforcing long-lines violations (like `E501`)
and at which `isort` and the formatter prefers to wrap lines.
...
```
The `ruff` binary gets symlinked into my `.local/bin/` directory which is coming
from the `uv` tool directory.
```bash
❯ which ruff
/Users/lastword/.local/bin/ruff
❯ readlink -n /Users/lastword/.local/bin/ruff
/Users/lastword/.local/share/uv/tools/ruff/bin/ruff
```
See `uv tool install --help` for more details.