Detectors we use
What the circle is actually checking.
A flag is a score, and the score comes from these. Anything that says provenance ran and found a signal pushes the score to at least 90%. Otherwise the classifier, then the recheck, then the writing pattern blended with community reports decide it. The extension shows the circle at 70% and calls 40% to 70% uncertain; you can move the bar in settings.
Plain heuristics: sentence-length rhythm, vocabulary models overuse (“delve”, “tapestry”, “in today’s fast-paced world”), lists of three, em-dash density, markdown headings inside comments, the hedge-then-summary shape, and a suspicious absence of typos. Every triggered feature becomes a note in the card.
Watermark verification through whichever verifier exists. OpenAI’s public provenance endpoint reports SynthID and C2PA signals for OpenAI-made images. Google’s SynthID can only be read by Google, so Google-made images are caught by their Content Credentials signature and the classifier instead. Text watermarks are keyed and cannot be read outside the generator, so this detector reports itself as skipped for text.
Full validation, not just presence: the manifest is parsed, the claim signature and certificate chain are checked against the C2PA trust list, and the signer (Google, OpenAI, Adobe, Microsoft, Meta) and the declared source type are read. A trusted signature that says “trained algorithmic media” is the strongest signal we have, and it names the generator.
The Software, ImageDescription and CreatorTool fields, matched against known generators such as DALL-E, Midjourney, Stable Diffusion, Firefly, Imagen, Flux, Ideogram and Leonardo. Most platforms strip this on upload, so it fires less often than you would hope.
The IPTC/XMP DigitalSourceType field. “Trained algorithmic media” counts as a strong signal; “composite with trained algorithmic media” as a likely one.
A cache of verdicts keyed by a hash of the content. It holds earlier rechecks and the tally of people who reported the post as AI or as human. Nothing about who reported it is stored.
Pixel-level classifiers (Sightengine, Hive) that work when the metadata has been stripped. They return a probability and a best guess at which generator made the image. Calls are paid, so they are budgeted, and every result is cached for everyone.
A vision-language model looks at the post and answers a fixed rubric: hands, text, textures, lighting, stock-photo look, uncanny symmetry. It is a second opinion, not a verdict, and its answer is cached so nobody pays for the same post twice.
On the free tier the extension sends the text of a post and the URLs of its images to the API, plus the host of the page for site statistics. Nothing else. You can turn network detection off entirely and keep the on-device checks. Details are in the privacy policy.