SkillAgentSearch skills...

Pipxu

Install and Run Python Applications in Isolated Environments using UV

Install / Use

/learn @bulletmark/Pipxu
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

PIPXU - Install and Run Python Applications in Isolated Environments using UV

PyPi AUR

[pipxu][pipxu] installs Python applications, i.e. Python packages which have one or more executable programs, into independent isolated virtual environments on your system. Each package and it's dependencies are thus insulated from all other applications, and from the system Python. [pipxu][pipxu] creates links to application executables in a common directory, e.g. $HOME/.local/bin is default for most Linux users, which you should ensure is in your [PATH][path]. Packages are typically sourced from [PyPI][pypi], the Python Package Index.

[pipxu][pipxu] is a re-implementation of most of the functionality of the popular [pipx][pipx] tool but is much faster because it uses [uv][uv] to create and install application virtual environments instead of [venv][venv] and [pip][pip] as used by [pipx][pipx]. The [pipxu][pipxu] code has been developed completely independently of [pipx][pipx] and is not a fork. For compatibility and ease of migration, the provided commands have the same names as [pipx][pipx]. Most commands are implemented, at least for common use cases, although some command functionality, options, and output are slightly different.

This utility has been developed and tested on Linux but will likely also work on macOS. It does not work and is not supported on Windows. The latest documentation and code is available at https://github.com/bulletmark/pipxu.

Usage

Type pipxu or pipxu -h to view the usage summary:

usage: pipxu [-h] [--uv uv_path] [-m] [--home HOME]
                        [--bin-dir BIN_DIR] [--man-dir MAN_DIR]
                        [--default-python DEFAULT_PYTHON] [-V]
                        {debug,d,inject,ij,install,i,list,l,reinstall,runpip,uninject,uj,uninstall,remove,rm,upgrade,update,up,venv,version} ...

Install Python applications into isolated virtual environments and create
links to the executables in a bin directory for your PATH. Like pipx but uses
uv instead of venv + pip.

options:
  -h, --help            show this help message and exit
  --uv uv_path          path to uv executable, default="uv"
  -m, --no-man-pages    do not install package man pages
  --home HOME           specify PIPXU_HOME
  --bin-dir BIN_DIR     specify PIPXU_BIN_DIR
  --man-dir MAN_DIR     specify PIPXU_MAN_DIR
  --default-python DEFAULT_PYTHON
                        path to default python executable, default="python3"
  -V, --version         just print pipxu version and exit

Commands:
  {debug,d,inject,ij,install,i,list,l,reinstall,runpip,uninject,uj,uninstall,remove,rm,upgrade,update,up,venv,version}
    debug (d)           Run an installed application using a debugger.
    inject (ij)         Install extra packages into an application.
    install (i)         Install one or more Python applications using isolated
                        virtual environments.
    list (l)            List applications installed by this tool.
    reinstall           Reinstall one, or more, or all applications.
    runpip              Run pip with given arguments on virtual environment
                        for the given application.
    uninject (uj)       Uninstall extra packages from an application.
    uninstall (remove, rm)
                        Uninstall one, or more, or all applications.
    upgrade (update, up)
                        Upgrade one, or more, or all applications.
    venv                List application virtual environment paths.
    version             List installed application versions.

Some commands offer aliases as shown in parentheses above. Note you can set
default starting global options in ~/.config/pipxu-flags.conf.

Type pipxu <command> -h to see specific help/usage for any individual command:

Command debug

usage: pipxu debug [-h] [-e EXECUTABLE] [-d DEBUGGER]
                              package [args ...]

Run an installed application using a debugger. Tries to work out your
preferred debugger from the standard PYTHONBREAKPOINT environment variable. If
not set it defaults to pdb. Or you can set it explicitly with the
-d/--debugger option.

positional arguments:
  package               installed application name
  args                  options and arguments to pass to application, should
                        start with "--"

options:
  -h, --help            show this help message and exit
  -e, --executable EXECUTABLE
                        executable to run, default is same as "package" name
  -d, --debugger DEBUGGER
                        explicit debugger package to use

aliases: d

Command inject

usage: pipxu inject [-h] [-v] package extras [extras ...]

