archive-extractor

v1.1.0

Recursively extract archive files from a file or directory. Supports zip, tar, tar.gz, tar.bz2, tar.xz, tgz, rar, 7z, gz, bz2, xz. Works on Windows, Linux, m...

1· 405· 3 versions· 0 current· 0 all-time· Updated 9h ago· MIT-0

Install

openclaw skills install archive-extractor

Archive Extractor

Extracts archives recursively using scripts/extract.py.

Zero local-software dependency — works on any machine with Python 3.8+.
.rar and .7z formats use pure-Python libraries (rarfile, py7zr) that are auto-installed on first use via pip. No 7-Zip, WinRAR, or unrar binary needed.

How to run

python scripts/extract.py <PATH> [OPTIONS]

Always use the absolute path to the script when calling from a different working directory:

# Windows
python "C:\Users\<user>\.workbuddy\skills\archive-extractor\scripts\extract.py" "<PATH>"

# Linux / macOS
python ~/.workbuddy/skills/archive-extractor/scripts/extract.py "<PATH>"

Options

FlagDescription
-f / --forceRe-extract even if a .extracted_success marker already exists
-d DIR / --dest DIRWrite all output under a custom root directory

Supported formats

FormatBackend
.zipPython stdlib zipfile
.tar .tar.gz .tar.bz2 .tar.xz .tgz .tbz2Python stdlib tarfile
.gz .bz2 .xz (single-file)Python stdlib gzip / bz2 / lzma
.rarrarfile (pure-Python, auto-installed)
.7zpy7zr (pure-Python, auto-installed)

Key behaviours

  • Idempotent: skips archives that already have a .extracted_success marker; use -f to override.
  • Recursive: after extracting an archive, immediately scans the output for nested archives (up to 20 levels deep).
  • Auto-deps: rarfile and py7zr are installed automatically via pip on first use — no manual setup needed.
  • Fault-tolerant: corrupted or unsupported archives are logged as [FAIL] and skipped; remaining archives continue.

Examples

# Extract everything in a directory (including sub-archives)
python extract.py "D:\jira\TICKET-123"

# Force clean re-extraction of a single file
python extract.py report.zip -f

# Extract to a separate output folder
python extract.py "D:\jira\TICKET-123" -d "D:\extracted"

# Glob pattern — extract all zips in current directory
python extract.py "*.zip"

Version tags

latestvk9758xf8kppcgjk2ng4a2p69y184wpnw