How to archive contents browser online for free
- Step 1Open the Archive Previewer — Go to archive-previewer. There is nothing to install and no account needed for the free tier.
- Step 2Drop your archive — Drag a
.zip,.7z,.rar,.tar,.tar.gz,.gz,.bz2,.xz, or.isoonto the drop zone, or click to browse. The previewer takes exactly one archive at a time. - Step 3Press Process — There are no options to set — the previewer has no settings panel. Click Process and it detects the format from the file's magic bytes and parses the entries.
- Step 4Read the folder tree — The top view is a nested tree: directories first, then files alphabetically, with each folder's size rolled up from its children. This tells you the shape before you extract.
- Step 5Scan the top-200 table — Below the tree, a table lists the 200 largest files by size with Name, Size, Compressed, and Method columns. For ZIP the Compressed and Method columns are real; for other formats Compressed mirrors Size.
- Step 6Download the report (optional) — Click Download to save the rendered listing as a self-contained
<name>-preview.htmlfile you can keep alongside the archive or share with a teammate.
Tier limits for the Archive Previewer
Per-job limits enforced before parsing. The previewer reads one archive at a time, so the batch column matters less here than the per-file size and the per-archive entry cap. Numbers are the live values from the archive tier-limit table.
| Tier | Max file size | Max entries / archive | Files per job | Notes |
|---|---|---|---|---|
| Free | 50 MB | 500 entries | 1 | Enough for a release ZIP or a Finder-zipped folder. Larger archives prompt an upgrade before any bytes are read. |
| Pro | 500 MB | 50,000 entries | 20 | Covers most CI artifacts and node_modules snapshots. Entry cap, not size, is usually the first wall on monorepo ZIPs. |
| Pro + Media | 2 GB | 500,000 entries | 100 | For dataset bundles and disk-image-sized archives. |
| Developer | 2 GB | 500,000 entries | unlimited | Same ceilings as Pro + Media with unlimited files per job for scripted runs via the runner. |
What the previewer reads per format
Format is detected from the file's magic bytes (the first 8 bytes), not the extension. ZIP is parsed from its central directory with zero decompression; every other format is decoded in full to enumerate entries, which changes which columns are accurate.
| Input format | Detected by | Engine | Decompresses to list? | Per-entry detail available |
|---|---|---|---|---|
ZIP (.zip, .jar, .apk, .docx…) | PK (50 4B) | Raw central-directory parse | No — metadata only | Name, real compressed + uncompressed size, method (Deflate/Stored/BZIP2/LZMA/XZ/PPMd/AES), CRC-32, per-entry timestamp, encryption flag, comment |
TAR (.tar) | ustar at offset 257 | fflate | Yes (in memory) | Name + uncompressed size; compressed column mirrors size; timestamp falls back to the archive file's date |
GZIP (.gz) | 1F 8B | fflate | Yes | Single inner file; original name read from the GZIP header when present |
7Z (.7z) | 37 7A BC AF 27 1C | libarchive WASM | Yes | Name + uncompressed size; no real compressed size, method, or CRC surfaced |
RAR (.rar) | Rar! (52 61 72 21) | libarchive WASM | Yes | Name + uncompressed size; many RAR4/RAR5 archives read, some encrypted RAR5 do not |
| BZIP2 / XZ / ISO | magic bytes | libarchive WASM | Yes | Name + uncompressed size only |
The two views the previewer renders
A single run produces one HTML report with a tree on top and a flat table below. Both are built from the same parsed entry list; the table is capped for readability.
| View | What it shows | Ordering | Limit |
|---|---|---|---|
| Folder tree | Nested directory structure with sizes rolled up to each folder | Directories first, then files, alphabetical within a level | All entries |
| Top files table | Name, Size, Compressed, Method per file (directories excluded) | Largest uncompressed size first | First 200 files |
| Header line | <filename> — N entries (FORMAT) where N is the full entry count | — | Counts all entries, even past the 200-row table |
Cookbook
Everyday 'what's in this download?' scenarios — each shows what you drop in and what the previewer renders back, with no upload and no extraction.
Check a release ZIP before extracting
You grabbed a project's v2.3.0.zip release and want to confirm it unpacks into one folder, not a pile of loose files. The ZIP central directory is parsed instantly.
Drop: my-app-v2.3.0.zip (12.4 MB, 318 entries)
Previewer renders:
my-app-v2.3.0.zip — 318 entries (ZIP)
/my-app-v2.3.0/
├ bin/ (1.2 MB)
├ lib/ (9.8 MB)
├ README.md (4.1 KB)
└ LICENSE (1.1 KB)
Verdict: single top-level folder — safe to extract anywhere.Peek inside a .docx without renaming it
Office files are ZIP containers. The previewer detects the PK magic bytes regardless of the .docx extension and shows the OOXML internals.
Drop: report.docx (88 KB)
report.docx — 14 entries (ZIP)
/
├ [Content_Types].xml
├ _rels/
├ docProps/
└ word/
├ document.xml (41 KB)
├ styles.xml (12 KB)
└ media/image1.png (29 KB)List a 7Z you can't open on a work laptop
No 7-Zip installed and no admin rights. The libarchive WASM bridge decodes the 7Z in-browser to enumerate its entries — no install required.
Drop: backup.7z (240 MB)
backup.7z — 1,902 entries (7Z)
Tree renders all folders.
Top-200 table lists the largest files.
Note: Compressed column = Size (7Z compressed size
is not surfaced — use compression-ratio-calculator).A GZIP that turns out to be a single log
A bare .gz holds exactly one file. The previewer reads the original filename from the GZIP header when it's present.
Drop: access.log.gz (3.1 MB compressed)
access.log.gz — 1 entry (GZ)
/
└ access.log (28.6 MB)
One entry, expands ~9x — good to know before extracting.Free-tier ceiling hit on a big archive
On the free tier, archives over 50 MB are blocked before any parsing happens, with a clear upgrade message.
Drop: dataset.zip (640 MB) on Free tier Error: File "dataset.zip" exceeds the free tier per-job limit (50.0 MB). Upgrade for larger files. Pro raises this to 500 MB; Pro + Media to 2 GB.
Edge cases and what actually happens
Archive over the free 50 MB cap
Blocked (free tier)The size check runs before any bytes are parsed. A file larger than 50 MB on the free tier throws exceeds the free tier per-job limit (50.0 MB) and nothing is read. Pro lifts this to 500 MB and Pro + Media / Developer to 2 GB.
More than 500 entries on free tier
Entry capFree tier allows 500 entries per archive; Pro allows 50,000 and Pro + Media / Developer 500,000. The entry cap, not file size, is often the first wall on archives full of tiny files (a node_modules snapshot can blow past 500 entries while staying under 50 MB).
Renamed archive (wrong extension)
SupportedDetection uses the first eight magic bytes, not the extension. A ZIP renamed data.bin previews as ZIP; a .docx previews as the ZIP it actually is. Only the byte signature matters.
Encrypted ZIP
PreservedZIP filenames live in the clear in the central directory even when entry data is AES-256 or ZipCrypto encrypted, so the tree and table still render and the entry carries an encryption flag. No password is asked for because ZIP data is never decompressed here.
Compressed column on a 7Z/TAR
By designOnly ZIP exposes a real per-entry compressed size. For 7Z, RAR, TAR, GZIP and other libarchive/fflate formats the previewer reports the uncompressed length in both Size and Compressed. Use compression-ratio-calculator for true ratios.
Listing shows only the top 200 files
ExpectedThe flat table caps at the 200 largest files for readability. The tree above it renders every entry and the header line reports the true total count. For an exhaustive listing, use file-listing-generator.
Unknown or corrupt header
Invalid formatIf the magic bytes match no supported format the previewer makes a best-effort ZIP parse and, failing that, errors with Could not detect or extract archive format. A truncated download is the usual cause — re-download and retry.
macOS Finder __MACOSX entries
PreservedArchives zipped by Finder carry __MACOSX/ and ._ resource-fork entries; the previewer lists them as-is. To strip them before re-zipping, see empty-folder-pruner and filename-sanitizer.
Frequently asked questions
Is the Archive Previewer really free?
Yes — the free tier previews any archive up to 50 MB and 500 entries with no signup. You only need a paid tier for bigger files (500 MB on Pro, 2 GB on Pro + Media / Developer) or higher entry counts (50,000 on Pro, 500,000 above). Previewing itself is the same in every tier; only the limits change.
What formats can it preview for free?
All supported formats are available on every tier: ZIP (and ZIP-based files like .jar, .apk, .docx), TAR, GZIP via fflate, plus 7Z, RAR, BZIP2, XZ and ISO via the libarchive WASM bridge. The free tier simply caps the size and entry count, not the format list.
Does the previewer extract or decompress my archive?
For ZIP, no. It reads only the central directory — the index ZIP keeps at the end of the file — so a 1 GB ZIP with 50,000 entries lists in well under a second because no compressed bytes are touched. For every other format (7Z, RAR, TAR, GZIP, BZIP2, XZ, ISO) it must decode the whole archive in memory to enumerate entries, because those containers have no detached index a browser can parse. Nothing is written to disk and nothing is uploaded either way.
Why is the Compressed column equal to the Size column for my 7Z or TAR?
Because the previewer only has the real per-entry compressed size for ZIP, which it reads straight from the central directory. For 7Z, RAR, TAR, GZIP and the libarchive-handled formats it decodes the entries and reports the uncompressed byte length in both columns. So treat the Compressed column as meaningful for ZIP only. If you need true compressed-vs-original numbers for a non-ZIP archive, use compression-ratio-calculator.
Are timestamps in the tree accurate?
For ZIP, yes — each entry's DOS date/time is decoded from the central directory. For non-ZIP formats the previewer does not surface per-entry timestamps; it falls back to the archive file's own last-modified date for every entry. To normalise or inspect ZIP timestamps specifically, see timestamp-normalizer.
Can it preview password-protected archives?
For ZIP, yes — filenames in a ZIP central directory are stored in the clear even when the file data is AES-256 or ZipCrypto encrypted, so the tree and table render fine and the entry simply shows an encryption flag. The previewer never asks for or needs the password because it does not decompress ZIP data. Encrypted 7Z/RAR that libarchive cannot open without a password may fail to enumerate. To actually unlock and pull files, use multi-format-extractor.
Is there any options panel to configure?
No. The previewer has zero options — you drop one archive and press Process. There is no glob filter, no sort toggle, no depth slider. If you need to filter the listing by pattern, generate a CSV/JSON listing, or limit recursion, those are separate sibling tools: selective-extractor, file-listing-generator, and nested-archive-extractor.
How is the format detected — by extension?
By magic bytes, not extension. The first eight bytes are checked: PK for ZIP, 1F 8B for GZIP, BZh for BZIP2, the XZ and 7Z signatures, Rar! for RAR, and ustar at offset 257 for TAR. A .zip renamed to .bin still previews correctly; a corrupt header that matches nothing falls through to a best-effort ZIP attempt and otherwise errors.
Why do only 200 files show in the table?
The flat table is capped at the 200 largest files by uncompressed size so the HTML stays responsive. The folder tree above it is not capped — it renders every entry — and the header line reports the true total entry count. If you need a complete machine-readable listing of all entries, run file-listing-generator for CSV, JSON, or a full text tree.
Do my files get uploaded?
No. Archive tools are browser-only — there is no server-side path. The bytes are read by FileReader, parsed by fflate / libarchive WASM locally, and the result is rendered in the same tab. The result panel shows a 0 bytes uploaded badge. On Pro and above, scripted runs go through the local @jadapps/runner (a short-lived headless Chromium on your own machine), still without leaving your hardware.
Will it work offline or on a restricted network?
Once the page and its WASM bundle have loaded, parsing is local — no further network calls are made to process your archive. On a locked-down work machine where you can't install 7-Zip or WinRAR, this is often the only way to inspect a .7z or .rar.
Can I save or share the preview?
Yes. Click Download to get a self-contained <name>-preview.html of the rendered tree and table that opens in any browser — handy to attach to a ticket or send a teammate without sharing the archive itself.
What if I actually want to extract files, not just preview?
Use multi-format-extractor to pull everything out, or selective-extractor to grab only files matching a glob. The previewer is read-only by design — it never writes extracted files.
Privacy first
Every JAD Archive tool runs entirely in your browser using fflate, @zip.js/zip.js, and the libarchive WASM bridge. Your archives never leave your device — verified by zero outbound network requests during processing.