BATPIPE(1) General Commands Manual BATPIPE(1)

batpipe - A less (and bat) preprocessor for viewing more types of files in the terminal.

Like lesspipe, batpipe is designed to work with programs that support preprocessing with the LESSOPEN environment variable. Setting up batpipe will depend on your shell:


eval "$(batpipe)"


eval (batpipe)

Variable Description
BATPIPE_TERM_WIDTH Sets the terminal width provided to bat. If this variable starts with a hyphen (-), the number provided will be relative to the detected terminal size.

Files Program
Directories eza, ls
.tar, .tar.gz tar
.zip, .jar unzip
.gz gunzip
.xz xz

For file formats that aren't supported by default, an external file viewer can be added to batpipe through the external viewer API.

External viewers are be added to batpipe by creating bash scripts inside the ~/.config/batpipe/viewers.d/ directory.

Viewers must define two functions and append the viewer's name to the $BATPIPE_VIEWERS array.

- viewer_${viewer}_supports [file_basename] [file_path] [inner_file_path]
- viewer_${viewer}_process [file_path] [inner_file_path]

The viewer_${viewer}_supports function is called to determine if the external viewer is capable of viewing the provided file. If this function returns successfully, the corresponding process function will be called.

$BATPIPE_VIEWERS -- An array of loaded file viewers.
$BATPIPE_ENABLE_COLOR -- Whether color is supported. (true|false)
$BATPIPE_INSIDE_LESS -- Whether batpipe is inside less. (true|false)

batpipe_header [pattern] [...] -- Print a viewer header line.
batpipe_subheader [pattern] [...] -- Print a viewer subheader line.

strip_trailing_slashes [path] -- Strips trailing slashes from a path.

- By default, batpipe will not use colors when previewed inside less.
Colors must be explicitly enabled with BATPIPE=color.