Install nab

nab ships as a CLI plus three importable libraries. The recommended path is to install it as an isolated tool.

uv tool install

uv tool install nab

Drops nab into a uv-managed tool venv and exposes the console script on PATH. uv resolves and installs the four workspace distributions (nab, nab-resolver, nab-python, nab-index) together. Confirm with:

nab --version

nab runs on CPython 3.10 and newer. Other interpreters are not tested.

pipx

pipx install nab

pipx creates a per-tool virtual environment. The default backend is uv on recent pipx; the pip backend works equivalently.

Picking an HTTP backend

nab-index ships urllib3 by default. httpx is opt-in via an extra:

uv tool install 'nab[httpx]'

Pick it at run-time with --http-backend httpx. Selecting a backend that was not installed surfaces a helpful ImportError.

Throw-away invocations

uvx nab --help
pipx run nab --help

Both fetch the wheel into an ephemeral environment and run the CLI against it.

Installing from a checkout

To run a revision that has not been released, build the four wheels from a checkout and install from the result:

git clone https://github.com/notatallshaw/nab.git
cd nab
mkdir -p /tmp/nab-wheels
uv build --wheel --out-dir /tmp/nab-wheels nab-resolver
uv build --wheel --out-dir /tmp/nab-wheels nab-python
uv build --wheel --out-dir /tmp/nab-wheels nab-index
uv build --wheel --out-dir /tmp/nab-wheels .
uv tool install --find-links /tmp/nab-wheels nab

To work on nab itself, see contributing.