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 17.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 17.0.0
File Size Uploaded
ciris_verify-17.0.0.tar.gz 87.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for ciris-verify 17.0.0
File
ciris_verify-17.0.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
ciris_verify-17.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-17.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
ciris_verify-17.0.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
ciris_verify-17.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-17.0.0.tar.gz

Download URL ciris_verify-17.0.0.tar.gz
Size 87.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f7458c090fe1cd54aac6ecc6b1dd43d2341844f9f960da038b227fc574d57f7b
BLAKE2b-256 checksum
How to use checksums
29b343651915d479d7f03f7e5b34dce1a025c841f353a083cb24505f3e81fb51
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 25, 2026.

Transparency log

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

Download URL ciris_verify-17.0.0-py3-none-win_amd64.whl
Size 6.6 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
f9d55a2df3da94f2cc87b8036e42974b290aadae4734c5fe2e9c3324590d8e2e
BLAKE2b-256 checksum
How to use checksums
694b2f4402523d01ef23809f92d978a8934aa80bc7ac235fd1b36979f413927d
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 25, 2026.

Transparency log

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

Download URL ciris_verify-17.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
8a554c4970603d70437d2468ad8c94f5a8d2f189228928e8ed45a94c182438f9
BLAKE2b-256 checksum
How to use checksums
55395c13bfb9928263d1e4b7b7696739b851f48a36c889c9662c9a7c5fb99b1c
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 25, 2026.

Transparency log

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

Download URL ciris_verify-17.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
1b05e576f79147f8d45a0b1364c1e814ff45e91c40282ebd9b539b7860cfb845
BLAKE2b-256 checksum
How to use checksums
634c5028ccf68e96a5c38cc94903b825ee402db39c8501660cde708fbe4e3c7f
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 25, 2026.

Transparency log

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

Download URL ciris_verify-17.0.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
71846cf0a29bed3caaec661009bbbe7797e862e83dfd20cb5d3ec3d283d222e6
BLAKE2b-256 checksum
How to use checksums
fcc5121fd63fcf50e09d0a4eeac7bd9437c1302882c2ac9eadfe2729c151110b
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 25, 2026.

Transparency log

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

Download URL ciris_verify-17.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
59d4241541958415aadc122f73de5069b568e86788eee63991c359248d053a13
BLAKE2b-256 checksum
How to use checksums
d22d1f0aebda14567dc2b5ea6592f5e6401c6fa0911328d2830d608764a30f84
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 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

17.0.0 This release

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