Leak a Resend Key Anywhere Public, and It Dies on Sight
Resend now kills working keys found in Docker images, datasets and packages, not just on GitHub, and one of the leaks it hunts is a Claude Code settings file.

On November 4, the email company Resend joined a new program run by Truffle Security. From now on, if a working Resend API key turns up in public, Resend turns it off right away. An API key is the password a program uses to talk to a service. Anyone who holds a Resend key can send email from that account's own domain.
Resend already did this for keys found on GitHub. It started in July through GitHub's scanning program, which watches public repositories and npm packages. The new program looks in places GitHub does not: Docker images (packaged copies of an app), Hugging Face datasets, PyPI packages, GitLab, Android apps and Firefox add-ons. Truffle Security's scanner, TruffleHog, tests every key it finds and reports only keys that still work. Resend says it disables each one when the report arrives and emails every admin on the account with a link to where it leaked.
Why kill keys instead of warning people? In its launch post, Truffle Security says 81% of the leaked keys it reported last year still worked six months later. It also reports that three of every four Resend keys it delivered came from Docker images, outside GitHub's reach. Vercel and Hugging Face, two more services Jon's agents use, are listed as partners too.
One finding lands close to home. The post says the company found a working token inside a .claude/settings.local.json file shipped in a public Docker image. That is a Claude Code settings file. Since January 2025 it has counted 2,655 working keys in the config files of AI coding tools.
Jon's systems send mail through Resend, and his agents fetch their keys from a vault when they run. But keys still get copied into config files on the machines that use them. Truffle Security makes the point in a post from October 29: the vault controls the key, but every copy works just as well. This program is a net for the copies.
How to use it
There is nothing to turn on. The catch is that a leaked key that also runs in production will stop working the moment it is reported, so emails from that app fail until a new key is in place.
- Give each app its own key. Resend's key guide shows logs per key and when each was last used, so one revoked key breaks one app, not all of them.
- Use
sending_accesskeys limited to one domain where you can. They can send mail but cannot create or delete anything. - Delete keys that have not been used in 30 days.
- Treat a revocation email as an alarm: find the leak from the link, then replace the key everywhere it was copied.
- Keep
.claude/settings.local.jsonand.envfiles out of Docker images and packages.
What nobody knows yet
How fast "as soon as the report arrives" really is. No outside test has timed it. The 1.4 million figure in the headline counts live keys found since 2022, not keys already revoked. And the program lets some issuers revoke on their own within 14 days, so not every partner moves as quickly as Resend says it does.
What to watch
Which of Jon's other tools join next. Truffle Security says 16 issuers have joined, and that it is holding 43,699 verified keys for companies that have not. The program page is where new partners will show up.
Sources
- TruffleHog Secrets Revocation Program (Resend changelog)Primary · Nov 4, 2026
- GitHub Secret Scanner (Resend changelog)Primary · Jul 16, 2026
- Secret scanning for partners (GitHub Docs)Primary · Nov 5, 2026
- Introducing the Secrets Revocation Program: revoking 1.4 million live secretsPrimary · Nov 4, 2026
- The Vault Governs the Secret. The Copies Still Work.Analysis · Oct 29, 2026
- Manage API keys (Resend docs)Primary · Nov 5, 2026
- Secrets Revocation Program (Truffle Security)Primary · Nov 5, 2026