DeadBolt Python client
n11-deadbolt-client connects a trusted Python executor to a separately installed
DeadBolt local sidecar. Each protected callback gets a fresh admission decision;
a denial leaves its body uncalled. The base client has no runtime dependencies.
Version and installation
This source builds Python client 2.0.1.post1, paired with engine 2.0.1. The postrelease corrects package documentation only. Its three Python runtime modules are byte-identical to client 2.0.1. There is no new engine version, behavior change or state migration. Existing 2.0.1 artifacts remain immutable. Source preparation does not publish a package; check the exact version on PyPI before installing.
In your application's virtual environment, once this version is published:
python -m pip install 'n11-deadbolt-client==2.0.1.post1'
# Optional SDK adapter, Python 3.10+:
python -m pip install 'n11-deadbolt-client[openai-agents]==2.0.1.post1'
Base client support starts at Python 3.9. The optional extra pins
openai-agents==0.23.1. Installing either route makes no model requests and
requests no API credentials. Your application configures its own provider.
Install engine 2.0.1 separately using the checksum-verified native archive,
Cargo or Homebrew route in installation.
The wheel contains no engine, starts no sidecar and protects no unwrapped route.
Verify the engine with deadbolt --version (expect deadbolt 2.0.1) and
deadbolt drill (expect deadbolt drill ok). No registry account is needed to install.
The already-published 2.0.1 wheel has the correct runtime modules and package version, but its frozen long description recommends 2.0.0. The postrelease corrects that documentation without replacing either version's bytes. A pinned 2.0.1 application does not need a behavior migration for this metadata correction.
Connect one protected callback
After trusted operator setup starts the sidecar and issues a scoped admission
credential, configure DEADBOLT_SOCK and DEADBOLT_ADMISSION_TOKEN in your
executor. Keep operator/supervisor credentials and private state outside
model-facing processes. The operator configures tools, destinations and required
approvals before protected dispatch.
import deadbolt_client as deadbolt
result = deadbolt.dispatch("run-001", "write_note", lambda: write_reviewed_note())
if not result["executed"]:
show_denial(result["decision"])
write_reviewed_note and show_denial are application functions. Never cache
an allow or execute after a denial or transport failure. Use exact-action
wrappers where approval must bind to content rather than just a tool name.
ensure confirms record presence, not a live admission grant.
Fresh version 2 roots default to supervisor renewal. Provision a separate trusted heartbeat before idle expiry, or deliberately select activity mode. Neither mode extends a fixed deadline or revives killed/expired state. Existing leases retain their stored mode; installing a client does not migrate them.
Limits
Only execution routes that call DeadBolt are protected. Destination policy is
not OS network interception. The executor owns cancellation of already running
work. The optional deadbolt_supervisor.run_owned POSIX reference needs Python
3.13+ and its required wait interface; it refuses unsupported hosts, including
Windows, before execution. Ordinary callback wrappers do not cancel running bodies.
Build and verify
A reviewed checkout of this postrelease source builds client 2.0.1.post1;
the older v2.0.1 tag retains client 2.0.1. Record the exact source revision.
The engine remains 2.0.1 in both. The package acceptance script builds the sdist,
builds its wheel outside the checkout, checks metadata and installs without
optional dependencies to test unavailable-sidecar denial. Publication additionally
requires runtime-module equality with the checksum-pinned original 2.0.1 wheel.
python -m build --outdir release-artifacts/python
python tests/python_package_acceptance.py
Build/check tooling is separate from runtime requirements; see the repository's contribution and release instructions. A local wheel is not publication evidence.
Guides and support
- Python setup and SDK examples
- Upgrade and Rust API migration
- Exact-action approvals
- Supervision
- Owned-process cancellation
- Local data and privacy
- Private security reporting
Maintained by NextEleven LLC, licensed Apache-2.0. Support: nextelevenstudios@gmail.com. Never include credentials or private application data in public issues or support reports.
Metadata
Release files for n11-deadbolt-client 2.0.1.post1
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 |
|---|---|---|---|---|
| n11_deadbolt_client-2.0.1.post1.tar.gz | 150.0 kB | With provenance | Details for n11_deadbolt_client-2.0.1.post1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| n11_deadbolt_client-2.0.1.post1-py3-none-any.whl | Python 3 | none | any | Details for n11_deadbolt_client-2.0.1.post1-py3-none-any.whl |
Total release size: 170.7 kB
Release files / n11_deadbolt_client-2.0.1.post1.tar.gz
| Download URL | n11_deadbolt_client-2.0.1.post1.tar.gz |
|---|---|
| Size | 150.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
63580cb25c8955129056a2028f27d9454270ad9216fd08a5d72f23a072812868
|
|
BLAKE2b-256 checksum How to use checksums |
af794cb9617c1f772cb129cec9fb5b77018ed26f396fc38399e84096ade6bd9f
|
| 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 4, 2026.
Transparency logRelease files / n11_deadbolt_client-2.0.1.post1-py3-none-any.whl
| Download URL | n11_deadbolt_client-2.0.1.post1-py3-none-any.whl |
|---|---|
| Size | 20.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9eec06ee05210ea5b96a7c65ecc08ceec3f4c3e5a2b9f55211c3141a6ba7f481
|
|
BLAKE2b-256 checksum How to use checksums |
01bff6fbcd7173eff31db71e5d00806a1ac3f3a03df41061bfb40ac54d4529ce
|
| 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 4, 2026.
Transparency logSecurity for n11-deadbolt-client 2.0.1.post1
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
All 2 files in this release have been uploaded with provenance metadata.
Attestation for n11_deadbolt_client-2.0.1.post1.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 4, 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.