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 your package manager is in the following list (and preferably in green), you can simply install it from there:
There is a nix flake you can use. You can also try hevi without installing it:
$ nix shell github:Arnau478/hevi
You can download a binary from the releases page. You can also clone the repository and compile it with zig 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