Skip to main content

CIRISVerify Python Bindings

Python bindings for CIRISVerify, the hardware-rooted license verification module for the CIRIS ecosystem.

Installation

pip install ciris-verify

Note: The CIRISVerify binary must be installed separately. See the CIRISVerify documentation for installation instructions.

Quick Start

import os
from ciris_verify import CIRISVerify, LicenseStatus

# Initialize the verifier
verifier = CIRISVerify()

# Get license status with a fresh nonce
status = await verifier.get_license_status(
    challenge_nonce=os.urandom(32)
)

# Check if professional capabilities are available
if status.allows_licensed_operation():
    print("Professional license verified!")
    print(f"Tier: {status.license.tier}")
    print(f"Capabilities: {status.license.capabilities}")
else:
    print("Running in community mode")

# IMPORTANT: Always display the mandatory disclosure
print(status.mandatory_disclosure.text)

Mandatory Disclosure

Per the CIRIS ecosystem rules, agents MUST display the mandatory_disclosure.text to users. This ensures transparency about the agent's capabilities and licensing status.

# The disclosure MUST be shown to users
disclosure = status.mandatory_disclosure
print(f"[{disclosure.severity.upper()}] {disclosure.text}")

Capability Checking

For frequent capability checks, use the fast path:

result = await verifier.check_capability("medical:diagnosis")
if result.allowed:
    # Capability is available
    pass
else:
    print(f"Capability denied: {result.reason}")

Testing

For testing without the actual binary, use MockCIRISVerify:

from ciris_verify import MockCIRISVerify, LicenseStatus

# Create a mock that returns community mode
verifier = MockCIRISVerify(
    mock_status=LicenseStatus.UNLICENSED_COMMUNITY
)

# Use exactly like the real client
status = await verifier.get_license_status(os.urandom(32))
assert status.status == LicenseStatus.UNLICENSED_COMMUNITY

Error Handling

from ciris_verify import (
    CIRISVerifyError,
    BinaryNotFoundError,
    BinaryTamperedError,
    VerificationFailedError,
)

try:
    verifier = CIRISVerify()
    status = await verifier.get_license_status(os.urandom(32))
except BinaryNotFoundError as e:
    # Binary not installed
    print(f"CIRISVerify not found: {e.path}")
except BinaryTamperedError:
    # CRITICAL: Binary has been modified
    # Halt all operations immediately
    raise SystemExit("SECURITY ALERT: Binary integrity compromised")
except VerificationFailedError as e:
    # Verification failed - operate in restricted mode
    print(f"Verification failed: {e}")

License Status Codes

Status Code Description
LICENSED_PROFESSIONAL 100 Full professional license active
LICENSED_PROFESSIONAL_GRACE 101 License valid, in offline grace period
UNLICENSED_COMMUNITY 200 Community mode, no professional capabilities
RESTRICTED_* 300-399 Restricted mode due to verification issues
ERROR_* 400-499 Error states (revoked, expired, etc.)
LOCKDOWN_* 500+ Critical security failure, halt operations

Thread Safety

The client is thread-safe and can be used from multiple threads or async tasks concurrently.

License

AGPL-3.0-or-later - See LICENSE file in the CIRISVerify repository.

Metadata

Release files for ciris-verify 19.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ciris-verify 19.0.0
File Size Uploaded
ciris_verify-19.0.0.tar.gz 88.0 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for ciris-verify 19.0.0
File
ciris_verify-19.0.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
ciris_verify-19.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
ciris_verify-19.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
ciris_verify-19.0.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
ciris_verify-19.0.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 31.0 MB

Release files / ciris_verify-19.0.0.tar.gz

Download URL ciris_verify-19.0.0.tar.gz
Size 88.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9081d2fcdab871092f9eb2f57e4f5e91ee42e1ec8d5c6f68c1b478bdddd49dc2
BLAKE2b-256 checksum
How to use checksums
656de02b2c932da54237011c30f28d0f5e741bd5b8dd5f3d87f98ae09bd24536
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 2, 2026.

Transparency log

Release files / ciris_verify-19.0.0-py3-none-win_amd64.whl

Download URL ciris_verify-19.0.0-py3-none-win_amd64.whl
Size 6.6 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
8762dac9ee414430939e753e9093cf37fbee9b123114c4f795c53d4ac3d1c4d2
BLAKE2b-256 checksum
How to use checksums
1db297530de8b518094c9bbb80311f94ca1bda65c21576d8661ec1b4825bd162
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 2, 2026.

Transparency log

Release files / ciris_verify-19.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ciris_verify-19.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.6 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
00a4765019a25a687abc24f833cca0021eb79e0ca9fb9e5bdba223569645050f
BLAKE2b-256 checksum
How to use checksums
d09d21f9efd1647b42d1d38fd4edb84892f08b34c3490f8aea6f0fc57bf02f27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 2, 2026.

