beeps

changelog

A dashboard that answers the 3am question

The web dashboard was rebuilt around what you actually want to know: is anything on fire, and who’s got it?

  • Overview — active alerts with acknowledged state and age, plus who’s on call per schedule and when they hand off. Auto-refreshing.
  • Terminal-first — every section shows the CLI command that produces the same data, and management actions point you at copyable beeps commands. The dashboard is a window; the terminal is the tool.
  • Cleaner settings — your profile and contact methods under settings; members, access tokens, and billing under organization.

CLI v0.0.18 — the full on-call loop

@beepsdev/cli v0.0.18 closes the loop: everything a human on-call needs, without leaving the terminal.

  • Contact methodsbeeps contact-method add --transport sms --value +1... registers your phone (reply YES to verify). CLI-only setups can finally receive beeps.
  • Finish or hand back alertsbeeps alert done (optionally with --pr-url) and beeps alert drop. If the last responder drops an unresolved alert, escalation automatically re-arms so nothing sits abandoned.
  • Friendlier defaultsbeeps schedule add-member with no flags adds you; beeps integration create --provider cursor reads CURSOR_API_KEY automatically; schedule commands echo the next handoff in your local time (schedule times are UTC).
  • Fixesrelay rule create --config no longer collides with the global config-file flag.

The quickstart was rebuilt around this: install to your-phone-buzzing in seven copy-pasteable steps, with AI agent responders as the next step after.

Terminal window
npm install -g @beepsdev/cli@latest

Better alerts from any payload

Ingest got smarter about turning whatever your tools send into useful alerts.

  • Any content type — JSON bodies parse regardless of the Content-Type header, so curl -d without headers still produces structured alerts. Unparseable text becomes an alert titled from its first line instead of a generic placeholder.
  • Provider pinning — pin a webhook to a payload format with beeps webhook set-provider --provider custom so auto-detection never rewrites your custom payloads (or pin sentry, datadog, axiom, prometheus explicitly).
  • Severity fidelity — Prometheus severity: error maps to high (was medium), page to critical, warn to medium; Datadog normal/low priorities map sensibly.
  • Duplicate handling — resolved alerts no longer swallow new occurrences: if the same issue fires again after you resolve it, you get a fresh alert.

Timed escalation and delivery confirmation

Escalation in beeps is now durable, timed, and honest about whether anyone was actually reached.

  • Timed escalation — relay rules accept --delay <minutes>, so a backup notification only fires if the alert is still unacknowledged. Relays take --repeat once or --repeat all to re-run the plan while nobody has responded.
  • Durable execution — escalations run through a persistent job queue with retries and automatic recovery, so a restart or crash can’t drop a beep.
  • Delivery confirmation — SMS notifications are now carrier-confirmed: delivered means the phone received it, failed includes the carrier error. beeps alert notifications --alert-id <id> shows every notification for an alert with its delivery status.
  • Honest webhook responses — ingest returns real status codes (401 for bad keys, 429 with Retry-After, 500 on failure) and a response body with the created alert ids and any warnings.

SDK v0.0.16

@beepsdev/sdk v0.0.16 is out on npm with bug fixes and improved error messages.

  • Errors now surface the agent support channel — every API error carries the agent_support reporting hint from the API (also exposed as error.agentSupport), so AI agents using the SDK know where to report problems: https://beeps.problems.dev
  • Better error outputtoString() on SDK errors includes the support channel alongside the error code, status, and request ID
  • Bug fixes — assorted fixes and documentation updates
Terminal window
npm install @beepsdev/sdk@latest

Read more at: https://www.npmjs.com/package/@beepsdev/sdk


Agent integration updates

We’ve been re-verifying the agent integrations end to end and tracking upstream API changes along the way.

  • Devin v3 — auth moved to cog_* service-user tokens with org-scoped sessions. beeps discovers your org automatically and validates the token when you create the integration, so a bad token fails immediately instead of on your first alert
  • Cursor Cloud Agents v1 — support for the new runs model: execution status and PR links are now read from per-prompt runs, so beeps follows agents accurately through to the opened PR
  • More reliable polling — OpenCode session status now comes from the right endpoint, AWS DevOps polls correlate to the correct incident across all task statuses, and polling errors no longer strand responders

Read more at: https://beeps.dev/docs/agent-integrations/overview/


Claude integration

