Atropos
A standalone rule and workflow engine: test a decision, explicitly authorize a workflow, and track every step through completion or an uncertain outcome.
Atropos 1.0.3 is free software under GPL-3.0-only. It runs on your own infrastructure, independently of Atraxis and without an AI provider. Atraxis can supply its web and terminal interfaces; Atropos owns the rules, permissions, storage and workflow execution.
Website · Engine on PyPI · Client on PyPI · User guide · Contributing · Roadmap
What can you do with it?
- Manage decision rules: create YAML drafts, keep immutable revisions, test concrete scenarios and explicitly activate a tested version. The documented version-1 rule model uses ZEN 2.1.2.
- Run bounded workflows: validate a graph, submit it with a deduplication key, advance it through workers, inspect persisted results and reconcile uncertainty.
- Control who can act: the rule service checks organization, group, resource and operation scopes at admission and again before execution.
- Connect approved executors: use registered actions or an explicitly configured Auton adapter. Optional Alertmanager delivery reports workflow outcomes.
- Operate persistent state: start with SQLite and its integrated queue; choose other documented storage/delivery adapters when needed.
For example, an operator can test a CPU decision rule and then explicitly dispatch an approved diagnostic for the affected target. Saving, testing or activating a rule does not start that diagnostic. Collection, decision and execution remain separate operations.
How the components fit together
Inside Atropos, the engine and local terminal read and write the configured persistent storage. The database cylinder holds rule versions and tests, workflow runs and results, and audit history. SQLite is the default: a local file, with no separate database server required. Other storage adapters are documented in the backend guide. The frame indicates component ownership, not a requirement to run everything in one process, container or host.
The Atropos terminal is the local atropos command for trusted operators:
validate, submit, run and inspect workflows. Its built-in actions are registered
demo actions. The authenticated rule service and its guarded workers provide
scoped rule-driven dispatch. The terminal and service share data only when
configured to use the same storage and namespace.
Coloured logos identify optional external software: Atraxis connects through
atropos-client and the authenticated API; Auton executes authorized jobs;
Alertmanager routes configured notifications. Saving, testing or activating a
rule does not automatically launch a workflow.
| Software | Role | Required? |
|---|---|---|
Atropos (atraxis-atropos) |
Engine, local CLI and optional HTTP rule service | The component installed here |
Atropos client (atropos-client) |
Independent Python API client | For API consumers; installed by the engine's service extra |
| Atraxis | Inventory, web and terminal operator interfaces | Optional; Atropos works without it |
| Auton | Execute explicitly authorized jobs | Optional execution adapter |
| Alertmanager | Route and deliver configured notifications | Optional notification adapter |
| monit-docker / CertLord | Container monitoring / certificate lifecycle | Independent tools; observations can be supplied through Atraxis |
| AnySQL | Connection layer used by SQL adapters | Relevant to SQL backend configuration |
Prometheus and Covenant are not required to run Atropos. Monit-Docker retains its own monitoring, local actions and protections when used alongside Atropos.
Container installation
Use the Docker guide for the Linux amd64 image, persistent state, TLS placement and the optional worker using the same image.
Start here
The supported reference covers Linux amd64 and Python 3.11/3.12.
On Debian/Ubuntu, install the system libmagic1 library and Python's venv support:
sudo apt-get install python3-venv libmagic1
python3 -m venv .venv
. .venv/bin/activate
python -m pip install 'atraxis-atropos==1.0.3'
python -m pip check
atropos --help
The PyPI distribution is named atraxis-atropos; the command and Python module
are atropos. The unrelated PyPI package named atropos is not this engine.
Run a harmless first workflow
Create a file in an empty working directory. This single step returns its inputs; it does not contact a service or modify a supervised resource:
cat > hello.yml <<'YAML'
version: 1
name: hello
start: report
steps:
report:
action: core.echo
with:
message: Hello from Atropos
YAML
export ATROPOS_STORAGE_BACKEND=sqlite
export ATROPOS_STORAGE_URL=sqlite:///atropos.db
atropos validate hello.yml
atropos plan hello.yml
atropos submit hello.yml --target demo-node --dedup-key hello-001
atropos worker --once
Copy the run ID returned by submit, then inspect it with atropos status RUN_ID.
For this one-step example, a successful worker completes the run. In a multi-step
workflow, worker --once attempts one step per configured worker; use atropos worker for continuous processing. Submission means queued, not completed.
Run the rule service
In a dedicated engine environment, install the service dependencies:
python -m pip install 'atraxis-atropos[service]==1.0.3'
Follow the rule service guide to create the private profile, provision identities and permissions, configure storage and verified HTTPS, then start the loopback listener:
atropos rules-serve --config /private/atropos-service.yml --port 8082
The profile path is an example, not a bundled ready-to-use configuration. Installing the package does not start the service, create credentials or authorize actions.
Install only the API client
In the consuming application's separate environment:
python -m pip install 'atropos-client==1.0.3'
The base client does not install the engine, Redis or ZEN. Add [observations]
when that application needs signed observation envelopes. Follow its own dependency
pins: Atraxis 1.0.0 still pins client 0.1.0a10, whose functional code matches 1.0.0
apart from the version constant. Do not override that pin inside Atraxis's environment.
Install from source instead
git clone https://github.com/decryptus/atropos.git
cd atropos
git checkout v1.0.3
python -m pip install .
Use a virtual environment and the same system prerequisites. Runnable examples are in examples/; cloning is not needed for the inline PyPI quickstart.
Persistence and failure semantics
SQLite with its integrated queue is the default. Backend configuration also covers PostgreSQL, MySQL/MariaDB, Redis and installed plugins. Storage and delivery roles are configured independently; switching them does not migrate data.
A confirmed failed action can follow its bounded retry policy. An action whose external result is unknown becomes uncertain and keeps its target lock until an authorized operator investigates and resolves it. A timeout does not prove a remote action stopped. There is no exactly-once guarantee for external effects.
The stable support claim is limited to the qualified reference. High availability, hot backup, automatic pruning and sandboxing arbitrary registered code are not included. Use cold backup and restore and plan capacity for retained runs and audit history.
Documentation
| I want to… | Guide |
|---|---|
| Configure workflows, workers and the Python API | User guide |
| Write and test decision rules | Rules · Draft/test/activation lifecycle |
| Connect an application to the service | HTTP service · Independent client |
| Authorize or dispatch a workflow | Membership and grants · Explicit dispatch |
| Configure an executor or notifications | Auton adapters · Alertmanager |
| Use verified observations or isolated simulations | Observations and tests · Test receivers |
| Investigate and maintain state | Reconciliation · Backup · Retention |
For architecture, tests and release engineering, use the separate contributor guide. Planned work is in the roadmap; brand assets are also available.
License
Project-owned code and documentation are licensed under GNU GPL version 3 only
(LICENSE, SPDX GPL-3.0-only). Dependencies retain their own licenses.
Metadata
Release files for atraxis-atropos 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| atraxis_atropos-1.0.3.tar.gz | 350.3 kB | With provenance | Details for atraxis_atropos-1.0.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| atraxis_atropos-1.0.3-py3-none-any.whl | Python 3 | none | any | Details for atraxis_atropos-1.0.3-py3-none-any.whl |
Total release size: 489.9 kB
Release files / atraxis_atropos-1.0.3.tar.gz
| Download URL | atraxis_atropos-1.0.3.tar.gz |
|---|---|
| Size | 350.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
472ca2d48f0bb528afca4225472bd298bec0f21ea27877f0945e90eb5626e3c4
|
|
BLAKE2b-256 checksum How to use checksums |
f274ab847bb6e42ebb2f116cf0962c3bc2dc2558d64317f74ea1ecc73257e775
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.
Transparency logRelease files / atraxis_atropos-1.0.3-py3-none-any.whl
| Download URL | atraxis_atropos-1.0.3-py3-none-any.whl |
|---|---|
| Size | 139.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eb74aaa8b951f1063c45db938abcc352013ab4ad2ae960c6c6745b3c6ce3707d
|
|
BLAKE2b-256 checksum How to use checksums |
49cade67f8a590d7125411f5ad0916cf977649316b97a2a1d91f8689259d3b9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.
Transparency logSecurity for atraxis-atropos 1.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for atraxis_atropos-1.0.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.