Transparency log

Release files / ciris_verify-19.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL ciris_verify-19.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 6.1 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
d1dd3b387fb193b2a168f75fab0ff99eb8f1695fe3da8271ce77478d4643c709
BLAKE2b-256 checksum
How to use checksums
f5fe9aef88fb0952903ce684a6ccfe604702a8734314dcd30b075ce308e80213
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 2, 2026.

Transparency log

Release files / ciris_verify-19.0.0-py3-none-macosx_11_0_arm64.whl

Download URL ciris_verify-19.0.0-py3-none-macosx_11_0_arm64.whl
Size 5.6 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0e29de73b13cc00357c8276788b964aff7ac0795f4de61ce9be75d24f6b949c9
BLAKE2b-256 checksum
How to use checksums
3404e71c734b084059c8feee2a43feddd17da325fd5dab23268870efe2b3848b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 2, 2026.

Transparency log

Release files / ciris_verify-19.0.0-py3-none-macosx_10_12_x86_64.whl

Download URL ciris_verify-19.0.0-py3-none-macosx_10_12_x86_64.whl
Size 6.1 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e81867fc658954cfd7d62070bba2f2ffbbe4e6fdafcadbd8da24646ffa51818b
BLAKE2b-256 checksum
How to use checksums
aa7ebeeeedb3253d150eff5d696e315e04e7d8cc675218f0e3e65d079c0b63dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

19.0.0 This release

6 release files

18.0.0

6 release files

17.1.0

6 release files

17.0.0

6 release files

16.3.0

6 release files

16.2.1

6 release files

16.2.0

6 release files

16.1.0

6 release files

16.0.0

6 release files

15.2.0

6 release files

15.1.0

6 release files

14.0.0

6 release files

13.6.1

6 release files

13.6.0

6 release files

13.5.0

6 release files

13.4.0

6 release files

13.3.1

6 release files

13.3.0

6 release files

13.2.0

6 release files

13.1.0

6 release files

10.6.3

6 release files

10.6.2

6 release files

10.6.1

6 release files

10.6.0

6 release files

10.5.1

6 release files

10.5.0

6 release files

10.4.0

6 release files

10.3.0

6 release files

10.2.0

6 release files

10.1.1

6 release files

10.1.0

6 release files

10.0.0

6 release files

9.0.2

6 release files

9.0.1

6 release files

9.0.0

6 release files

8.12.0

6 release files

8.10.1

6 release files

8.9.0

6 release files

8.8.0

6 release files

8.7.0

6 release files

8.6.0

6 release files

8.5.0

6 release files

8.4.0

6 release files

8.3.0

6 release files

8.2.0

6 release files

8.1.0

6 release files

8.0.0

6 release files

7.6.0

6 release files

7.5.1

6 release files

7.5.0

6 release files

7.4.0

6 release files

7.3.0

6 release files

7.2.0

6 release files

7.1.0

6 release files

7.0.0

6 release files

6.12.0

6 release files

6.11.0

6 release files

6.10.0

6 release files

6.9.0

6 release files

6.8.1

6 release files

6.8.0

6 release files

6.7.1

6 release files

6.7.0

6 release files

6.6.1

6 release files

6.6.0

6 release files

6.5.0

6 release files

6.4.1

6 release files

6.4.0

6 release files

6.3.0

6 release files

6.2.0

6 release files

6.1.1

6 release files

6.1.0

6 release files

6.0.0

6 release files

5.14.0

6 release files

5.13.0

6 release files

5.12.0

6 release files

5.11.0

6 release files

5.10.0

6 release files

5.9.0

6 release files

5.8.0

6 release files

5.7.1

6 release files

5.7.0

6 release files

5.6.0

6 release files

5.5.0

6 release files

5.4.0

6 release files

5.3.1

6 release files

5.3.0

6 release files

5.2.0

6 release files

5.1.3

6 release files

5.1.0

6 release files

5.0.0

6 release files

4.9.0

6 release files

4.8.1

6 release files

4.8.0

6 release files

4.7.1

6 release files

4.7.0

6 release files

4.6.0

6 release files

4.5.0

6 release files

4.4.3

6 release files

4.4.2

6 release files

4.2.0

6 release files

4.1.0

6 release files

4.0.0

6 release files

3.9.0

6 release files

3.8.0

6 release files

3.7.0

6 release files

3.6.0

6 release files

3.4.0

6 release files

3.3.0

6 release files

3.2.0

6 release files

3.1.0

6 release files

3.0.1

6 release files

3.0.0

6 release files

2.14.0

6 release files

2.13.0

6 release files

2.12.0

6 release files

2.11.0

6 release files

2.10.0

6 release files

