Metadata-Version: 2.4
Name: jacs
Version: 0.9.13
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: fastapi>=0.115.0,<1.0.0 ; extra == 'a2a-server'
Requires-Dist: uvicorn>=0.30.0 ; extra == 'a2a-server'
Requires-Dist: jacs[mcp,ws,langchain,langgraph,crewai,fastapi,anthropic,a2a,a2a-server] ; extra == 'all'
Requires-Dist: anthropic>=0.79.0 ; extra == 'anthropic'
Requires-Dist: crewai>=1.9.0,<2.0.0 ; extra == 'crewai'
Requires-Dist: fastapi>=0.115.0,<1.0.0 ; extra == 'fastapi'
Requires-Dist: starlette>=0.37.0 ; extra == 'fastapi'
Requires-Dist: langchain>=1.0.0,<2.0.0 ; extra == 'langchain'
Requires-Dist: langgraph>=1.0.0,<2.0.0 ; extra == 'langgraph'
Requires-Dist: fastmcp>=0.1.0 ; extra == 'mcp'
Requires-Dist: websockets>=13.0 ; extra == 'ws'
Provides-Extra: a2a
Provides-Extra: a2a-server
Provides-Extra: all
Provides-Extra: anthropic
Provides-Extra: crewai
Provides-Extra: fastapi
Provides-Extra: langchain
Provides-Extra: langgraph
Provides-Extra: mcp
Provides-Extra: ws
Summary: JACS - JSON AI Communication Standard: Cryptographic signing and verification for AI agents.
Keywords: cryptography,signing,verification,ai,agents,mcp,langgraph,langchain,crewai,fastapi,data-provenance,a2a,agent-to-agent
Author-email: "HAI.AI" <engineering@hai.io>
License: Apache-2.0 OR MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/HumanAssisted/JACS
Project-URL: Issues, https://github.com/HumanAssisted/JACS/issues

# JACS Python Library

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

```bash
pip install jacs
```

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

[Full documentation](https://humanassisted.github.io/JACS/) | [Quick Start](https://humanassisted.github.io/JACS/getting-started/quick-start.html)

## Quick start

```python
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

```python
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

```bash
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:

```python
from jacs.client import JacsClient

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

See [DEVELOPMENT.md](https://github.com/HumanAssisted/JACS/blob/main/DEVELOPMENT.md) for the full API reference, advanced usage (agreements, A2A, attestation, headless loading), framework adapter examples, and testing utilities.

## Links

- [JACS Documentation](https://humanassisted.github.io/JACS/)
- [Verification Guide](https://humanassisted.github.io/JACS/getting-started/verification.html)
- [Framework Adapters](https://humanassisted.github.io/JACS/python/adapters.html)
- [Source](https://github.com/HumanAssisted/JACS)
- [Examples](./examples/)

