@@ -35,9 +35,14 @@ treated as disposable, i.e., if you run `uv cache clean` the environment will be
3535environment is only cached to reduce the overhead of repeated invocations. If the environment is
3636removed, a new one will be created automatically.
3737
38- When installing a tool with ` uv tool install ` , a virtual environment is created in the uv tools
39- directory. The environment will not be removed unless the tool is uninstalled. If the environment is
40- manually deleted, the tool will fail to run.
38+ When installing a tool with ` uv tool install ` , a virtual environment is created in the
39+ [ uv tools directory] ( ../reference/storage.md#tools ) . The environment will not be removed unless the
40+ tool is uninstalled. If the environment is manually deleted, the tool will fail to run.
41+
42+ !!! important
43+
44+ Tool environments are _not_ intended to be mutated directly. It is strongly recommended never to
45+ mutate a tool environment manually, e.g., with a `pip` operation.
4146
4247## Tool versions
4348
@@ -109,26 +114,6 @@ $ uv tool install ruff@latest
109114$ uv tool install ruff@0.6.0
110115```
111116
112- ## Tools directory
113-
114- By default, the uv tools directory is named ` tools ` and is in the uv application state directory,
115- e.g., ` ~/.local/share/uv/tools ` . The location may be customized with the ` UV_TOOL_DIR ` environment
116- variable.
117-
118- To display the path to the tool installation directory:
119-
120- ``` console
121- $ uv tool dir
122- ```
123-
124- Tool environments are placed in a directory with the same name as the tool package, e.g.,
125- ` .../tools/<name> ` .
126-
127- !!! important
128-
129- Tool environments are _not_ intended to be mutated directly. It is strongly recommended never to
130- mutate a tool environment manually, e.g., with a `pip` operation.
131-
132117## Upgrading tools
133118
134119Tool environments may be upgraded via ` uv tool upgrade ` , or re-created entirely via subsequent
@@ -259,35 +244,23 @@ tool may be unusable.
259244## Tool executables
260245
261246Tool executables include all console entry points, script entry points, and binary scripts provided
262- by a Python package. Tool executables are symlinked into the ` bin ` directory on Unix and copied on
263- Windows.
264-
265- ### The ` bin ` directory
266-
267- Executables are installed into the user ` bin ` directory following the XDG standard, e.g.,
268- ` ~/.local/bin ` . Unlike other directory schemes in uv, the XDG standard is used on _ all platforms_
269- notably including Windows and macOS — there is no clear alternative location to place executables on
270- these platforms. The installation directory is determined from the first available environment
271- variable:
247+ by a Python package. Tool executables are symlinked into the
248+ [ executable directory] ( ../reference/storage.md#tool-executables ) on Unix and copied on Windows.
272249
273- - ` $UV_TOOL_BIN_DIR `
274- - ` $XDG_BIN_HOME `
275- - ` $XDG_DATA_HOME/../bin `
276- - ` $HOME/.local/bin `
277-
278- Executables provided by dependencies of tool packages are not installed.
250+ !!! note
279251
280- ### The ` PATH `
252+ Executables provided by dependencies of tool packages are not installed.
281253
282- The ` bin ` directory must be in the ` PATH ` variable for tool executables to be available from the
283- shell. If it is not in the ` PATH ` , a warning will be displayed. The ` uv tool update-shell ` command
284- can be used to add the ` bin ` directory to the ` PATH ` in common shell configuration files.
254+ The [ executable directory] ( ../reference/storage.md#executable-directory ) must be in the ` PATH `
255+ variable for tool executables to be available from the shell. If it is not in the ` PATH ` , a warning
256+ will be displayed. The ` uv tool update-shell ` command can be used to add the executable directory to
257+ the ` PATH ` in common shell configuration files.
285258
286259### Overwriting executables
287260
288- Installation of tools will not overwrite executables in the ` bin ` directory that were not previously
289- installed by uv. For example, if ` pipx ` has been used to install a tool, ` uv tool install ` will
290- fail. The ` --force ` flag can be used to override this behavior.
261+ Installation of tools will not overwrite executables in the executable directory that were not
262+ previously installed by uv. For example, if ` pipx ` has been used to install a tool,
263+ ` uv tool install ` will fail. The ` --force ` flag can be used to override this behavior.
291264
292265## Relationship to ` uv run `
293266
0 commit comments