Install extra packages into an application. Note the same --index-url is used
as/if specified in the original install.

positional arguments:
  package        installed application name
  extras         extra package name[s] to inject/install

options:
  -h, --help     show this help message and exit
  -v, --verbose  give more output

aliases: ij

Command install

usage: pipxu install [-h] [-p PYTHON] [-f] [-e] [-d]
                                [--system-site-packages] [-i INDEX_URL] [-v]
                                package [package ...]

Install one or more Python applications using isolated virtual environments.

positional arguments:
  package               application[s] to install

options:
  -h, --help            show this help message and exit
  -p, --python PYTHON   specify explicit python executable path
  -f, --force           recreate any already installed venv
  -e, --editable        install application[s] in editable mode
  -d, --include-deps    include executables from dependencies
  --system-site-packages
                        allow venv access to system packages
  -i, --index-url INDEX_URL
                        base URL of Python Package Index
  -v, --verbose         give more output

aliases: i

Command list

usage: pipxu list [-h] [--json] [-v] [package ...]

List applications installed by this tool.

positional arguments:
  package     list the given application[s] only

options:
  -h, --help  show this help message and exit
  --json      output json instead
  -v, --venv  also show the virtual environment dir/number

aliases: l

Command reinstall

usage: pipxu reinstall [-h] [-p PYTHON | --reset-python]
                                  [--system-site-packages |
                                  --no-system-site-packages] [-v] [--all]
                                  [--skip]
                                  [package ...]

Reinstall one, or more, or all applications.

positional arguments:
  package               application[s] to reinstall (or to skip for --all
                        --skip)

options:
  -h, --help            show this help message and exit
  -p, --python PYTHON   specify explicit python executable path
  --reset-python        reset any explicit python path to default python
  --system-site-packages
                        allow venv access to system packages, overrides the
                        per-application setting
  --no-system-site-packages
                        remove venv access to system packages, overrides the
                        per-application setting
  -v, --verbose         give more output
  --all                 reinstall ALL applications
  --skip                skip the specified applications when reinstalling all
                        (only can be specified with --all)

Command runpip

usage: pipxu runpip [-h] package [args ...]

Run pip with given arguments on virtual environment for the given application.

positional arguments:
  package     installed application name
  args        arguments to pass to uv pip, should start with "--".

options:
  -h, --help  show this help message and exit

Command uninject

usage: pipxu uninject [-h] [-v] package extras [extras ...]

Uninstall extra packages from an application.

positional arguments:
  package        installed application name
  extras         extra package name[s] to uninstall

options:
  -h, --help     show this help message and exit
  -v, --verbose  give more output

aliases: uj

Command uninstall

usage: pipxu uninstall [-h] [-v] [--all] [--skip] [package ...]

Uninstall one, or more, or all applications.

positional arguments:
  package        application[s] to uninstall (or to skip for --all --skip)

options:
  -h, --help     show this help message and exit
  -v, --verbose  give more output
  --all          uninstall ALL applications
  --skip         skip the specified applications when uninstalling all (only
                 can be specified with --all)

aliases: remove, rm

Command upgrade

usage: pipxu upgrade [-h] [-v] [--all] [--skip] [package ...]

Upgrade one, or more, or all applications.

positional arguments:
  package        application[s] to upgrade (or to skip for --all --skip)

options:
  -h, --help     show this help message and exit
  -v, --verbose  give more output
  --all          upgrade ALL applications
  --skip         skip the specified applications when upgrading all (only can
                 be specified with --all)

aliases: update, up

Command venv

usage: pipxu venv [-h] [-p] [-P] [-s] [package ...]

List application virtual environment paths.

positional arguments:
  package            list the path for the given application[s] rather than
                     all applications.

options:
  -h, --help         show this help message and exit
  -p, --path-full    don't abbreviate the path
  -P, --path-python  show resolved path to python executable
  -s, --sort-venv    sort by venv path rather than package name

Command

Related Skills

View on GitHub
GitHub Stars128
CategoryDevelopment
Updated5h ago
Forks1

Languages

Python

Security Score

85/100

Audited on Apr 5, 2026

No findings