piper.yazi
Pipe any shell command as a previewer.
Installation
ya pkg add yazi-rs/plugins:piper
Usage
Piper is a general-purpose previewer - you can pass any shell command to piper and it will use the command's output as the preview content.
It accepts a string parameter, which is the shell command to be executed, for example:
# ~/.config/yazi/yazi.toml
[[plugin.prepend_previewers]]
url = "*"
run = 'piper -- echo "$1"'
This will set piper as the previewer for all file types and use $1 (file path) as the preview content.
Variables
Available variables:
$w: the width of the preview area.$h: the height of the preview area.$1: the path to the file being previewed.
Examples
Here are some configuration examples:
Preview tarballs with tar
[[plugin.prepend_previewers]]
url = "*.tar*"
run = 'piper --format=url -- tar tf "$1"'
In this example, --format=url tells piper to parse the tar output as file URLs, so you'll be able to get a list of files with icons.
Preview CSV with bat
[[plugin.prepend_previewers]]
url = "*.csv"
run = 'piper -- bat -p --color=always "$1"'
Note that certain distributions might use a different name for bat, like Debian and Ubuntu uses batcat instead, so please adjust accordingly.
Preview Markdown with glow
[[plugin.prepend_previewers]]
url = "*.md"
run = 'piper -- CLICOLOR_FORCE=1 glow -w=$w -s=dark "$1"'
Note that there's a bug in Glow v2.0 that causes slight color differences between tty and non-tty environments.
Preview directory tree with eza
[[plugin.prepend_previewers]]
url = "*/"
run = 'piper -- eza -TL=3 --color=always --icons=always --group-directories-first --no-quotes "$1"'
Preview the schema of a SQLite database
[[plugin.prepend_previewers]]
mime = "application/sqlite3"
run = 'piper -- sqlite3 "$1" ".schema --indent"'
Use hexyl as fallback previewer
Yazi defaults to using file -bL "$1" if there's no matched previewer.
This example uses hexyl as a fallback previewer instead of file.
[[plugin.append_previewers]]
url = "*"
run = 'piper -- hexyl --border=none --terminal-width=$w "$1"'
License
This plugin is MIT-licensed. For more information check the LICENSE file.