Skip to content
HumanAssistedPublic

About

HAI.AI JSON client libraries and the reference implementation of JACS (JSON Agent Communication Standard)

Resources

Security policy

Stars

10 stars

Watchers

0 watching

Forks

Latest commit

 

History

1,004 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JACS: signed JSON for agents

JACS gives agents a persistent cryptographic identity to sign JSON and verify messages, artifacts and identity updates. New identities use pq2025 (ML-DSA-87); classical algorithms require an explicit choice, with no automatic fallback. Keep the same key across sessions; rotate it deliberately with a signed identity transition.

Start with MCP. For direct service integration, jump to DID and post-quantum identity, A2A, or Rust, Node.js, Python and Go.

Quick setup

Install the CLI with Rust 1.97 or newer and start the local MCP server:

cargo install jacs-cli --locked
jacs mcp

For clients that use mcpServers, add:

{
  "mcpServers": {
    "jacs": { "command": "jacs", "args": ["mcp"] }
  }
}

The default server exposes jacs_verify_document over stdio. Verification uses an independently trusted public key; check the returned valid field. A valid signature establishes integrity under that key, not permission to act. See client setup and local signing, MCP use cases, and the tool contract.

To create an encrypted identity and sign locally from a terminal:

mkdir -m 700 .jacs
jacs create --output .jacs/agent.json > public-identity.json
printf '%s' '{"message":"hello"}' | jacs sign --agent .jacs/agent.json --input - > signed.json
jacs verify --public-identity public-identity.json --input signed.json

The CLI prompts for a password. Local MCP signing is an explicit opt-in: jacs mcp --profile local-sign --agent .jacs/agent.json. Passwords belong in the terminal or the host's secret manager, never command arguments or MCP tool parameters. See the CLI guide.

DID, A2A and direct libraries

DID and identity standards explains how the native signing key appears in did:wba, JWK/JWKS and signed Agent Cards, including ML-DSA-87 support and explicit ES256 compatibility. These integrations belong to the native library workspace; the portable MCP server has no DID resolver or A2A transport. The A2A quickstart covers discovery, signed artifacts, explicit A2A 1.0 Node/Python APIs and current SDK examples.

Integration Install / guide
Native Rust jacs = "=0.16.1"; library guide
Node.js npm install --save-exact @hai.ai/jacs@0.16.1
Python python -m pip install jacs==0.16.1
Go CGo and native library setup
Browser WASM package and encrypted storage
Extended CLI / MCP cargo install jacs-cli-compat --locked; executable jacs-compat; profiles

Native packages remain supported in the separate archive/native workspace. Its directory name does not retire those APIs. See all packages and platform coverage and examples.

Published packages and this checkout can differ. Version 0.16.1 has a recorded release inventory. Version 0.16.0 is the first release whose source includes the native PQ identity exports described in the identity integration guide. Later changes in this checkout are source work until a new release record lists them.

Build from source

cargo build --locked -p jacs-cli
cargo run --locked -p jacs-cli -- mcp
cargo run --locked -p jacs-core --example portable_quickstart
cargo test --locked --workspace

The active workspace is jacs-core, jacs-wasm, jacs-mobile, jacs-mcp and jacs-cli. Native Node/Python/Go builds use make build-jacsnpm, make build-jacspy and make build-jacsgo; make test-bindings tests installed consumers. See developer commands, shared Rust cache setup, development and releases.

Default PQ keys are encrypted at rest and software-held while signing. Hardware-backed custody does not imply hardware ML-DSA signing. Native private file operations enforce Unix owner-only permissions and fail closed where the required ACL adapter is unavailable. See security and the platform custody guide.

About

HAI.AI JSON client libraries and the reference implementation of JACS (JSON Agent Communication Standard)

Resources

Security policy

Stars

10 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages