How to path prefix remover online for free
- Step 1
- Step 2Drop your archive — Drag the file onto the dropzone or click to browse. One archive at a time — this tool reads a single archive, it does not batch. The dropzone shows the per-file size limit for your tier (50 MB on Free).
- Step 3Leave the prefix empty to auto-detect — The Prefix to strip box defaults to empty, shown with the placeholder
auto-detect (leave empty). With it empty, the tool finds the common top-level segment automatically — ideal for a single-folder GitHub release ZIP. - Step 4Or type an exact prefix — If the archive has more than one top folder, type the exact prefix to remove, including the trailing slash — for example
project-1.2.3/orsrc/. Only entries whose path starts with that string are stripped; everything else is left untouched. - Step 5Process — Click Process. The tool extracts the archive, strips the prefix, and re-zips with fflate at compression level 6. The result panel reports the prefix it stripped and how many entries were renamed.
- Step 6Download the flattened ZIP — Click Download ZIP. The file is named
<original-name>-flattened.zipand contains your files at the root. Open it anywhere — it is a standard ZIP.
What the tool reads, what it writes
Input formats are detected by magic bytes, not file extension. The output is always a ZIP regardless of input, because the tool rebuilds the archive with fflate.zipSync.
| Input format | How it is read | Output | Notes |
|---|---|---|---|
| ZIP (.zip) | fflate (native, fast); falls back to zip.js if any entry is AES/ZipCrypto encrypted | ZIP | The common case — GitHub release ZIPs, downloaded source archives |
| GZIP (.gz) | fflate gunzip (single stream) | ZIP | A .gz holds one file, so there is rarely a folder prefix to strip |
| TAR (.tar) | fflate + built-in TAR parser | ZIP | Output is ZIP, not TAR — run the archive format converter afterward if you need TAR.GZ back |
| 7z, RAR, BZ2, XZ, TAR.BZ2, TAR.XZ, ISO | libarchive WASM bridge (read-only) | ZIP | libarchive reads these formats; the flattened result is re-packed as ZIP |
| Renamed / wrong extension | Detected by magic bytes; processed by true format | ZIP | A .zip that is really a RAR is still handled by its real type |
Tier limits for the Path Prefix Remover
Limits are enforced per archive before processing. The minimum tier for this tool is Free. The entry limit is the number of files inside the archive, separate from the byte size.
| Tier | Max size per archive | Max entries per archive | Files per job |
|---|---|---|---|
| Free | 50 MB | 500 | 1 |
| Pro | 500 MB | 50,000 | 20 |
| Pro-Media | 2 GB | 500,000 | 100 |
| Developer | 2 GB | 500,000 | unlimited |
| Enterprise | unlimited | unlimited | unlimited |
Cookbook
Worked examples showing exactly what the tool does to entry paths. The before column is the path inside the input archive; the after column is the path in the downloaded -flattened.zip.
Auto-detect a GitHub release ZIP
A typical source download from a GitHub Releases page wraps everything in one folder. Leave Prefix to strip empty; the tool detects the single top segment and removes it.
Input: my-app-1.4.0.zip (Prefix to strip = empty) Before After my-app-1.4.0/README.md -> README.md my-app-1.4.0/src/index.ts -> src/index.ts my-app-1.4.0/package.json -> package.json Result panel: Prefix stripped: my-app-1.4.0/ Entries renamed: 3 Download: my-app-1.4.0-flattened.zip
Type an exact prefix when there are two top folders
Auto-detect refuses to guess when an archive has more than one top-level directory. Type the one you want to flatten — here, remove only docs/ and leave src/ alone.
Input: bundle.zip (Prefix to strip = docs/) Before After docs/intro.md -> intro.md docs/api/ref.md -> api/ref.md src/main.js -> src/main.js (unchanged — does not start with docs/) Result panel: Prefix stripped: docs/ Entries renamed: 2
TAR.GZ in, ZIP out
Feed a gzipped tarball and the tool still flattens it — but the download is a ZIP, not a TAR.GZ. This is by design: the tool always re-packs with fflate's ZIP writer.
Input: release-2.0.tar.gz (Prefix to strip = empty) Before After release-2.0/bin/run -> bin/run release-2.0/lib/core.so -> lib/core.so Download: release-2.0-flattened.zip (ZIP, not .tar.gz)
Strip a nested prefix you specify by hand
You can give a multi-segment prefix. Everything matching that exact leading path is shortened; non-matching entries pass through.
Input: export.zip (Prefix to strip = build/dist/) Before After build/dist/app.js -> app.js build/dist/css/site.css -> css/site.css build/logs/build.txt -> build/logs/build.txt (unchanged)
No common prefix — the tool stops safely
If you leave the prefix empty and the archive has more than one top-level folder, nothing is changed and you get a clear message instead of a guessed result.
Input: mixed.zip (Prefix to strip = empty)
Contents:
alpha/one.txt
beta/two.txt
Error: No common top-level prefix detected.
Specify the prefix to strip explicitly.
(no file is produced — set Prefix to strip and retry)Edge cases and what actually happens
Archive larger than the tier cap
Rejected (tier limit)If the archive exceeds your tier's per-file size limit (50 MB on Free, 500 MB on Pro, 2 GB on Pro-Media and Developer), processing is blocked before it starts with a message naming the limit. Upgrade or split the archive first.
More entries than the tier allows
Rejected (entry limit)The entry limit is separate from byte size: Free allows 500 entries inside an archive, Pro 50,000, Pro-Media and Developer 500,000. A small-but-dense archive can hit the entry cap even when its size is fine.
Empty prefix but two or more top folders
Stopped — no prefix detectedAuto-detect only fires when there is exactly one top-level segment. With several top folders and an empty prefix, the tool throws "No common top-level prefix detected" and produces no file. Type the exact prefix to proceed.
TAR.GZ or 7z input
Supported (output is ZIP)The tool reads TAR.GZ, 7z, RAR, BZ2, XZ and ISO, but always writes a ZIP. If you needed the original format back, run the archive format converter on the flattened ZIP.
Prefix you typed matches no entries
Preserved (zero renamed)If no entry path starts with the prefix you entered, every entry passes through unchanged and the result reports "Entries renamed: 0". The download is a re-zipped copy of the same tree — check the prefix spelling and trailing slash.
The prefix folder's own directory entry
By design (dropped)After stripping, the wrapper folder's path becomes empty, so that entry is dropped rather than kept as a zero-name entry. Your files land at the root; the empty wrapper does not survive.
Single-file GZIP with no folders
Expected (nothing to strip)A .gz contains one stream with no directory structure, so there is usually no common prefix to remove. The tool will report no prefix unless you typed one that matches the inner filename.
Encrypted ZIP entries
Supported (read via zip.js)If the ZIP has AES or ZipCrypto encrypted entries, reading is routed through zip.js. The output ZIP is rebuilt unencrypted with fflate — to re-encrypt, run the encrypted ZIP creator afterward.
Renamed file (wrong extension)
Supported (detected by bytes)Format is determined by magic bytes, not the filename, so a .zip that is actually a RAR is handled as a RAR. If detection fails entirely, confirm the true type with the auto format detector.
Corrupt central directory
Error (cannot read)If the archive's directory structure is damaged, extraction fails and no output is produced. Try the corrupted ZIP repair tool first, then re-run the prefix remover on the recovered archive.
Frequently asked questions
Does the Path Prefix Remover upload my files?
No. Reading the archive, stripping the prefix, and writing the new ZIP all happen in WebAssembly inside your browser tab. Open DevTools, switch to the Network panel, and run a job — you will see no outbound request carrying your data.
What's the maximum file size?
Free is 50 MB per archive, Pro 500 MB, Pro-Media and Developer 2 GB each, and Enterprise unlimited. There is also a separate per-archive entry limit: 500 on Free, 50,000 on Pro, 500,000 on Pro-Media and Developer.
What output format do I get?
Always a ZIP, named <original-name>-flattened.zip. Even if you feed it a TAR.GZ or 7z, the tool re-packs the flattened result with fflate's ZIP writer at compression level 6.
How does auto-detect decide the prefix?
It looks at the first path segment of every entry. If they all share a single top-level folder, that folder (with a trailing slash) is the prefix. If there is more than one top folder, auto-detect declines and asks you to name the prefix.
Can I remove a specific folder instead of auto-detecting?
Yes. Type the exact prefix in the Prefix to strip box, including the trailing slash — for example src/ or project-1.2.3/. Only entries whose path starts with that string are shortened.
Is the manual prefix a paid feature?
No. The Prefix to strip input is available on every tier, including Free. The only thing tiers change is the size and entry limits.
Which browsers are supported?
Any browser with WebAssembly: Chrome, Edge, Firefox, Safari, Brave, and Opera, on desktop and mobile. Very large archives can exceed mobile device memory, so prefer desktop for files near the tier cap.
Can it process several archives at once?
Not on this tool — it reads one archive per job. For many archives, batch tools like the batch extraction manager accept multiple files, but they extract rather than flatten paths.
What if the archive has no common prefix?
With the prefix box empty and multiple top folders, the tool stops with "No common top-level prefix detected" and produces nothing — it never guesses. Type the exact folder you want removed.
Does it change file contents or timestamps?
Contents are preserved byte-for-byte. The re-zip uses fflate, so entry timestamps reflect the rebuild rather than the originals. For reproducible builds, run the timestamp normalizer on the output.
Can I integrate this with CI/CD?
Not yet — every tool is a standalone browser page. The Node equivalent of this exact logic is fflate's unzip/zip plus a path-slice; the tool simply wraps that behind a UI.
What related tools clean up archives further?
Pair with the filename sanitizer to fix illegal characters, the empty folder pruner to drop empty directories, or the selective extractor to pull out only some paths.
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.