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.
Observability
Tasks, workers, queues, schedules. Real-time + historical. Optional Sentry export.
Actions
Retry, cancel, bulk-retry, purge, requeue DLQ. Dynamic scheduler.
Security
RBAC, audit log, redaction, HMAC wire protocol.
Collaboration
Multi-user projects, invitations, password reset.
Alerts
Seven providers, severity-aware subscriptions, per-channel cooldown.
Run anywhere
Pip + SQLite. Docker AMD64. Docker ARM64. Native, not emulated.
Feature catalog
Click any card for a deeper look with screenshots and config notes.
Observability
Tasks, workers, queues, schedules. Real-time + historical. Optional Sentry export.
Historical trends
Success rate, failure rate, throughput over time.
Learn moreVisual task DAG
See your canvas: chains, groups, chords.
Learn moreReal-time dashboard
Live task events. Live worker state.
Learn moreLive Activity Feed
Cross-project timeline of every privileged action. Polls every 5 seconds.
Learn moreGrafana templates
Five drop-in Grafana dashboards keyed to z4j's metric names.
Learn moreOptional Sentry integration
Ship brain crashes to Sentry with credentials redacted in-process.
Learn moreOptional OpenTelemetry export
OTLP traces to Honeycomb, Tempo, Jaeger, or any OTel collector.
Learn moreActions
Retry, cancel, bulk-retry, purge, requeue DLQ. Dynamic scheduler.
Unified action surface
One button set. Every engine.
Learn moreStuck-task reconciliation
Tasks started forever. Fixed, automatically.
Learn moreSafe worker restart
Universal restart, zero shell execution.
Learn moreDynamic scheduler
Edit schedules from the dashboard. Drives every engine.
Learn moreSecurity
RBAC, audit log, redaction, HMAC wire protocol.
MFA with TOTP, recovery codes, and trusted devices
RFC 6238 TOTP, single-use recovery codes, per-device 30-day trust cookie. WebAuthn deferred; SMS / email second factors never (NIST-deprecated for AAL2).
Learn moreRBAC built-in
Four roles. Every endpoint gated. UI mirrors server.
Learn moreSecure-by-default redaction
Secrets never leave the agent.
Learn moreHMAC-chained audit log
Tamper-evident. Even against DBAs.
Learn moreAudit webhook forwarding
Mirror every audit row to your SIEM. HMAC-signed.
Learn moreDefense-in-depth rate limits
No brute-force vectors on public endpoints.
Learn moreCollaboration
Multi-user projects, invitations, password reset.
Alerts
Seven providers, severity-aware subscriptions, per-channel cooldown.
Run anywhere
Pip + SQLite. Docker AMD64. Docker ARM64. Native, not emulated.
The control-plane architecture
z4j separates z4j (central server + dashboard) from agents (thin pip packages that run in your app). Agents push events over an outbound WebSocket. z4j dispatches commands back over the same channel.
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, z4j is AGPL 3.0, everything else is documented below.
| Package | Role | Runs in | License |
|---|---|---|---|
| z4j-core | Framework-free, engine-free domain core Protocol definitions, domain models, redaction engine, HMAC envelope, serialization. Knows nothing about Django, Celery, or Redis. | Inside every agent and the brain | Apache 2.0 |
| z4j-bare | Framework-free agent bootstrapper Connects to z4j, buffers events to local SQLite, manages lifecycle. Use directly when you have no web framework. | Inside your app process | Apache 2.0 |
| z4j-<framework> | Framework adapter (django, flask, fastapi) Reads your framework's settings, auto-registers adapters on app startup, hooks into the framework's lifecycle. | Inside your app process | Apache 2.0 |
| z4j-<engine> | 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. | Inside your app process | Apache 2.0 |
| z4j-<scheduler> | Scheduler adapter (celery-beat, apscheduler, ...) Surfaces periodic tasks on the Schedules page. Handles schedule CRUD where the scheduler supports runtime mutation. | Inside your app process | Apache 2.0 |
| z4j | FastAPI backend + React dashboard Stores events in Postgres or SQLite, serves the dashboard, authenticates users, dispatches commands back to agents. One image, many agents. | Standalone container or pip install | AGPL v3 |
z4j-core Apache 2.0 Protocol definitions, domain models, redaction engine, HMAC envelope, serialization. Knows nothing about Django, Celery, or Redis.
z4j-bare Apache 2.0 Connects to z4j, buffers events to local SQLite, manages lifecycle. Use directly when you have no web framework.
z4j-<framework> Apache 2.0 Reads your framework's settings, auto-registers adapters on app startup, hooks into the framework's lifecycle.
z4j-<engine> Apache 2.0 Captures task events from the engine's signals, middleware, or hooks. Executes commands (retry, cancel, purge) against the engine.
z4j-<scheduler> Apache 2.0 Surfaces periodic tasks on the Schedules page. Handles schedule CRUD where the scheduler supports runtime mutation.
z4j AGPL v3 Stores events in Postgres or SQLite, serves the dashboard, authenticates users, dispatches commands back to agents. One image, many agents.
How an event travels from your app to the dashboard
- 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
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
Buffered to local SQLite
The agent (z4j-bare) appends the event to a local SQLite buffer. If z4j is unreachable, events queue here safely and flush on reconnect. Your app keeps running regardless.
- 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
Brain persists + broadcasts
z4j 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
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.