2.9.0

6 release files

2.8.0

6 release files

2.7.0

6 release files

2.6.1

6 release files

2.6.0

6 release files

2.5.0

6 release files

2.4.0

6 release files

2.3.0

6 release files

2.2.0

6 release files

2.1.5

6 release files

2.1.3

6 release files

2.1.2

6 release files

2.1.1

6 release files

2.1.0

6 release files

2.0.5

6 release files

2.0.4

6 release files

2.0.3

6 release files

2.0.2

6 release files

2.0.1

6 release files

2.0.0

6 release files

1.9.0

6 release files

1.8.6

6 release files

1.8.5

6 release files

1.8.4

6 release files

1.8.3

6 release files

1.8.1

6 release files

1.8.0

6 release files

1.7.0

6 release files

1.6.4

6 release files

1.6.3

6 release files

1.6.2

6 release files

1.6.1

6 release files

1.6.0

6 release files

1.5.11

6 release files

1.5.10

6 release files

1.5.9

6 release files

1.5.8

6 release files

1.5.6

6 release files

1.5.5

6 release files

1.5.4

6 release files

1.5.3

6 release files

1.5.2

6 release files

1.5.1

6 release files

1.5.0

6 release files

1.4.6

6 release files

1.4.5

6 release files

1.4.4

6 release files

1.4.3

6 release files

1.4.2

6 release files

1.4.1

6 release files

1.4.0

6 release files

1.3.9

6 release files

1.3.8

6 release files

1.3.7

6 release files

1.3.6

6 release files

1.3.5

6 release files

1.3.4

6 release files

1.3.3

6 release files

1.3.1

6 release files

1.2.5

6 release files

1.2.4

6 release files

1.2.3

6 release files

1.2.2

6 release files

1.2.1

6 release files

1.2.0

6 release files

1.1.27

6 release files

1.1.26

6 release files

1.1.25

6 release files

1.1.24

6 release files

1.1.23

6 release files

1.1.22

6 release files

1.1.21

6 release files

1.1.20

6 release files

1.1.19

6 release files

1.1.18

6 release files

1.1.9

6 release files

1.1.8

6 release files

1.1.7

6 release files

1.1.6

6 release files

1.1.5

6 release files

1.1.4

6 release files

1.1.3

6 release files

1.1.2

6 release files

1.1.1

6 release files

1.1.0

6 release files

1.0.8

6 release files

1.0.7

6 release files

1.0.6

6 release files

1.0.5

6 release files

1.0.4

6 release files

1.0.3

6 release files

1.0.1

6 release files

1.0.0

6 release files

0.10.9

6 release files

0.10.8

6 release files

0.10.7

6 release files

0.10.6

6 release files

0.10.5

6 release files

0.10.4

6 release files

0.10.3

6 release files

0.10.2

6 release files

0.10.1

6 release files

0.10.0

6 release files

0.9.8

6 release files

0.9.7

6 release files

0.9.6

6 release files

0.9.5

6 release files

0.9.4

6 release files

0.9.3

6 release files

0.9.2

6 release files

0.9.1

6 release files

0.9.0

6 release files

0.8.19

6 release files

0.8.18

6 release files

0.8.17

6 release files

0.8.16

6 release files

0.8.15

6 release files

0.8.14

8 release files

0.8.13

8 release files

0.8.12

8 release files

0.8.11

8 release files

0.8.10

8 release files

0.8.9

6 release files

0.8.8

8 release files

0.8.7

8 release files

0.8.6

6 release files

0.8.5

8 release files

0.8.4

8 release files

0.8.3

6 release files

0.8.2

8 release files

0.8.1

8 release files

0.8.0

8 release files

0.7.13

8 release files

0.7.12

8 release files

0.7.11

8 release files

0.7.10

8 release files

0.7.9

8 release files

0.7.8

8 release files

0.7.7

8 release files

0.7.6

8 release files

0.7.5

8 release files

0.7.4

8 release files

0.7.3

6 release files

0.7.2

8 release files

0.7.1

6 release files

0.7.0

6 release files

0.6.17

6 release files

0.6.16

6 release files

0.6.15

6 release files

0.6.14

6 release files

0.6.13

6 release files

0.6.12

6 release files

0.6.11

6 release files

0.6.10

6 release files

0.6.9

6 release files

0.6.8

6 release files

0.6.7

6 release files

0.6.6

6 release files

0.6.5

6 release files

0.6.4

6 release files

0.6.3

6 release files

0.6.2

6 release files

0.6.1

6 release files

0.5.4

6 release files

0.5.3

6 release files

0.5.0

6 release files

0.3.8

6 release files

0.3.7

6 release files

0.3.6

6 release files

0.3.5

6 release files

0.3.0

6 release files

0.2.1

6 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page