1
0
mirror of https://github.com/jbranchaud/til synced 2026-07-08 18:10:33 +00:00
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.