Skip to main content

ArchiveBox-compatible plugin suite (hooks, configs, binaries manifests)

Project description

abx-plugins

ArchiveBox-compatible plugin suite (hooks, config schemas, binaries manifests).

This package contains only plugin assets and a tiny helper to locate them. It does not depend on Django or ArchiveBox.

Usage

from abx_plugins import get_plugins_dir

plugins_dir = get_plugins_dir()
# scan plugins_dir for plugins/*/config.json, binaries.jsonl, on_* hooks

Tools like abx-dl and ArchiveBox can discover plugins from this package without symlinks or environment-variable tricks.

Plugin Contract

Directory layout

Each plugin lives under plugins/<name>/ and may include:

  • config.json (optional) - config schema
  • binaries.jsonl (optional) - binary manifests
  • on_* hook scripts (required to do work)

Hooks run with:

  • SNAP_DIR = base snapshot directory (default: .)
  • CRAWL_DIR = base crawl directory (default: .)
  • Snapshot hook output = SNAP_DIR/<plugin>/...
  • Crawl hook output = CRAWL_DIR/<plugin>/...
  • Other plugin outputs can be read via ../<other-plugin>/... from your own output dir

Key environment variables

  • SNAP_DIR - base snapshot directory (default: .)
  • CRAWL_DIR - base crawl directory (default: .)
  • LIB_DIR - binaries/tools root (default: ~/.config/abx/lib)
  • PERSONAS_DIR - persona profiles root (default: ~/.config/abx/personas)
  • ACTIVE_PERSONA - persona name (default: Default)

Event JSONL interface (bbus-style, no dependency)

Hooks emit JSONL events to stdout. They do not need to import bbus. The event envelope matches the bbus style so higher layers can stream/replay.

Minimal envelope:

{
  "event_id": "uuidv7",
  "event_type": "SnapshotCreated",
  "event_created_at": "2026-02-01T20:10:22Z",
  "event_parent_id": "uuidv7-or-null",
  "event_schema": "abx.events.v1",
  "event_path": "abx-plugins",
  "data": { "...": "event-specific fields" }
}

Conventions:

  • Active verb names are requests (e.g. BinaryInstall, ProcessLaunch).
  • Past tense names are facts (e.g. BinaryInstalled, ProcessExited).
  • Plugins can emit additional fields inside data without coordination.

Common event types emitted by hooks:

  • ArchiveResultCreated (status + output files)
  • Binary records (dependency detection/install)
  • ProcessStarted / ProcessExited

Higher-level tools (abx-dl / ArchiveBox) can:

  • Parse these events from stdout
  • Persist or project them (SQLite/JSONL/Django) without plugins knowing

Legacy note:

Some hooks still emit a lightweight JSONL record with a top-level type field (e.g., {"type": "ArchiveResult", ...}). Runtimes should accept those and optionally translate them into the event envelope above.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abx_plugins-0.9.0.tar.gz (389.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

abx_plugins-0.9.0-py3-none-any.whl (543.2 kB view details)

Uploaded Python 3

File details

Details for the file abx_plugins-0.9.0.tar.gz.

File metadata

  • Download URL: abx_plugins-0.9.0.tar.gz
  • Upload date:
  • Size: 389.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for abx_plugins-0.9.0.tar.gz
Algorithm Hash digest
SHA256 28feb1cc8aed503cb688676f9b7e58cd0b6f9479d6ef59365535891d7ae48ab5
MD5 ba431b6130e613dbe33852003ef52640
BLAKE2b-256 c18030e083812a78ef8499655a2a5eb3e02d3f9f41fb524b6b0758877f0105b6

See more details on using hashes here.

File details

Details for the file abx_plugins-0.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for abx_plugins-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9963878dba41d6a6e881515456f114fc6655fc823c2b6e58d453050aee7d4794
MD5 029e4823be25d916ec49c94f53a5f945
BLAKE2b-256 ccf1da58dff6c41bc652a255d6cbf24a5872d49a2fd929df2906728cfed9d372

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page