Hevi (pronounced like "heavy") is a hex viewer, just like xxd
or hexdump
.
Hevi can parse things like ELF or PE files and give you syntax-highlighting.
You can specify custom color palettes. Color palettes can use standard ANSI colors or truecolor.
The command should be used as hevi <file> [flags]
. The flags are described below.
Flag(s) | Description |
---|---|
-h /--help |
Show a help message |
-v /--version |
Show version information |
--color /--no-color |
Enable or disable colored output |
--lowercase /--uppercase |
Toggle between lowercase and uppercase hex |
--size /--no-size |
Enable or disable the line showing the size at the end |
--offset /--no-offset |
Enable or disable showing the offset |
--ascii /--no-ascii |
Enable or disable ASCII interpretation |
--skip-lines /--no-skip-lines |
Enable or disable skipping of identical lines |
--raw |
Raw format (disables most features) |
--show-palette |
Show the current color palette in a table |
--parser |
Specify the parser to use. For a list use hevi --help |
The NO_COLOR
variable is supported, and disables color (see https://no-color.org/) printing. Note that it can be overwritten by an explicit --color
.
The config file is a ziggy file. The following fields are available:
color: bool,
uppercase: bool,
show_size: bool,
show_offset: bool,
show_ascii: bool,
skip_lines: bool,
raw: bool,
palette: Palette,
All fields are optional.
Note: for the palette
field you must specify all styles!
.color = true,
.skip_lines = false,
.palette = Palette{
.normal = @color("yellow"),
.normal_alt = @color("yellow::dim"),
.normal_accent = @color("yellow:bright_black:bold"),
.c1 = @color("red"),
.c1_alt = @color("red::dim"),
.c1_accent = @color("red:bright_black:bold"),
.c2 = @color("green"),
.c2_alt = @color("green::dim"),
.c2_accent = @color("green:bright_black:bold"),
.c3 = @color("blue"),
.c3_alt = @color("blue::dim"),
.c3_accent = @color("blue:bright_black:bold"),
.c4 = @color("cyan"),
.c4_alt = @color("cyan::dim"),
.c4_accent = @color("cyan:bright_black:bold"),
.c5 = @color("magenta"),
.c5_alt = @color("magenta::dim"),
.c5_accent = @color("magenta:bright_black:bold"),
},
The config file is located at:
OS | Path |
---|---|
Linux, MacOS, FreeBSD, OpenBSD, NetBSD | $XDG_CONFIG_HOME/hevi/config.ziggy or if the env doesn't exist $HOME/.config/hevi/config.ziggy |
Windows | %APPDATA%/hevi/config.ziggy |
Other | Not supported. No config file will be read |
Hevi has a precedence for configuration and it is:
- Flags
- Environment variables
- Config file
- Defaults
It is written in zig, in an attempt to simplify hex viewers.
If you're using Arch Linux, you can install it from the AUR (hevi
).
You can download a binary from the releases page. You can also clone the repository and compile it with zig build
(using a zig
master build).
Contributions are welcome! Even if you don't want to write code, you can help a lot creating new issues or testing this software.
See LICENSE