Skip to main content

JACS - JSON AI Communication Standard: Cryptographic signing and verification for AI agents.

Project description

JACS Python Library

Cryptographic identity, signing, and verification for AI agents — from Python.

pip install jacs

Prebuilt native bindings via maturin. No Rust compilation during install.

Full documentation | Quick Start

Quick start

import jacs.simple as jacs

info = jacs.quickstart(name="my-agent", domain="my-agent.example.com")
signed = jacs.sign_message({"action": "approve", "amount": 100})
result = jacs.verify(signed.raw)
print(f"Valid: {result.valid}, Signer: {result.signer_id}")

quickstart() creates a persistent agent with keys on disk. If jacs.config.json exists, it loads it; otherwise it creates a new agent.

Core operations

Operation Description
quickstart(name, domain) Create a persistent agent with keys — zero config
load() Load an existing agent from config
sign_message() Sign any JSON-serializable data
sign_file() Sign a file with optional embedding
verify() Verify any signed document
verify_standalone() Verify without loading an agent
export_agent() Export agent JSON for sharing
audit() Run a security audit

Verify without an agent

result = jacs.verify_standalone(signed_json, key_directory="./keys")

Cross-language interop tested on every commit — documents signed in Rust or Node.js verify identically in Python.

Framework adapters

pip install jacs[langchain]    # LangChain / LangGraph
pip install jacs[fastapi]      # FastAPI / Starlette
pip install jacs[crewai]       # CrewAI
pip install jacs[anthropic]    # Anthropic / Claude SDK
pip install jacs[a2a]          # A2A protocol
pip install jacs[all]          # Everything

Instance-based API

For multiple agents in one process:

from jacs.client import JacsClient

client = JacsClient.quickstart(name="my-agent", domain="example.com")
signed = client.sign_message({"action": "approve"})

See DEVELOPMENT.md for the full API reference, advanced usage (agreements, A2A, attestation, headless loading), framework adapter examples, and testing utilities.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jacs-0.9.14.tar.gz (1.0 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

jacs-0.9.14-cp310-abi3-musllinux_1_2_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

jacs-0.9.14-cp310-abi3-manylinux_2_38_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.38+ x86-64

jacs-0.9.14-cp310-abi3-manylinux_2_38_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.38+ ARM64

jacs-0.9.14-cp310-abi3-macosx_11_0_arm64.whl (8.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

jacs-0.9.14-cp310-abi3-macosx_10_12_x86_64.whl (8.6 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file jacs-0.9.14.tar.gz.

File metadata

  • Download URL: jacs-0.9.14.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jacs-0.9.14.tar.gz
Algorithm Hash digest
SHA256 432de688172fdea5e08c0e1af30fe0851e97b429166e9a1f5e6d2b8e340be2cf
MD5 1b000436b3b11df2f088b582587944e6
BLAKE2b-256 5eaefa9f75d0603a3650c59647891908bc761c30cb10f40cda20aa7e306e3b41

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.14.tar.gz:

Publisher: release-pypi.yml on HumanAssisted/JACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jacs-0.9.14-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for jacs-0.9.14-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3b2f5c6f043fa7e28ddc1bfc12ef5f05be11300065c38ee58198e7ca3c7e98c7
MD5 66b6b340996714d63ad35e688af8aa4e
BLAKE2b-256 11325cf2bd1e7f595aa3171fcf7f4856861aa4f578b216201fcd55d0ab661919

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.14-cp310-abi3-musllinux_1_2_x86_64.whl:

Publisher: release-pypi.yml on HumanAssisted/JACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jacs-0.9.14-cp310-abi3-manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for jacs-0.9.14-cp310-abi3-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 c332cd1609ef3ecb50438d03260f5ee7ce86b05d661dd0d98faff6bf3364b901
MD5 2d2157bbca7b82223ff9ef0cac77a0eb
BLAKE2b-256 17199736bd0107136434175c6c1a2e8ecb54d6bcf231268fba333fed6690cc27

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.14-cp310-abi3-manylinux_2_38_x86_64.whl:

Publisher: release-pypi.yml on HumanAssisted/JACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jacs-0.9.14-cp310-abi3-manylinux_2_38_aarch64.whl.

File metadata

File hashes

Hashes for jacs-0.9.14-cp310-abi3-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 94e78d6de9c55365a06453c4bf7f5c3ef9a85fcd34d7318099bc801654b2403d
MD5 5b31c58f0b22371a22d7982fa037dbb0
BLAKE2b-256 abb6214d7f6317e78b6a2d12797d60ad5934990bc2a4a4263d8ad5b523e85668

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.14-cp310-abi3-manylinux_2_38_aarch64.whl:

Publisher: release-pypi.yml on HumanAssisted/JACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jacs-0.9.14-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jacs-0.9.14-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 928d8277395f88a63efbbc324326fe71f64d1142b8886001dd62cb5b4a608a31
MD5 f5cc082e17e43bad8424fcf05856c49a
BLAKE2b-256 649136166747128404419ce0bfc70f55a06b53c006d728069beb75589f97acf8

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.14-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release-pypi.yml on HumanAssisted/JACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jacs-0.9.14-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jacs-0.9.14-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c7d5eae18ac12d7c72252c67e1609208981cb4fb7630a8db494bcb831f295773
MD5 f6351194066cdde050c67d78463123d3
BLAKE2b-256 77083a4978ffeecce2b6c83f6cee294455778e643a2594d2b64ae479f49a9353

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.14-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: release-pypi.yml on HumanAssisted/JACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page