How not to get pwned
The board tells you what's on fire. This page tells you whether it's your fire, and what to do about it. Five steps, most of them under a minute.
-
Tell us your usual
Pick what you run. The board, the fire, the feeds and the badge shrink to just that. It lives in a cookie on this device. No account, no email.
-
Check your lockfiles right now
Drop or paste a lockfile. You get a receipt with the exact upgrade command for anything affected. Nothing is stored. We read it, we check it, we forget it.
-
Put it in CI
The same check from a terminal. Send any number of files with
-F.curl -sS -F f=@package-lock.json https://pwned.coffee/api/checkOr let GitHub Actions run it on every pull request and every morning. It fails the build when something you ship is affected and prints the receipt in the log.
name: pwned.coffee on: pull_request: schedule: - cron: "17 7 * * *" # every morning, with your coffee jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # pin this to a full commit SHA. We would. - name: Check lockfiles against today's specials run: | args=() while IFS= read -r f; do args+=(-F "f=@$f;filename=$f"); done < <(git ls-files | grep -E '(package-lock\.json|yarn\.lock|pnpm-lock\.yaml|bun\.lock|requirements.*\.txt|poetry\.lock|uv\.lock|Pipfile\.lock|go\.sum|Cargo\.lock|composer\.lock|Gemfile\.lock|Dockerfile|\.github/workflows/.*\.ya?ml)$') curl -sS --fail-with-body "${args[@]}" "https://pwned.coffee/api/check?fail=1"Save it as
.github/workflows/pwned-coffee.yml. -
Let your agent do it
Cursor, Codex, Claude Code, Gemini CLI, Windsurf and Zed can read your whole repo, send it to our MCP server in one call and propose the upgrades as a diff.
https://pwned.coffee/mcpclaude mcp add --transport http pwned-coffee https://pwned.coffee/mcpEvery tool, and prompts to paste. Want a full audit, not just dependencies?
npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit -
Keep an eye on it
Feeds for your usual, for a reader, a Slack bot or a cron job.
/feed.xmlRSS/incidents.jsonJSON, with?since=24hfor what changed
And a badge for your README that goes red when your stack does.
[](https://pwned.coffee/menu/nextjs)
The barista's house rules
- Patch what is exploited first.A critical nobody is using can wait until after lunch. An exploited high cannot.
- Pin GitHub Actions by commit SHA.Tags can be moved. Ask anyone who used tj-actions.
- Keep admin panels off the internet.If it has a login page and a version number in the footer, someone is scanning it right now.
- Rotate after a supply-chain scare.If a package you run went bad, the tokens it could read went bad with it.
- Turn on MFA everywhere it exists.Especially the boring places: registry, DNS, cloud console.
- Do not deploy on Fridays.Patching on a Friday is allowed. Encouraged, even.