Archives

Container archives open in a TOC view — one row per entry with permissions, uncompressed size, mtime, and path. Listing reads only the per-entry headers, so multi-GB archives open instantly.

The interactive archive browser showing a nested entry tree with a selection cursor

The interactive TOC browser: entries shown as a nested tree (directories with ├╴ / └╴ children), with permissions, size, and mtime per row. Move the cursor to descend into an entry and preview it, or extract it.

FormatExtensionsSpec
ZIP.zip, .jar, .war, .apkPKWARE APPNOTE
Tar.tarPOSIX ustar
Tar + gzip.tar.gz, .tgz
Tar + bzip2.tar.bz2, .tbz2
Tar + xz.tar.xz, .txz
Tar + zstd.tar.zst, .tzst
Tar + lz4.tar.lz4, .tlz4
Tar + brotli.tar.br, .tbr
7-Zip.7z7-Zip format
cpio.cpio (+ .cpio.gz)newc / ODC headers; old-binary not supported
ar / Debian.ar, .deb, .aUnix ar(1) archive (also Debian binary packages)

The regular scroll keys move a file-selection cursor (skipping directories). The selected leaf gets a highlighted background + arrow marker. Top / bottom jump to the first / last file; paging scrolls a screenful and snaps the selection to the first visible file.

A sticky parent breadcrumb pins the current top row's ancestor chain to the upper viewport rows when scrolled. Toggle with s.

Enter descends into the selected entry (recursive peek — opens it through the full peek pipeline as if it were a standalone file). e extracts; see Extraction.

Info view

Entry count, file count, directory count, total uncompressed size. Listing failures (corrupt archive, unsupported variant) surface as a warning row.

When an ar archive turns out to be a static library — its members are object files (.a / .lib) — the Info view adds a Static library section with the object-member count and the target architecture. A non-object ar archive like a .deb doesn't show it.

Single-stream compression

Bare codec wrappers (without a tar inside) decompress transparently — peek opens straight to the inner content rendered as whatever it actually is (source, JSON, image, …), and the Info view adds a Compression row showing the codec plus before / after sizes.

FormatExtension
gzip.gz
bzip2.bz2
xz.xz
zstd.zst
lz4.lz4
brotli.br

There is no fixed decompressed-size cap; output over 16 MiB spills to a tempfile to bound RAM. A decompression bomb above 8 GiB — or any corrupt or truncated stream — surfaces a warning and the viewer falls back to a hex view of the raw compressed bytes.

Brotli is the one exception to magic-byte detection: a raw brotli stream carries no signature, so .br / .tar.br are recognised by extension only — a brotli stream piped through stdin without a filename won't be auto-detected.