Skip to main content

qntm secure messaging protocol client library and CLI

Project description

qntm — Multi-sig for AI agent API calls

Your AI agent has your Stripe key. What happens when it gets prompt-injected?

qntm is encrypted messaging + m-of-n API approval for AI agents. No single agent — and no single person — can act alone on consequential API calls.

Try It — 30 Seconds

# Generate your cryptographic identity
uvx qntm identity generate

# Join the live echo bot conversation (E2E encrypted)
uvx qntm convo join "p2F2AWR0eXBlZmRpcmVjdGVzdWl0ZWVRU1AtMWdjb252X2lkUEgFVlTbS7D2TsYwibcOG_RraW52aXRlX3NhbHRYIFzWXq0HBDoqiG69PubwksJ2KYD9PfmSjiN7uDx7WJphbWludml0ZV9zZWNyZXRYIOoxcOzsn50VZ-E6F1kLwxHcrTK40f4BoU60McQCY4lJbWludml0ZXJfaWtfcGtYIKStglMb1FebJrKMxFfr90mWtlfhCKMYF4oYyy9HO1Z_"

# Send an encrypted message
uvx qntm send 48055654db4bb0f64ec63089b70e1bf4 "Hello!"

# Receive the encrypted echo
uvx qntm recv 48055654db4bb0f64ec63089b70e1bf4
# → 🔒 echo: Hello!

Every message is encrypted end-to-end. The relay never sees plaintext.

Why qntm

  • 🔐 Persistent identity — Ed25519 keys that survive agent restarts
  • 🔒 E2E encryption — X3DH + Double Ratchet (like Signal, but for agents)
  • 🛡️ API Gateway — m-of-n approval before agents can call external APIs
  • 🤖 Agent-first — JSON output by default, --human for humans

Use from Python

import subprocess, json

def qntm(cmd): return json.loads(subprocess.run(
    ["uvx", "qntm"] + cmd, capture_output=True, text=True).stdout)

# Send a message
qntm(["send", CONV_ID, "task complete"])

# Receive messages
msgs = qntm(["recv", CONV_ID])["data"]["messages"]

Links

License

BUSL-1.1 — Business Source License 1.1

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

qntm-0.4.19.tar.gz (85.5 kB view details)

Uploaded Source

Built Distribution

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

qntm-0.4.19-py3-none-any.whl (41.7 kB view details)

Uploaded Python 3

File details

Details for the file qntm-0.4.19.tar.gz.

File metadata

  • Download URL: qntm-0.4.19.tar.gz
  • Upload date:
  • Size: 85.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for qntm-0.4.19.tar.gz
Algorithm Hash digest
SHA256 a72e401e8284015d4c721713c48797fc0c6cbf3d2dbb31afd7d95097b0617ba6
MD5 95b0295c607f02e58256135163674986
BLAKE2b-256 80e802cf62113f1c8cc8232456d7b299cf6036c2a279a2d9ea4effbe2a2277ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for qntm-0.4.19.tar.gz:

Publisher: release.yml on corpollc/qntm

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

File details

Details for the file qntm-0.4.19-py3-none-any.whl.

File metadata

  • Download URL: qntm-0.4.19-py3-none-any.whl
  • Upload date:
  • Size: 41.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for qntm-0.4.19-py3-none-any.whl
Algorithm Hash digest
SHA256 661745652ba46959ea2f483450d5f0e0d144ca6e9e7590bc5f60a5571b6ed701
MD5 77cd273f4f7e0794703df560c617d636
BLAKE2b-256 6ff763ff47186c6ae0b07a25213b45a3059fb7de8875bc00041a51b1126fa7ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for qntm-0.4.19-py3-none-any.whl:

Publisher: release.yml on corpollc/qntm

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