Compress and extract archives straight from the VS Code Explorer — zip, 7z, RAR, tar, gzip and
40+ other formats — with no external tools to install.
The extension bundles a full build of 7-Zip 24.09 compiled to
WebAssembly, so it behaves identically on Windows, macOS and Linux from a single install.
Features
Preview contents
Click any archive and it opens in a preview showing what is inside — instead of the usual
"binary file not displayed". Nothing is extracted; the listing is read straight from the archive.
The preview shows each file with its size, packed size, how much it saved, and when it was
modified, plus a header summarising the format, file count and overall compression. You can filter
by name, sort by any column, and act on the archive from the toolbar — Extract Here,
Extract to…, or Open as Folder. Encrypted entries are marked with a lock, and encrypted
archives prompt for a password before the listing is shown.
To go back to the raw file, use Reopen Editor With… from the editor title menu.
Right-click any archive in the Explorer:
- Extract Here — unpacks next to the archive.
- Extract to Folder… — pick a destination.
Extraction is smart about layout. An archive with one top-level folder is unpacked in place; one
that would scatter loose files across your directory gets its own folder instead, so you never have
to clean up a "tarbomb". Compound formats like .tar.gz are fully unwrapped in one step — you get
your files, not an intermediate .tar.
Compress
Select one or more files or folders, then Add to Archive…. Choose the format, a compression
level from Store to Ultra, and optionally a password.
Open Archive (Browse) mounts an archive as a read-only folder in the Explorer. Expand it, open
files inside it, and read them in the editor — nothing is written to disk except the individual
files you actually open.
Passwords
Encrypted archives prompt for a password when one is needed, and re-prompt if it is wrong. New
.zip and .7z archives can be encrypted with AES-256; for .7z the file names are encrypted too.
Passwords are held in memory for the session. Enable archiveTools.password.remember to persist
them in the OS credential store instead.
|
Formats |
| Create and extract |
zip, 7z, tar, tar.gz, tar.xz, tar.bz2, wim |
| Extract only |
rar, rar5, gz, bz2, xz, zst, lzma, cab, iso, arj, lzh, msi, deb, rpm, dmg, cpio, chm, vhd, vhdx, apk, jar, epub, nupkg, whl, xar, udf, qcow2, vmdk, and more |
Multi-volume archives (.7z.001, .part1.rar, .z01) are detected automatically as long as the
other volumes sit alongside the one you open.
RAR is extract-only. Creating RAR archives is prohibited by the unRAR licence, which forbids
using its source to re-create the RAR compression algorithm. Every tool built on 7-Zip has this
same restriction.
Settings
| Setting |
Default |
Description |
archiveTools.extract.createSubfolder |
auto |
auto creates a folder only when the archive would otherwise scatter files; always / never force the choice. |
archiveTools.extract.overwritePolicy |
prompt |
What to do when extracted files already exist: prompt, overwrite, skip, or rename. |
archiveTools.compress.defaultFormat |
zip |
Format pre-selected in the format picker. |
archiveTools.compress.compressionLevel |
normal |
Default level for new archives. |
archiveTools.password.remember |
false |
Persist archive passwords in the OS credential store instead of only for the session. |
Notes and limitations
- Desktop only. The engine reads and writes real files through Node, so the extension does not
run in VS Code for the Web.
- Single-threaded. The WebAssembly build of 7-Zip runs on one thread, so very large archives
compress more slowly than a native 7-Zip would. Extraction and listing are fast in practice.
- Archive work runs on a background worker thread, so the editor stays responsive and every
operation can be cancelled from its progress notification.
Development
npm install
npm run compile # bundle to dist/ and copy 7zz.wasm
npm run test:unit # pure logic (parser, format tables, path handling)
npm run test:engine # real archives through the shipped WASM bundle
npm test # runs the suite inside a real VS Code instance
npm run package # produce a .vsix
To cut a release, run ./publish.ps1. It type checks, runs all three test suites,
bumps the version, packages into release/, verifies the bundled 7-Zip engine actually
made it into the VSIX, then offers to install locally and publish to the Marketplace.
Press F5 to launch an Extension Development Host.
Licence
The extension is MIT licensed. It redistributes 7-Zip, which is LGPL with the additional unRAR
restriction — see NOTICE for the full terms.