CLI tool for compressing and decompressing files across 14+ formats with automatic format detection
ouch (Obvious Unified Compression Helper) is a command-line compression tool that handles compression, decompression, and listing operations across multiple archive formats. The tool automatically detects file formats based on extensions and can handle format chaining like .tar.gz.xz.zst.gz.lz4.sz. It supports 14 different formats including tar, zip, 7z, gz, zst, xz, lzma, bz2, bz3, lz4, rar, and br, with some formats supporting parallel compression.
The tool provides three main commands: compress (or c), decompress (or d), and list (or l). Users can decompress multiple files at once, redirect output to specific directories, and view archive contents with optional tree formatting. For compression, ouch determines the output format based on the specified output file's extensions, allowing users to create complex nested compressions by chaining format extensions.
ouch includes accessibility features, shell completions, and man pages. When file extensions are absent, it attempts format detection using file signatures and prompts for user confirmation. The tool is designed for developers and system administrators who frequently work with various archive formats and need a unified interface that eliminates the need to remember format-specific command syntax for different compression tools.
# via Homebrew
brew install ouch
# via Arch Linux
pacman -S ouch
# via Cargo
cargo install ouch
# via Scoop
scoop install ouch