---
site: protos.rip
page: docs/guides/manage-modules
---
navigation
# Manage modules
```bashbuf 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 scopebuf registry module info protos.rip/<scope>/<module> # show one modulebuf registry module update protos.rip/<scope>/<module> --visibility public # flip visibilitybuf 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.```bashbuf 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:
```bashbuf registry module list protos.rip/<scope>```
Show one module’s metadata — visibility, default label, description, repo URL:
```bashbuf 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.
```bashbuf registry module update protos.rip/<scope>/<module> --visibility public```
```bashbuf 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
```bashbuf 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`.