Remote Packages and Repositories

Unlike most package management systems, bpt does not have a separate “install” step for downloading and using dependencies. Instead each bpt operation “uses” some set of repositories, and data from these repositories are pulled and cached on-the-fly as required.

The repositories in use by any operation are specified with the --use-repo option, which is accepted by any subcommand that can use package dependencies. --use-repo can be specified any number of times on the command line, and bpt will treat all of the repositories as a pool of packages available for dependency resolution.


In addition to any repositories enabled with --use-repo, bpt will by default use a default repository at This can be disabled with the --no-default-repo option.


The local package cache is not part of the interface and standard workflow. bpt does not “remember” the given --use-repo values provided for a build. Instead, each invocation of bpt is considered independent, and only the packages that are available in the repositories specified with --use-repo will be available for dependency resolution. Locally cached packages are not relevant for the purposes of dependency resolution.


The metadata from package repositories is pulled and updated on-the-fly. bpt uses the HTTP Cache-Control, ETag, and Last-Modified headers to determine when its cached copy of repository metadata is out-of-date.

Viewing Available Packages

To discover which packages and which versions are available the listing can be obtained with the bpt pkg search subcommand:

$ bpt pkg search

    Name: abseil
Versions: 2018.6.0, 2019.8.8, 2020.2.25

    Name: asio
Versions: 1.12.0, 1.12.1, 1.12.2, 1.13.0, 1.14.0, 1.14.1, 1.16.0, 1.16.1

    Name: boost.leaf
Versions: 0.1.0, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.3.0

    Name: boost.mp11
Versions: 1.70.0, 1.71.0, 1.72.0, 1.73.0

Optionally, one can search with a fnmatch-style pattern:

$ bpt pkg search 'neo-*'

    Name: neo-buffer
Versions: 0.2.1, 0.3.0, 0.4.0, 0.4.1, 0.4.2

    Name: neo-compress
Versions: 0.1.0, 0.1.1, 0.2.0

    Name: neo-concepts
Versions: 0.2.2, 0.3.0, 0.3.1, 0.3.2, 0.4.0


The search packages will include all repositories enabled for the pkg search invocation, including the default repository unless --no-default-repo is specified.

To search packages available in a specific repository without including packages from the default repository, pass --use-repo along with --no-default-repo:

$ bpt pkg search --no-default-repo

The Default Repository

The default repository is the repository that is always enabled by bpt unless --no-default-repo is specified. The default repository (at time of writing) lives at

There is nothing intrinsically special about this repository other than it being the default for bpt. It can be disable with --no-default-repo or BPT_NO_DEFAULT_REPO should one want tighter control over package availability.