Protorip
---
site: protos.rip
page: docs/guides/manage-modules
---

# Manage modules

```bash
buf registry module create protos.rip/<scope>/<module> # create the module record (defaults to private)
buf registry module list protos.rip/<scope> # list modules in a scope
buf registry module info protos.rip/<scope>/<module> # show one module
buf registry module update protos.rip/<scope>/<module> --visibility public # flip visibility
buf registry module delete protos.rip/<scope>/<module> # permanent delete (commits, labels, files)
```

## Create a module

Run `buf registry module create protos.rip/<scope>/<module>` to create the module record.
```bash
buf registry module create protos.rip/<scope>/<module>
```
New modules default to private with a default label of `main`. Private modules count against your plan’s private-module cap; the create call rejects when the cap is full. Pass `--default-label-name <name>` at create time to start with a label other than `main`.

## List and inspect

List every module in a scope you can see:
```bash
buf registry module list protos.rip/<scope>
```
Show one module’s metadata — visibility, default label, description, repo URL:
```bash
buf registry module info protos.rip/<scope>/<module>
```
The dashboard’s modules page covers the same ground with a UI.

## Update visibility, default label, or description

Update accepts the same fields as create: visibility, default label, description, repo URL.
```bash
buf registry module update protos.rip/<scope>/<module> --visibility public
```
```bash
buf registry module update protos.rip/<scope>/<module> --default-label-name release
```
Changing the default label affects which commit `buf dep update` resolves when consumers don’t pin to a specific label — see [Depend on a module](/docs/guides/depend-on-a-module). Flipping a module from private to public exposes existing commits to anyone with the URL; the commit history doesn’t change.

## Delete a module

```bash
buf registry module delete protos.rip/<scope>/<module>
```
Delete removes the module row, every commit and label it owns, and the underlying file blobs in storage. Delete is permanent — there is no recovery and no soft-delete state. Consumers depending on the module fail to resolve on their next `buf dep update`.

## See also