Claude is the latest addition to the agent integrations lineup. It hooks in through a workflow file you keep in your repo: when an alert routes to a Claude relay rule, beeps triggers anthropics/claude-code-action, Claude opens a PR, and beeps follows the run until it lands.

  • Powered by anthropics/claude-code-action — runs Claude Code inside your CI
  • Per-repo metadata — owner, repo, workflow file name, and branch prefix live on the integration
  • Auth — fine-grained GitHub PAT with actions: write, actions: read, and pull-requests: read
  • Relay ruleagentType: "claude" plus the integration ID

Workflow template’s in the docs.

Read more about agent integrations at: https://beeps.dev/docs/agent-integrations/overview/


OpenAI Codex integration

OpenAI Codex is now wired up as an agent integration. The setup runs Codex inside your repo’s GitHub Actions: an alert hits a relay rule, beeps fires the workflow you’ve added, Codex opens a PR with the fix, and beeps watches the run through to the end.

  • Runs in your CI — Codex executes inside your repo’s GitHub Actions, so secrets and credentials stay there
  • Per-repo metadata — owner, repo, workflow file name, and branch prefix live on the integration
  • Auth — fine-grained GitHub PAT with actions: write, actions: read, and pull-requests: read
  • Relay ruleagentType: "codex", with pollInterval higher than the cloud-API agents since Actions runs take a few minutes

Copy-paste workflow template is in the docs.

Read more about agent integrations at: https://beeps.dev/docs/agent-integrations/overview/


AWS DevOps Agent and OpenCode integrations

We’ve added two more agent integrations for relay rules, so you can route alerts into either one the same way you already route into Devin or Cursor.

  • AWS DevOps Agent — sends the alert to an Agent Space webhook and polls backlog task status via the AWS SDK. HMAC or bearer webhook auth, plus IAM credentials (with optional STS AssumeRole for cross-account).
  • OpenCode — connects to a self-hosted OpenCode server, creates a session, and dispatches the alert as an async prompt. HTTP Basic auth, optional model pinning via openCodeModel.

Both follow the same storm detection and dedup behavior as the existing agents, so nothing changes in how you write rules.

Read more about agent integrations at: https://beeps.dev/docs/agent-integrations/overview/


beeps cli released

We’ve shipped @beepsdev/cli on npm, so you can run your on-call from a terminal instead of clicking around the web app or writing SDK scripts.

Terminal window
npm install -g @beepsdev/cli

It covers relays, schedules, alerts, integrations, and agent jobs:

  • Triage alerts in-flightbeeps alert list --active, beeps alert on-it, beeps alert resolve, plus beeps alert responders and beeps alert agents to see who (and which AI agents) are working on it
  • Manage your rotation — create schedules, add members, drop in PTO overrides, check who’s on-call right now (beeps schedule on-call)
  • JSON output — every command takes --json so you can pipe through jq and script around it
  • Infrastructure as code — define relays in YAML, then beeps relay plan / apply / export to keep your on-call setup version controlled. beeps relay lint and beeps relay simulate catch misconfigs before they beep someone at 3am

Read more at: https://beeps.dev/docs/using-beeps/cli/


schedule handoff changes

As we’ve been rolling out beeps to users, we’ve noticed there were some ergonomics in our SDK/API that needed cleaning up, namely properly defining handoff days and times. We previously called these startDay and startTime but now are more properly handoffDay and handoffTime.

In addition, we’ve made over 25 small fixes to improve the experience of using beeps on the web frontend during on-boarding. Please reach out to help@beeps.dev if you run into any problems and we’ll fix asap!


beeps-terminal released

We’re notably building beeps without a user interface, instead building on developer paradigms for access so that developers and agents interact with beeps in a common way.

It’s a bit fun in 2026 to have a terminal experience, so we’re releasing the beeps-terminal as both a reference project for using the @beepsdev/sdk as well as an interactive ui for developers to use while they’re on-call with beeps.

Learn more at: https://beeps.dev/docs/using-beeps/terminal/


Alert storm detection

beeps now automatically detects alert storms: bursts of related alerts that fire within a short window. Instead of triggering a fix by an agent every time, storm detection groups them and makes sure you don’t waste tokens or agent effort.

  • Automatic grouping — alerts from the same service within a configurable time window are collapsed
  • Storm summary — responders see a count and breakdown instead of a flood of beeps
  • Configurable thresholds — set the alert count and time window that triggers storm mode

Read more about alert storms at: https://beeps.dev/docs/alert-storms/overview/