buf push

Push a module to a registry


$ buf push <source> [flags]


The first argument is the source to push. The first argument must be one of format [dir,git,protofile,tar,zip]. Defaults to "." if no argument is specified.


--branch string

Push a commit to a branch with the specified name. Cannot be used together with --tag (-t) or --draft


Create the repository if it does not exist. Must set a visibility using --create-visibility

--create-visibility string

The repository's visibility setting, if created. Must be set if --create is set. Must be one of [public,private]

Do not follow symlinks when reading sources or configuration from the local filesystem By default, symlinks are followed in this CLI, but never followed on the Buf Schema Registry

--draft string

Make the pushed commit a draft with the specified name. Cannot be used together with --tag (-t) or --branch

--error-format string

The format for build errors printed to stderr. Must be one of [text,json,msvs,junit,github-actions]

-h, --help

help for push

-t, --tag strings

Create a tag for the pushed commit. Multiple tags are created if specified multiple times. Cannot be used together with --draft

Flags inherited from parent commands


Turn on debug logging

--log-format string

The log format [text,color,json]

--timeout duration

The duration until timing out, setting it to zero means no timeout

-v, --verbose

Turn on verbose mode

Parent Command

  • buf - The Buf CLI