Skip to main content

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​

FlagEffect
[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-cacheSkip the local cache

Exit codes: 0 GREEN, 1 REVIEW or AVOID, 2 error. Output is text only (no --format).