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.2.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.2.0
File Interpreter ABI Platform
q_armor_cli-0.2.0-cp313-none-any.whl CPython 3.13 none any Details
q_armor_cli-0.2.0-cp312-none-any.whl CPython 3.12 none any Details
q_armor_cli-0.2.0-cp311-none-any.whl CPython 3.11 none any Details

Total release size: 29.9 kB

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

Download URL q_armor_cli-0.2.0-cp313-none-any.whl
Size 9.8 kB
Tags CPython 3.13
SHA-256 checksum
How to use checksums
3f916a0cdb55812f83f2de1a07b905c6ab6ee7e3227c3149bcb8b7f0ae67b102
BLAKE2b-256 checksum
How to use checksums
43bab7d80015d68db661a7fdb89ee1691c4838670c5fdada0df9e639cbfbeff2
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.2.0-cp312-none-any.whl

Download URL q_armor_cli-0.2.0-cp312-none-any.whl
Size 9.8 kB
Tags CPython 3.12
SHA-256 checksum
How to use checksums
7c7ca45514b6a82206ced287d494b6a76247868474c547307ec30d1814120ed1
BLAKE2b-256 checksum
How to use checksums
a2e5dff5de4550e2235e65fdc639828330aff833957fd67dbee0517b17066bed
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.2.0-cp311-none-any.whl

Download URL q_armor_cli-0.2.0-cp311-none-any.whl
Size 10.2 kB
Tags CPython 3.11
SHA-256 checksum
How to use checksums
16bc3d37a227919e9c343fee60fc42d1a601ce732dcc865299697cf4edd1d6a0
BLAKE2b-256 checksum
How to use checksums
ad8adb3d72226cbb250287373abe3eb15fed976b9b516acd0a578b1da70e1947
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

0.3.0

3 release files

This release

0.2.0 This release

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