---
name: "brotli"
section: "1"
platform: "linux"
package: "brotli"
version: "1.2.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/brotli"
---

# brotli(1)

compress or decompress files

## NAME

[brotli(1)](/brotli/1.md) -- brotli, brcat, unbrotli - compress or decompress files

## SYNOPSIS

**brotli** \[*OPTION\|FILE*\]...

**brcat** is equivalent to **brotli --decompress --concatenated** **--stdout**

**unbrotli** is equivalent to **brotli --decompress**

## DESCRIPTION

**brotli** is a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the **LZ77** algorithm, Huffman coding and 2-nd order context modeling, with a compression ratio comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate but offers more dense compression.

**brotli** command line syntax similar to **gzip (1)** and **zstd (1)**. Unlike **gzip (1)**, source files are preserved by default. It is possible to remove them after processing by using the **--rm** *option*.

Arguments that look like “**--name**” or “**--name=value**” are *options*. Every *option* has a short form “**-x**” or “**-x value**”. Multiple short form *options* could be coalesced:

- •

  “**--decompress --stdout --suffix=.b**” works the same as

- •

  “**-d -s -S .b**” and

- •

  “**-dsS .b**”

**brotli** has 3 operation modes:

- •

  default mode is compression;

- •

  **--decompress** option activates decompression mode;

- •

  **--test** option switches to integrity test mode; this option is equivalent to “**--decompress --stdout**” except that the decompressed data is discarded instead of being written to standard output.

Every non-option argument is a *file* entry. If no *files* are given or *file* is “**-**”, **brotli** reads from standard input. All arguments after “**--**” are *file* entries.

Unless **--stdout** or **--output** is specified, *files* are written to a new file whose name is derived from the source *file* name:

- •

  when compressing, a suffix is appended to the source filename to get the target filename

- •

  when decompressing, a suffix is removed from the source filename to get the target filename

Default suffix is **.br**, but it could be specified with **--suffix** option.

Conflicting or duplicate *options* are not allowed.

## OPTIONS

- •

  **-#**: compression level (0-9); bigger values cause denser, but slower compression

- •

  **-c**, **--stdout**: write on standard output

- •

  **-d**, **--decompress**: decompress mode

- •

  **-f**, **--force**: force output file overwrite

- •

  **-h**, **--help**: display this help and exit

- •

  **-j**, **--rm**: remove source file(s); **gzip** **(1)**-like behaviour

- •

  **-k**, **--keep**: keep source file(s); **zstd** **(1)**-like behaviour

- •

  **-n**, **--no-copy-stat**: do not copy source file(s) attributes

- •

  **-o FILE**, **--output=FILE** output file; valid only if there is a single input entry

- •

  **-q NUM**, **--quality=NUM**: compression level (0-11); bigger values cause denser, but slower compression

- •

  **-t**, **--test**: test file integrity mode

- •

  **-v**, **--verbose**: increase output verbosity

- •

  **-w NUM**, **--lgwin=NUM**: set LZ77 window size (0, 10-24) (default: 24); window size is **(pow(2, NUM) - 16)**; 0 lets compressor decide over the optimal value; bigger windows size improve density; decoder might require up to window size memory to operate

- •

  **-C B64**, **--comment=B64**: set comment; argument is base64-decoded first; when decoding: check stream comment; when encoding: embed comment (fingerprint)

- •

  **-D FILE**, **--dictionary=FILE**: use FILE as raw (LZ77) dictionary; same dictionary MUST be used both for compression and decompression

- •

  **-K**, **--concatenated**: when decoding, allow concatenated brotli streams as input

- •

  **-S SUF**, **--suffix=SUF**: output file suffix (default: **.br**)

- •

  **-V**, **--version**: display version and exit

- •

  **-Z**, **--best**: use best compression level (default); same as “**-q 11**”

## SEE ALSO

**brotli** file format is defined in RFC 7932 (https://www.ietf.org/rfc/rfc7932.txt).

**brotli** is open-sourced under the MIT License (https://opensource.org/licenses/MIT).

Mailing list: https://groups.google.com/forum/#!forum/brotli

## BUGS

Report bugs at: https://github.com/google/brotli/issues
