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.15.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.15-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.15-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.15-cp310-abi3-manylinux_2_38_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.38+ ARM64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

jacs-0.9.15-cp310-abi3-macosx_10_12_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: jacs-0.9.15.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.15.tar.gz
Algorithm Hash digest
SHA256 11130e4182bdb9f48e611e127cb296c0e9de968b87903538b535a1e2b7910d11
MD5 e4e320bac5a1ed09c50e67a2c426b67c
BLAKE2b-256 e8f62fdc0c9590c1e686ea93f7007936f46f4e42824c398f4a5e54c39b669de5

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.15.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.15-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for jacs-0.9.15-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7588a334eece18425b24a1c50ae89f293fd5874ee54bae673e0b6823c28c9109
MD5 1a802df1a0c054294dba7c6541cc42c9
BLAKE2b-256 2490b773fe1d3bd4276988e55dfdd2c0a469bbb07ad2677557dfa22f6a79c223

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.15-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.15-cp310-abi3-manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for jacs-0.9.15-cp310-abi3-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 f90d26c593417b19cf25a9cf01d271e9e2cd3d21f8ce5aa0a7b1f805e073b7b0
MD5 63f1804f270e6ea8b85bd9489450bf85
BLAKE2b-256 03971e51c3b82f3699c861c42beab99d8b9758ca24c6fde5bf04e07cbd1a05f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.15-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.15-cp310-abi3-manylinux_2_38_aarch64.whl.

File metadata

File hashes

Hashes for jacs-0.9.15-cp310-abi3-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 61ee0bb7cc33dd97cb5aced2d57dfc5a3f39196003225a6bf1e2b3ee15e98674
MD5 ff11459ef4e9bd4cf304a0062e10835f
BLAKE2b-256 c2a60ad0b88bcb0680b652d502fc64e00268321b3b986841ca5b3cfc7286a308

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.15-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.15-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jacs-0.9.15-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e602c62358df28ed6f9182f170ffda71b6d3e3a7b3585b74c12621fa806b528a
MD5 29b6c1e0035e84b3493a40542fe210d8
BLAKE2b-256 ad4008b8fd36c6f78fab6e5ab7f0a45f0833e398dc391f8878813bfdda9fd004

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.15-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.15-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jacs-0.9.15-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5b86622ca991a4ff6526a4650bcb366e67eb419c129b8b4738cf93e266ae96e4
MD5 70807d41f10b3e5891c99af836b39cb6
BLAKE2b-256 d62dfe529538ac50bcaa695686bea0d754352ceb2729d4f9885d979516a09ae8

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.15-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