patool
portable archive file manager
Decision gist · record as of 2026-08-14
Yes, if you work with multiple archive formats and want a unified interface. The package is stable, actively maintained, has no Python dependencies, and supports a wide range of formats. The main constraint is that less common formats require their helper applications to be installed separately. GPL-3 licensing is acceptable for most use cases but requires compliance if you redistribute or modify the code.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Helper applications (xz, rar, 7z, etc.) must be installed on the system to handle their respective archive formats; TAR, ZIP, BZIP2, LZMA, and GZIP are supported natively.
- Low friction: pure Python wheel with no runtime dependencies.
- Actively maintained with recent commits and a stable release cycle.
License · maintenance · safety
GPL-3 (copyleft) — Licensed under GPL-3 (copyleft). Any derivative work or distribution must comply with GPL v3 terms, including source code disclosure.
last release 2026-05-18 (88 days) · last repo commit 2026-06-27 · 456 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,374,430 downloads/mo, #3,989 on PyPI
Alternatives
Verify before relying
pip install patool
patool extract archive.zip
patool list package.tar.gz
patool test dist.tar.gz- Whether the package can reliably auto-detect archive format when file extension is ambiguous or missing.
- Performance characteristics when handling very large archives or deeply nested directory structures.
- Compatibility with password-protected archives across all supported formats.
What it is and what it does
Patool is a portable archive manager that unifies the command-line interface for working with many archive formats. Instead of remembering separate tools and flags for 7z, ACE, ADF, ALZIP, APE, AR, ARC, ARJ, BZIP2, BZIP3, CAB, CHM, COMPRESS, CPIO, DEB, DMS, FLAC, FREEARC, GZIP, ISO, LRZIP, LZH, LZIP, LZMA, LZOP, RPM, RAR, RZIP, SHN, TAR, UDF, XZ, ZIP, ZOO, and ZSTANDARD, you use a single set of commands to extract, create, test, list, search, repack, and compare archives. It determines the archive format automatically using the file(1) program and falls back to file extension matching.
The package includes both a command-line tool and a Python API. Natively it supports TAR, ZIP, BZIP2, LZMA, and GZIP without external dependencies; other formats require their respective helper applications to be installed on the system. It has no Python runtime dependencies, making it lightweight to install, and is actively maintained with unit tests run on each code push.
Use it for
- Extract multiple archives in different formats with a single command instead of switching between tools.
- Test archive integrity before deployment or distribution.
- Search for text patterns inside compressed archives without manually extracting them first.
- Convert or repack an archive from one format to another (e.g., tar.gz to tar.bz2).
- List files stored in an archive to inspect contents before extraction.
- Handle password-protected archives from the command line.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with multiple archive formats and want a unified interface.
The package is stable, actively maintained, has no Python dependencies, and supports a wide range of formats. The main constraint is that less common formats require their helper applications to be installed separately. GPL-3 licensing is acceptable for most use cases but requires compliance if you redistribute or modify the code.
Install
patool on PyPI
Before you install
Low friction: pure Python wheel with no runtime dependencies. Actively maintained with recent commits and a stable release cycle. Requires Python 3.11 or later.
Helper applications (xz, rar, 7z, etc.) must be installed on the system to handle their respective archive formats; TAR, ZIP, BZIP2, LZMA, and GZIP are supported natively.
License in practice
Licensed under GPL-3 (copyleft). Any derivative work or distribution must comply with GPL v3 terms, including source code disclosure.
Quickstart
pip install patool
patool extract archive.zip
patool list package.tar.gz
patool test dist.tar.gz
Verify before relying
- Whether the package can reliably auto-detect archive format when file extension is ambiguous or missing.
- Performance characteristics when handling very large archives or deeply nested directory structures.
- Compatibility with password-protected archives across all supported formats.
Package facts
| License | GPL-3 copyleft |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 88 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,374,430 / month, #3,989 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleLicense :: OSI Approved :: GNU General Public License v3 (GPLv3)Operating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: System :: Archiving :: Compression |
Evidence: patool-4.0.5-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “archive manager command line”
- patoolPatool is a command-line archive manager that can create, extract,…
- pyunpackUnpacks archive files in Python with support for multiple formats…
- internetarchiveProgrammatic and command-line interface to search, browse, and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Compression packages
Provides Python bindings to the Brotli compression library, enabling lossless compression and decompression using a modern LZ77 variant with Huffman coding and context modeling.
Install it if you need Brotli compression in Python; the API is straightforward and the library is battle-tested.
Provides Zstandard compression support for Python versions before 3.14, backporting the standard library's zstd module along with zstd-enabled tarfile and zipfile modules.
Zopfli is a Python binding for Google's Zopfli compression library, providing higher-density compression for zlib and gzip formats than standard algorithms, with tunable iteration and block-splitting parameters.
Python binding for Google's Snappy compression library, providing fast compression and decompression of data via the cramjam backend.
However, dormant maintenance (715 days since last release) means security or compatibility issues may not be addressed quickly.
pyzipper replaces Python's standard zipfile module to read and write AES-encrypted zip archives, using the WinZip AES encryption specification.
Provides Python bindings to the Zstandard (zstd) compression library with an API similar to bz2, lzma, and zlib modules.
See also pyunpack · zip-files · extractcode · tzst · handy-archives · fastar · ar · fastdownload · libarchive-c · py7zr