A device is a robot's signing identity: a key (usually in its TPM) bound to one source_id. See Devices for the model.
list / get: devices with their keys and, once bound to the TPM, the hardware block (EK certificate, device certificate).
challenge: a single-use nonce. The device signs it; the CLI never holds device keys.
rotate-key / register-ak: post a device-signed request (public_key_pem, nonce, proof) produced on the device, from --file (- for stdin).
revoke / decommission: revoke the device, its keys and certificates; decommission also marks it decommissioned (end of life, RMA).
set-class: the class selects attestation reference values and firmware policies.
attestation: trusted, untrusted or unknown, the latest quote and the state history.
versions: agent and TPM firmware versions and boot digests seen.
certificates / ca / crl / cert-status: device certificates, the CA that issues them, its CRL and per-certificate status (ca, crl and cert-status need no credential).
factory-eks: EK certificates captured at manufacture, by device serial; binding a device with that serial must present the same EK.
# Devices and their statephywareclouddeviceslist
phywareclouddevicesattestation3f2c0a1e-...-ojson|jq-r'.state'# Rotate a key with a request the device signedphywareclouddeviceschallenge-ojson|jq-r.nonce# give it to the devicephywareclouddevicesrotate-key3f2c0a1e-...--filerotate.json
# Retire a unitphywareclouddevicesdecommission3f2c0a1e-...--reason"RMA 42"# Check a device certificate offlinephywareclouddevicesca>ca.pem&&phywareclouddevicescrl>devices.crl
opensslverify-crl_check-CAfileca.pem-CRLfiledevices.crldevice.pem
Use --output json and jq. Read commands need devices:read; changes need devices:write. ca, crl and cert-status are public. Never ask the CLI to sign for a device: device keys stay in the device's TPM.