Skip to main content

q-armor-cli

q-armor: post-quantum posture of any TLS endpoint, from your terminal, in one command.

PyPI Python Licence

The traffic your validator is emitting right now is being recorded by somebody who cannot read it yet. Harvest Now, Decrypt Later is the one attack you cannot respond to after the fact, because the copy was taken years before the key broke. The first useful question is simple: what is this endpoint actually negotiating?

pip install q-armor-cli
q-armor scan example.com
hostname: example.com
port: 443
tls_version: TLSv1.3
cipher_suite: TLS_AES_256_GCM_SHA384
cert_key_type: rsa-2048
cert_issuer: DigiCert Inc
key_exchange_group: x25519
signing_algo: rsa
session_algo: x25519
vqs_score: 80
risk_tier: deny
consensus_weight_factor: 0.1
error: None

vqs_score is exposure, so higher is worse. RSA signing and an x25519 key exchange are both classical, both fall to Shor, and the consensus weight factor is what that costs a validator: one tenth of its vote.

Three commands

q-armor scan example.com            # post-quantum posture of a TLS endpoint
q-armor vqs <validator-id>          # a validator's VQS
q-armor proxy --port 8080           # start the protection proxy

Add --json to any of them and pipe it into whatever you already run.

Three, and the list is not a matter of taste: docs/priorities.md (P1-11) says that before writing a CLI you have to answer what an operator asks for, "because a CLI without that case is surface to maintain".

What it will not do

  • It does not reimplement detection. Every command consumes q-armor-lib. A second scanner here would be another producer of the key_establishment_class axis, diverging in silence.
  • It does not let telemetry block your answer. A scan reports what it measured even if the border is down, misconfigured or refusing on consent grounds. A command that failed because it could not report would be a command that lies about what it has measured. --no-telemetry turns the emission off outright.

Exit codes, so a script can tell the difference

Code Meaning
0 It measured the endpoint
1 Error
2 It could not observe the endpoint: that is a finding, not a broken command
3 vqs only: the local validator registry is not present

Code 3 is repository-root code (services/state/validator_store.py) that no wheel carries, so installed from PyPI the command says so by name with its own code instead of dying with an ImportError. It works from a checkout, until the registry moves to the platform's POST /validators (docs/priorities.md, P1-13).

The QArmor family

Five packages, one version, published together from a single tag.

Package What it is
q-armor-lib Detection, scoring and the control-plane client
q-armor-cli This one: q-armor, the operator's command line
q-armor-proxy Enterprise runtime: protection proxy, firewall, SIEM webhook
q-armor-chain DVN worker and QArmorDVN.sol
q-armor-pqc Interim ML-DSA-65 primitive

Next

Scanning is free. The collective canary network, real-time alerting and on-premise deployment are the paid tiers: idenq.io

Metadata

Release files for q-armor-cli 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for q-armor-cli 0.3.0
File Interpreter ABI Platform
q_armor_cli-0.3.0-cp313-none-any.whl CPython 3.13 none any Details
q_armor_cli-0.3.0-cp312-none-any.whl CPython 3.12 none any Details
q_armor_cli-0.3.0-cp311-none-any.whl CPython 3.11 none any Details

Total release size: 29.9 kB

Release files / q_armor_cli-0.3.0-cp313-none-any.whl

Download URL q_armor_cli-0.3.0-cp313-none-any.whl
Size 9.8 kB
Tags CPython 3.13
SHA-256 checksum
How to use checksums
f16b5d5bd968193f998860f5d552f06bcc420289579ed12491d3c545c6420c1f
BLAKE2b-256 checksum
How to use checksums
8c85983e70f1f0369772befcc2599b05b7a17147bee4c69c529c733528b51046
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Release files / q_armor_cli-0.3.0-cp312-none-any.whl

Download URL q_armor_cli-0.3.0-cp312-none-any.whl
Size 9.8 kB
Tags CPython 3.12
SHA-256 checksum
How to use checksums
a972551147d000b1a554e368e2b8333c4a4780eff0d5a512a5ea9074a1972030
BLAKE2b-256 checksum
How to use checksums
a5abf34227bf722e978fce38619b710cc866b7731fce6c5732b0ab8ff3074ddb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Release files / q_armor_cli-0.3.0-cp311-none-any.whl

Download URL q_armor_cli-0.3.0-cp311-none-any.whl
Size 10.2 kB
Tags CPython 3.11
SHA-256 checksum
How to use checksums
1c7ba71c842c8666dabf8ceb858d0909ab62516c513b6e9c7bb000728aa2ccf3
BLAKE2b-256 checksum
How to use checksums
99cf88cf54a7d9ab942ddfef3fb64542f9dcf82228be3266a90a7a8dc200dc37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.1

3 release files

This release

0.3.0 This release

3 release files

0.2.0

3 release files

0.1.2

3 release files

0.1.1

3 release files

0.1.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page