Skip to main content

Archae

Archae Logo of a spider exploring a sarcophagus

PyPI Supported Python Versions pre-commit.ci status Test Documentation Status PyPI - License

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)

Source distribution for archae 2026.6
File Size Uploaded
archae-2026.6.tar.gz 16.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for archae 2026.6
File Interpreter ABI Platform
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}
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page