This release is a pre-release and may not be stable for production use.
Sengol
Signed, offline-verifiable evidence for AI agents in regulated institutions.
Sengol evaluates every agent response against a ControlBook (a regulation expressed as configuration), gates deployments in CI, and writes each verdict as an HMAC-signed, hash-chained, Ed25519-countersigned record. An auditor verifies the exported evidence pack months later, on a laptop, without Sengol: the gate verdict and the audit record are the same signed object.
Sengol is self-hosted and single-tenant: one install is one tenant, inside your own network. Nothing leaves it.
Regulations arrive as configuration: OSFI E-23, FINTRAC, PIPEDA, SR 11-7,
EU AI Act, GDPR, HIPAA, NIST AI RMF, ISO 42001 and more, 29 cataloged total in
sengol/policies/catalog.yaml; a custom internal policy is one more entry.
Fifteen-minute quickstart
make keys # Ed25519 evidence signing key into .env
make demo # Postgres + API + Console, seeded with a five-agent demo fleet, the OSFI E-23 ControlBook and a review queue
open http://localhost:8000
sengol gate --config sengol.yaml # verdict = signed record
sengol export --agent rag-advisor-001 --out pack.zip
# Published on PyPI (see docs/evidence/offline-verification.mdx):
pip install "sengol-verify>=2.1.0"
sengol-verify pack.zip --trusted-key "<key_id>=<appliance-key.pem>" # verify without Sengol
# <key_id> and the Ed25519 public key come from the operator, not from pack.zip. Without
# --trusted-key the countersignature step is UNVERIFIABLE and the exit code is 3
# (see docs/evidence/offline-verification.mdx).
The full walk-through, Entra ID and SCIM setup, and the operator references
are in docs/ (quickstart.mdx first). Product scope is in
PRODUCT.md; current state in STATUS.md.
Licence
Sengol 2.0 is proprietary software. A signed licence file
(SENGOL_LICENSE_FILE) is verified offline at boot against the public keys in
sengol/governance/trusted_keys/; the API and sengol worker run refuse to
start without one. The sengol CLI is otherwise an API client and needs no
local licence. There is no free
tier. A lapsed licence never costs access to evidence: export and
verification keep working, including with the separate sengol-verify. Fourteen-day trials and
licences are issued at https://sengol.io/signup.html.
A build trusts only the anchors it ships. From the first release carrying the
2026-09-prodanchor, production licences verify; releases cut before it have an emptytrusted_keys/MANIFEST.jsonand verify nothing. CheckSTATUS.mdfor the release you are installing.
The verifier, sengol-verify,
is Apache-2.0 and has no dependency on this package.
Development
uv sync --all-extras, then uv run pytest --timeout=60. Tests marked
postgres need a live database (docker compose up postgres). Invariants and
review rules are in AGENTS.md; session rules in
CLAUDE.md.
Metadata
Release files for sengol 2.0.1a20
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 | |
|---|---|---|---|---|
| sengol-2.0.1a20.tar.gz | 13.4 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sengol-2.0.1a20-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.4 MB
Release files / sengol-2.0.1a20.tar.gz
| Download URL | sengol-2.0.1a20.tar.gz |
|---|---|
| Size | 13.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f6fee9f0a05f62ea7e144ee188abc3c4ef7929adb4702eb9f7d27a68101a625b
|
|
BLAKE2b-256 checksum How to use checksums |
322fc98e12259a14e0a2ea30a9862c7117418a671d61de159316197e067800f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / sengol-2.0.1a20-py3-none-any.whl
| Download URL | sengol-2.0.1a20-py3-none-any.whl |
|---|---|
| Size | 3.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8a60259633915d0f43b612fd8ec43fb3231c78a572444a08b3f29f0a0ed8b263
|
|
BLAKE2b-256 checksum How to use checksums |
1ad39dd324aca5d6b545742ef229ce003fee9c4191f4164d9f773a6e346d7e5f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for sengol 2.0.1a20
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A 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.