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.

Release files for ciris-verify 14.1.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 14.1.0
File Size Uploaded
ciris_verify-14.1.0.tar.gz 83.6 kB Details

Built distributions (wheels)

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

Total release size: 30.7 MB

Release files / ciris_verify-14.1.0.tar.gz

Download URL ciris_verify-14.1.0.tar.gz
Size 83.6 kB
Tags Source
SHA-256 checksum
How to use checksums
aa55526933c9863b9cce4a358944b0fad90a1ce53b0764d75071542670efb966
BLAKE2b-256 checksum
How to use checksums
78adab106ef1fad2e6687936bbbfa0354fc1d6f8d472c0face4ed0aef022edf7
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 Sep 1, 2026.

Transparency log

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

Download URL ciris_verify-14.1.0-py3-none-win_amd64.whl
Size 6.5 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
8b101318770271c244b7232d9889c6292328648b6dd1bbd8fabc56a496011b81
BLAKE2b-256 checksum
How to use checksums
79435601998e7b53dba4dbd46c43c84d53815431af8ff47005070ce99b10ad9f
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 Sep 1, 2026.

Transparency log

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

Download URL ciris_verify-14.1.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
ad2e1027f57305aabb2fd5c6a754f57bddabf669b4fc92566200414111f756e5
BLAKE2b-256 checksum
How to use checksums
0662056d1db5dace2efd3251cf2a6a6bae21e3f4905d57b5d60a93326b010228
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 Sep 1, 2026.

Transparency log

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

Download URL ciris_verify-14.1.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
2c9a1de4f813b8badaf05802e3b1f8ac080fc6bb5b3e247af13cb7e85420e109
BLAKE2b-256 checksum
How to use checksums
1486ddbc381b7bb29a99055bfcd08373056502fdf3ff09acb54120351944d939
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 Sep 1, 2026.

Transparency log

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

Download URL ciris_verify-14.1.0-py3-none-macosx_11_0_arm64.whl
Size 5.5 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
19ed0e5728280d7c8b5576b5ffacdce6e92e064b232824948827dd2a5a9fd1f7
BLAKE2b-256 checksum
How to use checksums
b7310b2b7c875a4c819d79aed4c0a33286ae0983fecd97f9db02c49f38d9a74e
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 Sep 1, 2026.

Transparency log

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

Download URL ciris_verify-14.1.0-py3-none-macosx_10_12_x86_64.whl
Size 6.0 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d173701f761660bb6dfc12a86e1d3532999bb68c531d246202d13d835f32750d
BLAKE2b-256 checksum
How to use checksums
92f6b29c232853ccf28ce4eaece3e02f4bb8823eca8bd0e9c2c0dd0ecfa91c3c
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 Sep 1, 2026.

Transparency log

Release history Release notifications | RSS feed

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

This release

14.1.0 This release

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