An archive is a folder that happens to be one file. cwdio treats it that way: Enter on a .zip,
.7z, .rar, .tar or .tar.gz steps inside, and browsing, previewing, searching and copying out all
work as they do anywhere else — without unpacking the archive first.
What it does
- Browse without extracting. Listing reads only the archive’s index (the central directory of a ZIP, the end header of a 7z, the member headers of a tar), so a multi-gigabyte archive opens instantly. Space previews an entry; search reads inside it; the hex viewer inspects its raw bytes.
- Copy out lazily. F5 a file or a whole subtree to the other panel and only those entries are decoded, streamed straight from their byte range. Copying many files out of a solid 7z block decompresses the block once. Every ZIP and 7z entry is CRC-checked as it is extracted.
- Password-protected ZIP and RAR. A masked prompt appears when you step into a locked archive or when a transfer touches one you dismissed earlier; the password is verified, remembered for the session only, and never stored or put on a URL.
- Pack. Select files or folders and choose File ▸ Pack (ZIP), Pack to 7z archive or Pack to
tar.gz archive. The 7z writer uses its own LZMA encoder and its output is validated by real 7-Zip; the tar
writer streams and produces standard USTAR/GNU archives readable by
tarand 7-Zip. - Extract. Extract archive here and Extract archive to subfolder unpack a selected archive through the normal queue — with progress, conflict prompts and undo of the copied files.
- Encoding-correct names. ZIP entry names are decoded as UTF-8, CP866 or CP437 by detection, with a per-archive override under View ▸ Archive names; archives cwdio writes always flag UTF-8.
How to use it
- Put the cursor on an archive and press Enter — or use Open as archive on a file whose
extension does not say what it is.
..at the top steps back out to the archive’s folder. - Navigate, preview and search exactly as in a folder. F5 copies entries out to the other panel.
- To create one, select the sources, then File ▸ Pack / Pack to 7z archive / Pack to tar.gz
archive and name the file. Developers: Pack without ignored skips what the folder’s
.gitignoreexcludes — a source tree packs without itsnode_modules.
Formats
| Format | Browse | Extract | Create | Encrypted |
|---|---|---|---|---|
| ZIP | Yes | Yes | Yes | ZipCrypto yes; AES entries refused |
| 7z (Copy, LZMA, LZMA2) | Yes | Yes | Yes (LZMA) | Not yet |
| RAR 4 and 5 | Yes | Yes | No — the format is proprietary | Yes; name-encrypted archives cannot be listed |
| tar, tar.gz, tgz | Yes | Yes | Yes | No such thing in tar |
A 7z that uses a filter chain (BCJ, Delta) or an unusual codec (BZip2, PPMd) still lists; only extracting
those entries is refused with a clear message. .tar.bz2 and .tar.xz are not supported.
What it deliberately does not do
- It does not write into an archive. Adding, deleting or editing an entry in place means extract, change, and pack again — the archive is a read-only volume while you are inside it.
- It does not shell out to 7-Zip, WinRAR or anything else. The readers are dependency-free clean-room implementations (ZIP, 7z with an LZMA/LZMA2 decoder written from the public spec, tar) plus the official unrar engine for RAR, so a missing external tool can never break browsing.
- It never unpacks an archive to a temp folder just to show it. The one exception is a gzip-compressed tar, which is not seekable and is gunzipped once on open — bounded by an 8 GiB guard.
Related
- Transfers and the queue — what extract and pack run through.
- Quick Look and preview — previews inside archives.
- Search — content search inside an opened archive.