<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/introducing-buf-format-buf-dzjnfaiap" -->

---
title: Introducing buf format · Buf | daily.dev
description: Buf CLI version 1.3.1 introduces a new &#x27;buf format&#x27; command that automatically formats Protobuf files according to a single, opinionated standard, similar to...
canonical: https://daily.dev/posts/introducing-buf-format-buf-dzjnfaiap
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Introducing buf format · Buf | daily.dev
og:description: Buf CLI version 1.3.1 introduces a new &#x27;buf format&#x27; command that automatically formats Protobuf files according to a single, opinionated standard, similar to...
og:url: https://daily.dev/posts/introducing-buf-format-buf-dzjnfaiap
og:image: https://api.daily.dev/og/posts/dzjnfAiaP.png
og:image:alt: Introducing buf format · Buf
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Introducing buf format · Buf

**[Buf Blog](https://daily.dev/sources/buf)** · 3 min read · 0 upvotes · 0 comments

## Summary

Buf CLI version 1.3.1 introduces a new 'buf format' command that automatically formats Protobuf files according to a single, opinionated standard, similar to prettier for JavaScript, gofmt for Go, or rustfmt for Rust. The command supports formatting from various inputs (files, directories, tarballs, Git repos, BSR modules), can output a diff with --diff, rewrite files in-place with -w, and exit non-zero on differences with --exit-code. It has zero configuration options by design, and IDE integrations for Vim, VSCode, and IntelliJ are planned.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://buf.build/blog/introducing-buf-format>

## Questions this post answers

### How do I automatically format Protobuf .proto files?

Use the buf format command, introduced in version 1.3.1 of the buf CLI. It works like prettier for JavaScript or gofmt for Go, rewriting .proto files according to a single, non-configurable standard. Run it with -w to format files in-place, --diff to preview changes, or --exit-code to fail in CI when files aren't formatted.

_Developers standardizing Protobuf style across teams can follow tooling updates like this on daily.dev._

### Does buf format support configuration options for Protobuf formatting style?

No, buf format has zero configuration options by design. There is only one way it formats .proto files, ensuring every file looks the same regardless of project or team, removing debates over import sorting, indentation, or other formatting choices.

_Teams deciding on opinionated versus configurable tooling can track cases like this on daily.dev._

## Similar posts on daily.dev

- [The modern Protobuf workflow · Buf](https://daily.dev/posts/the-modern-protobuf-workflow-buf-c2m7gywhe) · Buf Blog · 1 upvotes · 0 comments
- [Formatting an entire 25 million line codebase overnight: the rubyfmt story](https://daily.dev/posts/formatting-an-entire-25-million-line-codebase-overnight-the-rubyfmt-story-8vhdj3l64) · Hacker News · 1 upvotes · 0 comments
- [Protobuf, JSON Schema, and OpenAPI · Buf](https://daily.dev/posts/protobuf-json-schema-and-openapi-buf-00wgyenfv) · Buf Blog · 7 upvotes · 0 comments
- [Protobuf-ES just got a lot faster · Buf](https://daily.dev/posts/protobuf-es-just-got-a-lot-faster-buf-rcovndatq) · Buf Blog · 18 upvotes · 1 comments

---

Tags: [#backend](https://daily.dev/tags/backend), [#cli](https://daily.dev/tags/cli)

[View this post on daily.dev](https://daily.dev/posts/introducing-buf-format-buf-dzjnfaiap)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Introducing buf format · Buf","url":"https://daily.dev/posts/introducing-buf-format-buf-dzjnfaiap","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/introducing-buf-format-buf-dzjnfaiap"},"datePublished":"2026-08-23T07:20:15.259Z","dateModified":"2026-08-23T07:22:24.141Z","description":"Buf CLI version 1.3.1 introduces a new 'buf format' command that automatically formats Protobuf files according to a single, opinionated standard, similar to...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/02bc9a6faee250f6063f33b4e6298412?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/02bc9a6faee250f6063f33b4e6298412?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Buf Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Buf Blog","logo":"https://media.daily.dev/image/upload/s--2YBgo_Nm--/f_auto,q_auto/v1787469605/logos/buf?_a=BAMAMicg0","url":"https://daily.dev/sources/buf"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/introducing-buf-format-buf-dzjnfaiap","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"backend,cli","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Buf Blog","item":"https://daily.dev/sources/buf"},{"@type":"ListItem","position":3,"name":"Introducing buf format · Buf"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/introducing-buf-format-buf-dzjnfaiap#faq","mainEntity":[{"@type":"Question","name":"How do I automatically format Protobuf .proto files?","acceptedAnswer":{"@type":"Answer","text":"Use the buf format command, introduced in version 1.3.1 of the buf CLI. It works like prettier for JavaScript or gofmt for Go, rewriting .proto files according to a single, non-configurable standard. Run it with -w to format files in-place, --diff to preview changes, or --exit-code to fail in CI when files aren't formatted. Developers standardizing Protobuf style across teams can follow tooling updates like this on daily.dev."}},{"@type":"Question","name":"Does buf format support configuration options for Protobuf formatting style?","acceptedAnswer":{"@type":"Answer","text":"No, buf format has zero configuration options by design. There is only one way it formats .proto files, ensuring every file looks the same regardless of project or team, removing debates over import sorting, indentation, or other formatting choices. Teams deciding on opinionated versus configurable tooling can track cases like this on daily.dev."}}]}
```

