This page answers the question every technically-minded person should ask before installing any Gmail extension: exactly what does this thing do with my email?
Short answer: On the free tier, your email content never leaves your browser. The only data that reaches our servers is a one-way hash of the sender's email address — a 64-character hex string from which the original address cannot be recovered.
To score an email, AgentProof requests the following from the Gmail API:
This data is fetched locally by the Chrome extension using the OAuth token you granted. It flows directly from Google to your browser — it does not transit our servers.
All 23 detection signals run as TypeScript code inside the extension's service worker — the same Chrome process that runs locally. The signal computation happens entirely on your machine:
Scores are stored in chrome.storage.session (cleared when Chrome closes) and chrome.storage.local (your device only). Nothing is synced to Google or to us.
After scoring, AgentProof sends a SHA-256 hash of the sender's email address to our API to check cross-user network data. Example:
attacker@example.com → sha256(attacker@example.com) → 3d8f2a7c...
SHA-256 is a one-way function. The hash cannot be reversed to recover the original email address without a brute-force dictionary attack. We take additional steps: we do not store unhashed email addresses and do not log request sender IPs in association with hashes.
We send anonymised scoring events to PostHog for product analytics. These events contain: score bucket (0–30, 31–60, 61–100), tier classification, number of signals fired, and your subscription tier. No email addresses, no subject lines, no body content.
If you enable the "Deep Analysis" toggle in Pro settings, AgentProof sends the first 3,000 characters of the email body to our Cloudflare Worker, which forwards it to Anthropic's Claude API. This is the only scenario in which email content leaves your browser.
This feature is:
AgentProof requests two Gmail scopes at install time:
gmail.readonly — to read email headers and bodies for scoringcontacts.readonly — to check if a sender is in your Google Contacts (whitelist)Two additional scopes are requested only when you first use a feature that requires them:
gmail.modify — requested when you first enable auto-label or auto-archive (Pro). Used to apply Gmail labels and move emails to archive.gmail.settings.basic — requested when you first use Block Sender. Used to create a Gmail filter that skips future emails from that sender.We do not request these write scopes at install. Chrome will show a new consent dialog at the moment you choose to use these features.
["esp-fingerprint", "tracking-pixel"]) — not the email content that triggered themThe detection signal modules are the core of this product. We intend to open-source them — the signal logic that runs locally in your browser has no business reason to be proprietary. Watch the changelog for updates.
Try AgentProof free →