Skip to main content
Back to OpenA2A

Privacy Policy

OpenA2A is a security platform. We treat data the way we wish every tool we audit treated ours. This page is the canonical statement of what we collect and why; the technical detail and exact wire shapes live on the data transparency page.

Two buckets, two consent shapes.

We separate invocation telemetry (which CLI ran which command on which platform) from scan-result contribution (the names of packages you scanned and the verdicts that came back). They collect different data, ask for different consent, and are controlled by different switches.

Read the rest of this page if you want the policy. The data transparency page has the wire shapes, retention, and deletion procedure.

Bucket 1: Invocation telemetry

What it is. Usage data: which CLI tool ran (e.g. hackmyagent, opena2a, ai-trust), which subcommand was invoked, the tool version, success/failure, duration, and platform (OS family + Node major version). Each event carries an install ID, used to count each machine once. The install ID identifies the machine, so this is personal data. It is a SHA-256 hash, computed without a secret key, of the operating system's machine identifier (the machine-id on Linux, the hardware UUID on macOS, the MachineGuid on Windows) or, where none can be read, of the hostname, the platform and the Node.js major version. Anyone who knows that identifier or the hostname can compute the same ID, and hackmyagent, opena2a and ai-trust all send the same one. Where neither the identifier nor the hostname can be used, the ID is random, and an ID already saved on the machine is kept: secretless-ai, dvaa and earlier releases of the other tools save a SHA-256 hash of the platform, the Node.js major version, the npm cache folder's path and the 30-day period in which that folder last changed, or, where that folder is missing, a random value. The events do not contain your name, email address, IP address, file contents, package names or scan results.

Default state. On. We use it to track which commands users actually run, so we can prioritize bugs and keep unused features from rotting.

How to disable. Set the environment variable OPENA2A_TELEMETRY=off in your shell profile, or run the per-tool subcommand: hackmyagent telemetry off or ai-trust telemetry off. Either path persists the choice across sessions. The variable turns telemetry off only when its whole value is off, 0, false or no, in any letter case. In current releases a value with anything else in it, such as off followed by a space or by a carriage return from a Windows line ending, leaves telemetry on, and DO_NOT_TRACK is not read. With telemetry off no telemetry is sent, but current releases still compute the install ID and save it in ~/.config/opena2a/telemetry.json (or under $XDG_CONFIG_HOME/opena2a when that is set) on the first run.

Bucket 2: Scan-result contribution

What it is. When you scan an npm/PyPI package, a GitHub repo, or a skill/MCP artifact, the result of that scan (package name + version + check IDs that fired + verdict) can be submitted to the OpenA2A Registry. The Registry is the public community-trust signal that other users see when they query the same package. Contribution does not include file contents, source code, or anything from outside the scan target.

Default state. Off. We prompt once on your first local scan and persist your choice. There is no contribution without explicit opt-in.

How to disable per scan. Run secure, detect or scan-soul with the --no-contribute flag. The scan runs locally and nothing leaves your machine for that invocation. For every command, including check, use hackmyagent telemetry off.

How to disable globally. Run hackmyagent telemetry off (or the equivalent on ai-trust, or opena2a config contribute off). The disable applies to scan-result contribution only, separately from invocation telemetry.

Silent post-consent

Once you have opted in to scan-result contribution, our CLIs do not announce each contribution. There is no per-scan "sent to registry" line, no progress chatter, and no banner. Consent was given once; subsequent contributions are silent. To re-confirm or revoke, run the disable commands above. This rule was locked in our public telemetry policy on 2026-04-27.

Third parties

Invocation telemetry is sent to a telemetry endpoint we operate. Scan-result contributions go to the OpenA2A Registry, which is also our infrastructure. We do not sell, rent, or share your data with third-party advertisers, brokers, or analytics resellers. If you allow analytics on this website, Google Analytics receives the measurements the website analytics section below describes. Call bookings go through Cal.com; the inquiries section below describes what it receives.

If you subscribe to our newsletter, the email address you give us is stored in a database we operate, together with the exact consent wording you agreed to at signup. That wording, shown on every form, says that OpenA2A may email you about security research, tools, and events.

You can withdraw that consent at any time on the unsubscribe page. Unsubscribing puts a fingerprint of the address, not the address itself, on a do-not-email record we keep. To have the address deleted outright, email info@opena2a.org and we will remove it.

