The official CapiscIO CLI tool for validating A2A agents.
Project description
CapiscIO CLI
Catch bad agents before your users do.
CapiscIO CLI validates A2A agent cards, tests live endpoints, and blocks broken deployments — one command in your pipeline.
CLI secures your pipeline. Agent Guard secures your runtime.
Installation
pip install capiscio
Also available via npm: npm install -g capiscio
Quick Start
# Validate an agent card (local file or URL)
capiscio validate ./agent-card.json
# Validate a live agent endpoint
capiscio validate https://my-agent.example.com
# JSON output for CI pipelines
capiscio validate https://my-agent.example.com --json
# Strict mode — fail on warnings too
capiscio validate ./agent-card.json --strict
What It Checks
| Check | Description |
|---|---|
| Schema | Agent card conforms to A2A specification |
| Signatures | JWS badge signatures are valid |
| Endpoints | Live agent responds correctly (--test-live) |
| Trust Level | Badge trust level meets your threshold |
Use Cases
- Pre-commit hooks — Validate agent cards before you push
- CI/CD gates — Block deployments with misconfigured agents (GitHub Action)
- Vendor due diligence — Validate third-party agents before integration
- Cron monitoring — Continuous health checks on agent endpoints
Dev & Testing Commands
The CLI also exposes badge and key management commands for local development and testing:
# Issue a self-signed badge (dev/testing only)
capiscio badge issue --self-sign
# Verify a badge
capiscio badge verify "$TOKEN"
# Generate a key pair
capiscio key gen
# Start the gateway sidecar
capiscio gateway start --port 8080 --target http://localhost:3000
For full CLI reference, see the capiscio-core documentation.
Wrapper Utilities
| Command | Description |
|---|---|
capiscio --wrapper-version |
Display the version of this Python wrapper package |
capiscio --wrapper-clean |
Remove the cached binary (forces re-download on next run) |
How It Works
This package is a lightweight Python wrapper around capiscio-core (written in Go). On first run it downloads the correct binary for your platform — zero overhead after that.
- Detects your OS (Linux, macOS, Windows) and architecture (AMD64, ARM64)
- Downloads the binary to your user cache (with SHA-256 checksum verification)
- Replaces the Python process with the Go binary — native speed, no shim
Supported Platforms
- macOS: AMD64 (Intel), ARM64 (Apple Silicon)
- Linux: AMD64, ARM64
- Windows: AMD64
Binary Integrity Verification
On first run, the wrapper downloads the capiscio-core binary and verifies its SHA-256 checksum
against the published checksums.txt from the GitHub release.
Two failure modes exist:
-
Checksum mismatch ("Binary integrity check failed"): The downloaded file does not match the published checksum. This indicates tampering or corruption and cannot be bypassed. Delete the cached binary and retry.
-
Checksums unavailable ("checksums.txt could not be fetched" or "no entry for …"): The checksums file could not be downloaded or does not contain an entry for the platform binary. This can happen with pre-release versions or network issues. To bypass:
# Bypass only when checksums.txt is unavailable (not for mismatches)
export CAPISCIO_SKIP_CHECKSUM=true
Troubleshooting
"Permission denied" errors: Ensure your user has write access to the cache directory. You can reset the cache by running:
capiscio --wrapper-clean
"Binary not found" or download errors:
If you are behind a corporate firewall, ensure you can access github.com.
"Binary integrity check failed":
The downloaded binary does not match the published checksum — this may indicate a corrupted
or tampered download. Delete the cached binary (capiscio --wrapper-clean) and retry.
This error cannot be bypassed with CAPISCIO_SKIP_CHECKSUM.
"Checksum verification failed: checksums.txt could not be fetched":
The checksums file is unavailable (network issue or pre-release version). You can set
CAPISCIO_SKIP_CHECKSUM=true to proceed without verification, but only do this in
development environments.
License
Apache-2.0
Related Packages
| Package | What it does | Install |
|---|---|---|
| Agent Guard | Runtime trust verification for A2A agents | pip install capiscio-sdk |
| MCP Guard | Trust enforcement for MCP tool servers | pip install capiscio-mcp |
| capiscio-core | Go library and full CLI reference | go install |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file capiscio-2.7.0.tar.gz.
File metadata
- Download URL: capiscio-2.7.0.tar.gz
- Upload date:
- Size: 68.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
642899a15df50e6e1cc74de9e0b7f2a098a5fc045eb5cab67f02e37e50418938
|
|
| MD5 |
e4d1348cf2b152f843c353364d657cd9
|
|
| BLAKE2b-256 |
729460ac0a58dfefec5bad9061992d495a28a90022208227a58ce88cf03e5163
|
Provenance
The following attestation bundles were made for capiscio-2.7.0.tar.gz:
Publisher:
publish.yml on capiscio/capiscio-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
capiscio-2.7.0.tar.gz -
Subject digest:
642899a15df50e6e1cc74de9e0b7f2a098a5fc045eb5cab67f02e37e50418938 - Sigstore transparency entry: 1525361760
- Sigstore integration time:
-
Permalink:
capiscio/capiscio-python@7f5f240a884811aab066a22efd565b55be8eecd5 -
Branch / Tag:
refs/tags/v2.7.0 - Owner: https://github.com/capiscio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7f5f240a884811aab066a22efd565b55be8eecd5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file capiscio-2.7.0-py3-none-any.whl.
File metadata
- Download URL: capiscio-2.7.0-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
540303995f54024da87b956ac1736b7d1877df9371de66282a7d89bdd196a3c3
|
|
| MD5 |
1ed81ae4f13d40b69841d7309dbdb1e8
|
|
| BLAKE2b-256 |
06104d8ac252ea0374cb5214c13727947ff71e752efa28cccd1f899350e7e7d7
|
Provenance
The following attestation bundles were made for capiscio-2.7.0-py3-none-any.whl:
Publisher:
publish.yml on capiscio/capiscio-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
capiscio-2.7.0-py3-none-any.whl -
Subject digest:
540303995f54024da87b956ac1736b7d1877df9371de66282a7d89bdd196a3c3 - Sigstore transparency entry: 1525361780
- Sigstore integration time:
-
Permalink:
capiscio/capiscio-python@7f5f240a884811aab066a22efd565b55be8eecd5 -
Branch / Tag:
refs/tags/v2.7.0 - Owner: https://github.com/capiscio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7f5f240a884811aab066a22efd565b55be8eecd5 -
Trigger Event:
push
-
Statement type: