z4j framework-free agent bootstrapper (Apache 2.0)
Project description
z4j-bare
License: Apache 2.0 Status: v1.0.0 - first public release.
Framework-free agent runtime for z4j. Ships both
as a pure-Python supervisor for standalone workers (no Django / Flask /
FastAPI) and as proof that z4j-core
is genuinely framework-free - z4j-bare is what every framework
adapter is built on top of.
Install
pip install z4j-bare
# Optionally add dev-mode filesystem watcher (for live task-registry
# reloads when tasks.py changes on disk; off in production):
pip install "z4j-bare[watcher]"
What it does
AgentRuntime- pure-Python agent runtime, no framework hooks.- WebSocket transport with exponential-backoff reconnect.
- HTTPS long-poll fallback for networks that block WebSocket.
- Local SQLite buffer (WAL mode, size-capped, crash-safe event storage).
- Command dispatcher - routes brain commands to registered engine + scheduler adapters.
- Heartbeat loop with liveness + last-seen stamping.
- Orchestrator detection - identifies Docker / Kubernetes / systemd / supervisord hosts for
restart_workersafety-gating. - Per-project HMAC v2 signing using the shared wire-protocol helpers from
z4j-core. - Process singleton guard - prevents duplicate agents from the same project on one host.
- CLI:
python -m z4j_bare run --config ...
Use cases
- Celery / RQ / Dramatiq workers not served by a web framework.
- ML pipelines that run Celery but don't use Django.
- Containers where the agent runs as its own process, separate from the app.
- Custom Python scripts that dispatch tasks and want to report lifecycle events to the z4j brain.
Usage - in-process
from celery import Celery
from z4j_bare import install_agent
from z4j_celery import CeleryEngineAdapter
app = Celery("myproject", broker="redis://localhost/0")
agent = install_agent(
engines=[CeleryEngineAdapter(celery_app=app)],
brain_url="https://z4j.internal",
token="z4j_agent_...",
project_id="ml-pipeline-prod",
)
Usage - standalone process
python -m z4j_bare run \
--brain-url https://z4j.internal \
--token $Z4J_TOKEN \
--project-id ml-pipeline-prod \
--engine celery \
--celery-app myproject.celery:app
Reliability contract
Per the z4j safety rule (docs/CLAUDE.md §2.2), the agent must never
break the host application:
- No exception inside the runtime propagates to Celery / Django / FastAPI signal handlers.
- Network I/O never blocks signal handlers (events queue to an in-memory ring, flushed from a background thread).
- When the brain is unreachable, events buffer to local SQLite with exponential backoff.
- Buffer drops oldest events when full; the host app is never slowed or blocked.
Documentation
- Adapter guide - how z4j-bare composes with engine + framework adapters.
- Architecture - agent/brain topology, transport layer, reconciliation.
- Security - threat model, HMAC v2 envelope signing, redaction.
License
Apache 2.0. See LICENSE. z4j-bare installs cleanly into
proprietary Python workers - there is no copyleft obligation. The
brain server it talks to (z4j-brain)
is AGPL-3.0; communicating with it over the network does not subject
your worker code to AGPL.
Links
- Homepage: https://z4j.com
- Documentation: https://z4j.dev
- Issues: https://github.com/z4jdev/z4j-bare/issues
- Changelog: CHANGELOG.md
- Security:
security@z4j.com(see SECURITY.md)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file z4j_bare-1.0.7.tar.gz.
File metadata
- Download URL: z4j_bare-1.0.7.tar.gz
- Upload date:
- Size: 82.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b3e661b5910d3760ddc2a13f3814a4025d86667876811589fabaa5119025e60
|
|
| MD5 |
dfdbb4b7d102b0d431a836c13073c489
|
|
| BLAKE2b-256 |
0cabc90730779663a38650cc5df5ed62b660aefc7b87454fb66145d45b6049a9
|
File details
Details for the file z4j_bare-1.0.7-py3-none-any.whl.
File metadata
- Download URL: z4j_bare-1.0.7-py3-none-any.whl
- Upload date:
- Size: 76.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb097efdd1c4cf64723d8e694ca0b9fdaacd80a10030cf381cdb76e39f78bc78
|
|
| MD5 |
0fd6c7b6d7cdb11ace84e8d6bd20910e
|
|
| BLAKE2b-256 |
3969e6f3d112025f8cf7773601d4f477dfc83541faff6e1f1ebcf5697d83564e
|