-
Fast startup with asynchronous loading The viewer launches instantly and loads data in the background, allowing immediate interaction even with large files.
-
Supports both files and standard input
binview
can read binary data not only from files but also from standard input, making it easy to use in pipelines. -
Vi-style navigation Navigation keys follow the familiar
vi
keybindings (h
,j
,k
,l
, etc.), allowing smooth movement for experienced users.
(Note: File name input uses Emacs-style key bindings.) -
Split-view with hex and character representations The screen is divided approximately 2:1 between hexadecimal and character views. Supported encodings include UTF-8, UTF-16 (LE/BE), and the current Windows code page. You can switch encoding on the fly with key commands.
-
Smart decoding with character annotations Multi-byte characters are visually grouped based on byte structure. Special code points such as BOMs and control characters (e.g., newlines) are annotated with readable names or symbols, making it easier to understand mixed binary/text content and debug encoding issues.
-
Minimal screen usage
binview
only uses as many terminal lines as needed (1 line = 16 bytes), without occupying the full screen. This makes it easy to inspect or edit small binary data while still seeing the surrounding terminal output. -
Cross-platform Written in Go,
binview
runs on both Windows and Linux. It should also build and work on other Unix-like systems.
Download the binary package from Releases and extract the executable.
go install github.com/hymkor/binview@latest
scoop install https://raw.githubusercontent.com/hymkor/binview/master/binview.json
or
scoop bucket add hymkor https://github.com/hymkor/scoop-bucket
scoop install binview
$ binview [FILES...]
or
$ cat FILE | binview
q
,ESCAPE
- Quit
h
,BACKSPACE
,ARROW-LEFT
,Ctrl-B
- Move the cursor left
j
,ARROW-DOWN
,Ctrl-N
- Move the cursor down
k
,ARROW-UP
,Ctrl-P
- Move the cursor up
l
,SPACE
,ARROW-RIGHT
,Ctrl-F
- Move the cursor right
0
(zero),^
,Ctrl-A
- Move the cursor to the beginning of the current line
$
,Ctrl-E
- Move the cursor to the end of the current line
<
- Move the cursor to the beginning of the file
>
,G
- Move the cursor to the end of the file
r
- Replace the byte under the cursor
i
- Insert data (e.g.,
0xFF
,U+0000
,"string"
)
- Insert data (e.g.,
a
- Append data (e.g.,
0xFF
,U+0000
,"string"
)
- Append data (e.g.,
x
,DEL
- Delete and yank the byte under the cursor
p
- Paste one byte to the right side of the cursor
P
- Paste one byte to the left side of the cursor
u
- Undo
w
- Write changes to file
&
- Jump to a specific address
ALT-U
- Change the character encoding to UTF-8 (default)
ALT-A
- Change the character encoding to ANSI (the current Windows code page)
ALT-L
- Change the character encoding to UTF-16LE
ALT-B
- Change the character encoding to UTF-16BE