GitHub - sharkdp/hexyl: A command-line hex viewer

3 min read Original article ↗

CICD

hexyl is a hex viewer for the terminal. It uses a colored output to distinguish different categories of bytes (NULL bytes, printable ASCII characters, ASCII whitespace characters, other ASCII characters and non-ASCII).

Sponsors

A special thank you goes to our biggest sponsors:

Warp
Warp, the intelligent terminal
Available on MacOS, Linux, Windows

Tuple
Tuple, the premier screen sharing app for developers
Available for MacOS & Windows

Preview

Installation

On Ubuntu

... and other Debian-based Linux distributions.

If you run Ubuntu 19.10 (Eoan Ermine) or newer, you can install the officially maintained package:

If you use an older version of Ubuntu, you can download the latest .deb package from the release page and install it via:

sudo dpkg -i hexyl_0.15.0_amd64.deb  # adapt version number and architecture

On Debian

If you run Debian Buster or newer, you can install the officially maintained Debian package:

sudo apt-get install hexyl

If you run an older version of Debian, see above for instructions on how to manually install hexyl.

On Fedora

If you run Fedora 35 or newer, you can install the officially maintained Fedora package:

On Arch Linux

You can install hexyl from the official package repository:

On Void Linux

On Gentoo Linux

Available in dm9pZCAq overlay

sudo eselect repository enable dm9pZCAq
sudo emerge --sync dm9pZCAq
sudo emerge sys-apps/hexyl::dm9pZCAq

On macOS

Via Homebrew:

...or via MacPorts:

On FreeBSD

On NetBSD

On OpenBSD

on Termux

or

Via Nix

Via Guix

Or add the hexyl package in the list of packages to be installed in your system configuration (e.g., /etc/config.scm).

On other distributions

Check out the release page for binary builds.

On Windows

Check out the release page for binary builds. Alternatively, install from source via cargo, snap or scoop (see below). Make sure that you use a terminal that supports ANSI escape sequences (like ConHost v2 since Windows 10 1703 or Windows Terminal since Windows 10 1903).

Via cargo

If you have Rust 1.56 or higher, you can install hexyl from source via cargo:

Alternatively, you can install hexyl directly from the repository by using:

git clone https://github.com/sharkdp/hexyl
cargo install --path ./hexyl

Note: To convert the man page, you will need Pandoc.

You can convert from Markdown by using (in the project root):

pandoc -s -f markdown -t man -o ./doc/hexyl.1 ./doc/hexyl.1.md

Via snap package

Get it from the Snap Store

Via Scoop

Via X-CMD

Configuration

hexyl colors can be configured via environment variables. The variables used are as follows:

  • HEXYL_COLOR_ASCII_PRINTABLE: Any non-whitespace printable ASCII character
  • HEXYL_COLOR_ASCII_WHITESPACE: Whitespace such as space or newline (only visible in middle panel with byte values)
  • HEXYL_COLOR_ASCII_OTHER: Any other ASCII character (< 0x80) besides null
  • HEXYL_COLOR_NULL: The null byte (0x00)
  • HEXYL_COLOR_NONASCII: Any non-ASCII byte (> 0x7F)
  • HEXYL_COLOR_OFFSET: The lefthand file offset

The colors can be any of the 8 standard terminal colors: black, blue, cyan, green, magenta, red, yellow and white. The "bright" variants are also supported (e.g., bright blue). Additionally, you can use the RGB hex format, #abcdef. For example, HEXYL_COLOR_ASCII_PRINTABLE=blue HEXYL_COLOR_ASCII_WHITESPACE="bright green" HEXYL_COLOR_ASCII_OTHER="#ff7f99".

License

Licensed under either of

at your option.