Archae
Archae explodes archives.
Why
Every once and a while, I run into an issue: multiple layers of archives. The reasons vary, but examples would include:
- Searching for something in a ZIP of folders that contained a ZIP with a CD image in it
- Running a malware scan and finding an obscure archive format was missed and not even flagged.
- Meanwhile, I want to make sure I don't fill my disk, especially if an archive bomb (more commonly known as a ZIP bomb) has been jammed in somewhere. They're only funny the first time. :D
Features
- Uses 7z/unar to try to extract archives
- No substantial limit on the number of archive layers
- Identifies file types via libmagic
- Detects duplicate archives
- Can detect password-protected archives and extract any unprotected entries
- Basic archive bomb protections
- MAX_ARCHIVE_SIZE_BYTES - ensures the uncompressed size of an archive is limited
- MAX_TOTAL_SIZE_BYTES - ensures the total extracted footprint isn't above a certain size
- MIN_ARCHIVE_RATIO - ensures very-high-compression-ratio archives are stopped
- MIN_DISK_FREE_SPACE - minimum free space at the extraction location
- MAX_DEPTH - allow setting a maximum archive depth to traverse
- DELETE_ARCHIVES_AFTER_EXTRACTION - delete pure archive types after deletion
Installation
Archae is available on PyPI. Install with uv or your package manager of choice:
uv tool install archae
Documentation
Check out the Archae documentation for the User's Guide and CLI Reference.
Usage
Configuration values are supplied one of four ways, and any item lower in this list will overwrite a prior one:
- Default values are stored in the app
- A TOML file at ~/.config/archae/ will be created on first run and can override those values (ex. MIN_ARCHIVE_RATIO = 0.005)
- Env vars starts starting with "ARCHAE_" are parsed (ex. ARCHAE_MIN_ARCHIVE_RATIO=0.005)
- Values can be passed in as flags (ex. --min_archive_ratio=0.005)
Running archae --help or python -m archae --help shows a list of all of the available options and arguments:
archae --help
Usage: archae [OPTIONS] COMMAND [ARGS]...
Archae explodes archives.
╭─ Options ────────────────────────────────────────────────────────────────────────────╮
│ --version -v Show the version and exit. │
│ --help -h Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────╮
│ extract Extract and analyze an archive. │
│ listopts List all available configuration options. │
│ status Show archae status and available tools. │
╰──────────────────────────────────────────────────────────────────────────────────────╯
Metadata
Release files for archae 2026.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| archae-2026.6.tar.gz | 16.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| archae-2026.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.1 kB
Release files / archae-2026.6.tar.gz
| Download URL | archae-2026.6.tar.gz |
|---|---|
| Size | 16.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
671159f4f4dc8b686eef92001fa3751bdaf0d0d5166de737dd1afbceb540ab3e
|
|
BLAKE2b-256 checksum How to use checksums |
684ad25dd0e238390b67928b1f97f02d60c8d3dc058a1b3653ff538c0b011af2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / archae-2026.6-py3-none-any.whl
| Download URL | archae-2026.6-py3-none-any.whl |
|---|---|
| Size | 23.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
26ccfb0ca7becd117aa6edcf446dd0682b0cb5ca9fdfab5f9276b00309a2708a
|
|
BLAKE2b-256 checksum How to use checksums |
9cd6c97a71c88cd7bc1078eee8771f809387aa4e3c3fbf754eecd038aab45c18
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|