Some pages on this website embed standard infrastructure (e.g., font hosting, code-block syntax highlighting). Those are content-delivery dependencies, not analytics integrations. The only analytics service on this website is Google Analytics, which loads only if you allow it and is described in the next section. Our primary deployment platform is Vercel, which logs request metadata (timestamp, route, status code) for site reliability. That is standard hosting telemetry and outside the two-bucket scope above.

Website analytics

This website uses Google Analytics, a web analytics service operated by Google, to measure how the site is used, and only if you allow it. It is separate from the two buckets above, which cover the CLI tools.

What it measures. The pages of this site you view, and some of what you do on them, including which of the tracked links and buttons you click (such as the header and docs menus and links to other sites), which command you copy with a click-to-copy command button, and whether a newsletter or unsubscribe form was sent, refused or failed. A form measurement names the form and where it sits on the page, and can carry the status code of a failed request or the time from your first keystroke to sending; it does not carry the email address you typed.

Who processes it. Google processes these measurements for OpenA2A: it receives them, stores them and turns them into usage reports. Google says that on a site using Google Analytics your browser sends Google the URL of the page you are on and your IP address, and that Google may set cookies in your browser or read ones already there. Google describes what it collects and how it uses it in How Google uses information from sites or apps that use our services.

When it loads. Google Analytics loads only after you press "Allow analytics" in the banner at the bottom of the page. Pressing "Decline" stores a refusal instead, and until you choose, or while a refusal is stored, the site does not load it. Your choice is kept in this browser's local storage under the name opena2a-analytics-consent, as granted or denied. While a choice is stored, the banner shows only when you ask for it.

How to change it. Press "Analytics settings" at the bottom of any page. It shows the banner again, saying which choice is stored, and the button you press there replaces that choice.

Retention and deletion

Invocation telemetry is retained in aggregate. Individual events roll up to weekly counters; raw event records are dropped after 30 days.

Scan-result contributions are retained as long as the package exists in the Registry. The Registry is a public community-trust dataset; the data you contribute is part of it.

To remove a specific scan you contributed, email us with your install ID (visible in any local hackmyagent telemetry status output). We can drop the records linked to that ID without affecting the rest of the Registry.

Inquiries and booked calls

Inquiries reach OpenA2A by email to info@opena2a.org, by booking an intro call from the contact page, or by booking a pilot discussion from the pilot program page or the GSX page. OpenA2A uses an inquiry only to reply to it and, for the pilot program, to scope the pilot. Inquiry emails and bookings are kept for 12 months after the last exchange and then deleted, or sooner on request, and are not shared with any other organization. Records of a pilot that goes ahead are kept under that pilot's contract instead.

Bookings are made through Cal.com, a scheduling service operated by Cal.com, Inc. in the United States. A booking sends the name, email address, organization, chosen time, and any notes or guest addresses entered to Cal.com, which stores them on OpenA2A's behalf, places the call in the OpenA2A calendar, and sends the confirmation emails. The call runs on Cal Video, Cal.com's video service, and is not recorded. Cal.com's handling of this data, including the subprocessors it uses, is described in its privacy policy. OpenA2A deletes the booking record and the calendar event 12 months after the last exchange, or sooner on request.

Access and deletion requests for inquiry emails and bookings go to the same address and are answered within 30 days.

Children

OpenA2A tools are developer tools and are not directed at children under 13. We do not knowingly collect data from children.

Changes to this policy

Material changes (anything that adds a new data category, expands retention, or changes a default) are announced on the OpenA2A blog and in the relevant CLI release notes before they take effect. Wording changes that do not alter what we collect or how long we keep it are made silently with the "Last updated" date below.

Contact

Questions about this policy or about your data?

Last updated: October 21, 2026.

October 21, 2026: Added the website analytics section. The page did not mention Google Analytics, which this website loads once a visitor allows it. The new section names it, says what it measures, when it loads and where the choice is kept, and how to change the choice with the Analytics settings control. The third parties section and the paragraph on embedded infrastructure now refer to it.

September 30, 2026: Corrected the description of invocation telemetry. It described the usage data as anonymous and said it carried no personally identifying information. Each event carries an install ID that identifies the machine, so the data is personal data. The section now says how the ID is made, which values of OPENA2A_TELEMETRY turn telemetry off, and that current releases save the ID locally even when telemetry is off. The May 2026 change to how the ID is made is described in A late notice about the telemetry install ID.