A bsky bot to post Claude's status updates bsky.app/profile/did:plc:rsmddbe2aekcn6cam2gcgpno
TypeScript 100%

README.md

claude-status-bluesky #

Receives Atlassian Statuspage webhooks from status.claude.com and reposts incidents and scheduled maintenance to Bluesky, threading multi-update incidents as replies.

Setup #

  1. Copy .env.example to .env and fill in:
    • BLUESKY_SERVICE — PDS URL (e.g. https://pds.finxol.eu)
    • BLUESKY_IDENTIFIER — bot DID or handle
    • BLUESKY_APP_PASSWORD — app password (Settings → App Passwords)
    • WEBHOOK_TOKEN — a long random string (the only webhook auth)
  2. Subscribe on status.claude.com → Subscribe to Updates → webhook, URL https://<host>/webhook/<WEBHOOK_TOKEN>.

Run #

deno task dev     # watch mode, loads .env
deno task start    # production
deno task test     # unit tests
deno task check    # typecheck

State (idempotency, thread map, cached session) is stored in Deno KV. Deploy target: Deno Deploy (KV is built in).

Behaviour #

  • Posts incident lifecycle updates and scheduled maintenance (scheduled/in_progress/completed); skips verifying, backfilled, and all component_update events.
  • Compact one-liner: {emoji} [{status}] {name} — {body} status.claude.com (link deep-links to the incident). Emoji: 🔴 critical · 🟠 major · 🟡 minor · 🔧 maintenance · 🟢 resolved.
  • Posts synchronously, returns 200 only on success, 502 on failure so Statuspage retries; Deno KV idempotency prevents duplicates.