q-armor-cli
q-armor: post-quantum posture of any TLS endpoint, from your terminal, in one command.
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 thekey_establishment_classaxis, diverging in silence. - It does not let telemetry block your answer. A
scanreports 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-telemetryturns 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)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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 logRelease 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