abx-plugins
ArchiveBox-compatible plugin suite (hooks, configs, binaries manifests)
What it is and what it does
abx-plugins is a collection of hook scripts and configuration schemas that implement ArchiveBox's plugin contract. It allows tools like abx-dl and ArchiveBox to discover and orchestrate plugins for web archiving tasks without needing environment variables or symlinks. Each plugin declares its binary dependencies, hook lifecycle (crawl setup or per-snapshot), and output format (JSONL records for ArchiveResult, Snapshot, and Tag events).
The package provides base utilities for both Python and JavaScript plugins to load configuration, emit standardized output records, and access shared runtime variables like SNAP_DIR, CRAWL_DIR, and ABXPKG_LIB_DIR. Plugins are organized by directory, each with optional config.json schemas, binary dependency declarations, and hook scripts that run in isolated working directories with controlled environment variables. The contract ensures plugins can run as standalone CLIs or be orchestrated by runners, with output routed to snapshot or crawl directories and accessible to sibling plugins.
Use it for:
- Extend ArchiveBox with custom snapshot extraction plugins (e.g., media download, PDF scraping, metadata extraction) without modifying core code.
- Build standalone CLI tools that follow the ArchiveBox plugin contract and integrate seamlessly with abx-dl or ArchiveBox runners.
- Declare and manage binary dependencies (yt-dlp, ffmpeg, etc.) declaratively in config.json so runners can handle preflight installation and environment setup.
- Implement crawl setup hooks for shared initialization (e.g., browser launch, cache preparation) that run once per crawl before snapshot extraction.
- Test and debug individual plugin hooks in isolation using the provided test utilities (parse_jsonl_output, run_hook, get_hook_script).
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a suite of ArchiveBox-compatible plugin hooks and configuration schemas for web archiving, enabling tools like abx-dl and ArchiveBox to discover and run snapshot extraction and crawl setup plugins.
Yes. The package is actively maintained, has no known vulnerabilities, and provides a well-documented plugin contract essential for extending ArchiveBox. Install it if you are building or running ArchiveBox plugins, or if you need to integrate custom web archiving workflows into abx-dl or ArchiveBox. The low install friction and permissive MIT license remove barriers to adoption.
Install
abx-plugins on PyPI
pip
pip install abx-pluginsuv
uv add abx-pluginspoetry
poetry add abx-pluginsInstalling abx-plugins
Before you install
Active maintenance with a release on 2026-08-14 and low install friction. Depends on abxbus, abxpkg, imagesize, rich-click, and uv—all standard Python packages. The wheel distribution suggests straightforward installation.
License in practice
MIT license permits unrestricted use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install abx-plugins
from abx_plugins.plugins.base.utils import load_config, emit_archive_result_record
config = load_config()
emit_archive_result_record('succeeded', 'output/path')
Requires Python 3.12 or later (3.12, 3.13, or 3.14). Plugins also expect SNAP_DIR and CRAWL_DIR environment variables to be set by the runner; standalone hook execution may require manual setup of these variables.
Verify before relying
- Whether plugin discovery works automatically without manual registration or symlink setup in all deployment contexts.
- Performance characteristics when running many concurrent snapshot hooks in a single crawl.
- Compatibility with ArchiveBox versions prior to the plugin contract stabilization mentioned in the description.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<3.15,>=3.12) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — abxbus, abxpkg, imagesize, rich-click, uv |
| Maintenance | actively maintained — 0 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 189,202/month — #9,934 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: abx_plugins-1.12.122-py3-none-any.whl
Keywords: archivebox, hooks, plugins, scraping, web-archiving
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
abx-dlA CLI tool that auto-detects and downloads…
permissive · top 15,000 on PyPI
abxpkgUnified interface for detecting, installing,…
permissive · top 15,000 on PyPI
mkdocs-simple-hooksA MkDocs plugin that lets you define custom…
permissive · top 15,000 on PyPI
colcon-recursive-crawlA colcon-core extension that recursively crawls…
permissive · top 15,000 on PyPI
acryl-datahubDataHub's ingestion framework and CLI for…
permissive · top 5,000 on PyPI
handy-archivesProvides utility functions for working with…
permissive · top 15,000 on PyPI
cpexCPEX is a plugin framework that lets you…
permissive · top 15,000 on PyPI
gtoGTO turns a Git repository into an artifact…
permissive · top 5,000 on PyPI
mkdocs-glightboxA MkDocs plugin that automatically wraps images…
permissive · top 5,000 on PyPI
extractcode-libarchiveProvides a prebuilt native libarchive binary as…
permissive · top 15,000 on PyPI