Registries tell c3pm where to find packages. Start with the default catalog, add your team’s shared libraries, or try a registry you’re building locally.

Registry settings are shared across your projects. You can run every command on this page outside a project.

Start with the default registry

If you haven’t configured a registry, your first search adds the default catalog automatically:

c3pm search raylib
c3pm registry list

The first setup fetches the catalog through Nix. Later searches use its local index. registry list shows your saved registry names and sources without accessing the network.

Add your team’s registry

Suppose your team keeps a registry in acme/c3-registry on GitHub. Give it a local name, then search just that catalog:

c3pm registry add team github:acme/c3-registry --rev main
c3pm search --registry team

team is your name for the registry; package IDs still use their own namespace/name. The --rev value selects a branch, tag, or commit. Add --subdir PATH if the registry lives below the repository root.

Other remote sources work too:

Source Required option
git+https://HOST/PATH --rev REF
git+ssh://git@HOST/PATH --rev REF
archive+https://HOST/registry.tar.gz --sha256 with the archive source’s SRI hash

Adding a registry validates its metadata and every listed package version before saving a searchable index. Remote sources use your configured Nix backend.

Try a local registry

A folder is useful while preparing new packages or editing your catalog:

c3pm registry add local path:./my-registry
c3pm search --registry local

The folder must contain a valid registry layout. c3pm saves its absolute path, so it remains usable from other directories. After editing the files, run c3pm registry update local to refresh the search index.

Pick up new packages and versions

Refresh one registry, or all of them:

c3pm registry update team
c3pm registry update

Each update rereads the configured source, validates it, and refreshes its index. A branch can pick up new commits; a pinned commit stays fixed. This updates package discovery, not dependencies already recorded in your projects.

To change a registry’s source or revision, run registry add again with the same name and the new settings.

Remove a registry

c3pm registry remove team

This removes the saved entry and its search index. Existing project dependencies and the registry’s source files remain intact.

Where to go next

Use Search and add packages to install a library, or the Registry format reference to publish your own catalog. The CLI reference lists all command options.

Registry settings are stored in $XDG_CONFIG_HOME/c3pm/config.json, or ~/.config/c3pm/config.json by default, alongside your Nix backend selection.