bun add -g @myrialabs/zipkit # or: npm i -g @myrialabs/zipkit
zipkit helpzipkit <command> [options]
Compress a file. Defaults to zstd.
zipkit compress data.json # → data.json.zst (zstd)
zipkit compress data.json --codec brotli # → data.json.br
zipkit compress data.json --mode ratio # smallest, codec-default level
zipkit compress data.json --codec gzip --level 9 -o out.gz| Flag | Description |
|---|---|
--codec <c> |
One of: gzip, deflate, zlib, zstd, lz4, snappy, brotli, lzma, bzip2 (default zstd) |
--mode <m> |
speed, balanced (default), or ratio — picks a codec-specific level |
--level <n> |
Compression level (codec-specific, clamped). Overrides --mode's level |
-o, --out <file> |
Output path (default: <file>.<ext>) |
Decompress a file. Auto-detects gzip/zlib/zstd by default.
zipkit decompress data.json.zst
zipkit decompress data.bin --codec brotli # name the codec for headerless formats
zipkit decompress data.json.gz -o data.json| Flag | Description |
|---|---|
--codec <c> |
Force a codec (required for brotli, snappy, lz4, lzma, bzip2) |
-o, --out <file> |
Output path |
Create a ZIP archive. Directory arguments are added recursively, preserving their relative paths.
zipkit zip site.zip index.html app.js style.css
zipkit zip site.zip ./public --method zstd # recurse a directory| Flag | Description |
|---|---|
--method <m> |
deflate (default), zstd, or store |
Extract a ZIP archive.
zipkit unzip site.zip
zipkit unzip site.zip -d ./out| Flag | Description |
|---|---|
-d, --dir <dir> |
Output directory (default .) |
Create or extract a tarball. The flavor is chosen by extension: .tar (plain),
.tar.gz, or .tar.zst. Directories recurse.
zipkit tar release.tar.zst ./dist
zipkit untar release.tar.zst -d ./outCreate or extract a 7z archive (LZMA1, or --method copy). Reading also handles
LZMA2 / copy archives from 7-Zip.
zipkit 7z bundle.7z ./src
zipkit un7z bundle.7z -d ./outShow the detected format. For ZIP archives, list the entries.
zipkit info data.json.gz # format: gzip
zipkit info site.zip # lists entries with sizes and methodsCompress and decompress with every codec; print ratio and timings. With no
file, benchmarks a built-in deterministic preset corpus (text / JSON / log /
binary) so comparisons across versions are apple-to-apple. Add --json for
machine-readable output (CI regression gates).
zipkit bench big.log
zipkit bench # preset corpus
zipkit bench --json > bench.jsonbench big.log (5.9 KB)
codec ratio size comp decomp
gzip 1.2% 73 B 0.1ms 0.1ms
zstd 0.6% 38 B 1.5ms 1.2ms
brotli 0.5% 32 B 11.3ms 1.2ms
...
zipkit version
zipkit help- Colors are disabled automatically when stdout is not a TTY, or when
NO_COLORis set. - The CLI runs on both Node and Bun.