cardcheck
cardcheck tells you whether your agent should trust an A2A (Agent2Agent) peer, by checking its agent card.
vulkro-live cardcheck example.com
vulkro-live cardcheck https://agents.example.com/.well-known/agent-card.json
vulkro-live cardcheck --file ./agent-card.json # nothing leaves the machine
cat card.json | vulkro-live cardcheck --file -
$ vulkro-live cardcheck --file ./agent-card.json
AVOID (local card)
identity declared 'acme-support-agent' for https://agents.acme-corp.example/a2a
signature absent
provider Acme Corp
findings:
HIGH skills[0].description the text contains an instruction-injection phrase: "ignore previous"
HIGH skills[0].description the text contains an instruction-injection phrase: "do not mention"
LOW unsigned card is unsigned: it cannot be cryptographically bound to its domain
An A2A agent publishes a card at /.well-known/agent-card.json. cardcheck fetches it (or reads a local file) and checks:
- Identity: does the host that served the card match the origin it claims? A different domain is a HIGH impersonation signal.
- Injection: every text field (name, description, skills), with
warden's checks. - Look-alike names: mixed scripts or look-alike characters in the agent and provider names.
- Capabilities and provider: informational.
cardcheck reports only whether a signature is present and well-formed. It does not verify signatures cryptographically and never says one is valid.
Flags
| Flag | Effect |
|---|---|
[TARGET] | A host, an https URL, or a full well-known card URL. Omit with --file |
--file <file> | Read a local card instead of fetching; - reads stdin |
--no-cache | Skip the local cache |
Exit codes: 0 GREEN, 1 REVIEW or AVOID, 2 error. Output is text only (no --format).