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.18.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.18-py3-none-any.whl (41.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: qntm-0.4.18.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.18.tar.gz
Algorithm Hash digest
SHA256 061ea8bf48ce93f3c87bc176798b6c08fe4fac55b44b940320d37ba222377c6d
MD5 8f529298d186975f022bc81d00bc0f6c
BLAKE2b-256 dcda2f7d6c8489fd68b58ba5597d2d89dc4923453b337d1e3bd9b1b1e14ece32

See more details on using hashes here.

Provenance

The following attestation bundles were made for qntm-0.4.18.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.18-py3-none-any.whl.

File metadata

  • Download URL: qntm-0.4.18-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.18-py3-none-any.whl
Algorithm Hash digest
SHA256 a21d0c58520c37b6b8d766f1fc0129338fb665f9ba0a68850b1bfba80413d8b2
MD5 42e500098b81c128f44150fcb4e9f1f9
BLAKE2b-256 152b31ef39c0d741c2bc4f065cc7a1f8397b80bce631655d0c32c8111bcbb65e

See more details on using hashes here.

Provenance

The following attestation bundles were made for qntm-0.4.18-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