Skip to main content

Everything z4j ships, in one place.

Every capability below lands on day one. No hidden tiers. No enterprise-only gating. Security, observability, actions, and team collaboration, all in the open-source release.

All capabilities

Feature catalog

Click any card for a deeper look with screenshots and config notes.

How it works

The control-plane architecture

z4j separates the brain (central server + dashboard) from agents (thin pip packages that run in your app). Agents push events over an outbound WebSocket. The brain dispatches commands back over the same channel.

Your application Apache 2.0
Django / Flask / FastAPI
z4j-django · z4j-flask · z4j-fastapi
Engine
z4j-celery, ...
Scheduler
z4j-celerybeat, ...
z4j-bare (agent runtime)
WebSocket + local SQLite buffer
z4j-core
Protocols + domain models + redaction
Celery / RQ / Dramatiq / Huey / arq / taskiq run alongside, unchanged
broker: Redis / RabbitMQ / SQS (their own)
events
commands
HMAC-signed WebSocket
z4j-brain (control plane) AGPL 3.0
FastAPI backend
REST API + WebSocket gateway
React dashboard
TanStack Start v1, bundled in image
Background workers
Reconciliation, retention, health
PostgreSQL 18+ (or SQLite in default mode)
Events, tasks, schedules, audit log, users
HMAC-chained, tamper-evident
Package map

What ships, where it lives, under which license

z4j is a monorepo. Each piece is installable as an independent pip package. Agents are Apache 2.0, the brain is AGPL 3.0, everything else is documented below.

z4j-core Apache 2.0
Framework-free, engine-free domain core

Protocol definitions, domain models, redaction engine, HMAC envelope, serialization. Knows nothing about Django, Celery, or Redis.

Runs in: Inside every agent and the brain
z4j-bare Apache 2.0
Framework-free agent bootstrapper

Connects to the brain, buffers events to local SQLite, manages lifecycle. Use directly when you have no web framework.

Runs in: Inside your app process
z4j-<framework> Apache 2.0
Framework adapter (django, flask, fastapi)

Reads your framework's settings, auto-registers adapters on app startup, hooks into the framework's lifecycle.

Runs in: Inside your app process
z4j-<engine> Apache 2.0
Engine adapter (celery, rq, dramatiq, huey, arq, taskiq)

Captures task events from the engine's signals, middleware, or hooks. Executes commands (retry, cancel, purge) against the engine.

Runs in: Inside your app process
z4j-<scheduler> Apache 2.0
Scheduler adapter (celery-beat, apscheduler, ...)

Surfaces periodic tasks on the Schedules page. Handles schedule CRUD where the scheduler supports runtime mutation.

Runs in: Inside your app process
z4j-brain AGPL v3
FastAPI backend + React dashboard

Stores events in Postgres or SQLite, serves the dashboard, authenticates users, dispatches commands back to agents. One image, many agents.

Runs in: Standalone container or pip install
Data flow

How an event travels from your app to the dashboard

  1. 1

    Your task runs

    Celery or RQ or any engine dispatches a task. The engine adapter (z4j-celery, z4j-rq, ...) hooks into the engine's signal, middleware, or job lifecycle.

  2. 2

    Redaction at capture

    Before the event leaves your process, the z4j-core redaction engine scrubs args, kwargs, return values, and exceptions. API keys, tokens, and PII never cross the wire unredacted.

  3. 3

    Buffered to local SQLite

    The agent (z4j-bare) appends the event to a local SQLite buffer. If the brain is unreachable, events queue here safely and flush on reconnect. Your app keeps running regardless.

  4. 4

    HMAC-signed over WebSocket

    The agent batches events and sends them through a bearer-authenticated, HMAC-signed WebSocket. Replay guard (nonce + monotonic seq + timestamp window) prevents tampering.

  5. 5

    Brain persists + broadcasts

    The brain writes the event to Postgres or SQLite, applies a second-layer redaction pass, appends to the audit chain if it was a command, then broadcasts the state change to every connected dashboard via internal pub/sub.

  6. 6

    Dashboard updates in real time

    Browsers pick up the update over their own WebSocket. Typical end-to-end latency: agent event to UI under 200ms p50.

Ready to try it?

Install in under 5 minutes. The same features ship in every deployment tier.