All integrations

Buildkite

Buildkite pipelines - pass/fail without touching pipeline.yml.

LiveCI / CDsigned URL
buildkite (running) Live Activity preview
what shows on your phone

Buildkite has a native outbound webhook system at the pipeline level. Chirp is a zero-code integration: paste the webhook URL, pick the events you want, and Chirp normalizes Buildkite's `build.scheduled` / `build.running` / `build.finished` events into a Live Activity.

Unlike GitHub Actions or CircleCI, you don't touch `pipeline.yml` at all. The webhook is a Buildkite UI setting and survives across pipeline rewrites. Buildkite signs every webhook with `X-Buildkite-Token`; the inspector key in the URL is the auth Chirp checks (so keep the URL secret), and the Buildkite token is informational metadata.

Prerequisites

  • Buildkite account with maintainer access on the pipeline.
  • A Chirp inspector / webhook URL - generate one at chirpapp.dev/dashboard.

Setup

  1. 1

    Open the pipeline notification settings

    Buildkite → your pipeline → Settings → Notifications. Click "Add Notification" and pick **Webhook** as the type.

  2. 2

    Paste the Chirp webhook URL

    Webhook URL: https://api.chirpapp.dev/v1/webhooks/buildkite?key=YOUR_KEY. Replace YOUR_KEY with the inspector key from your Chirp dashboard. Buildkite POSTs JSON; Chirp's normalizer maps the event onto the @buildkite schema automatically.

    shell
    https://api.chirpapp.dev/v1/webhooks/buildkite?key=YOUR_KEY
  3. 3

    Pick the events to forward

    Tick build.scheduled, build.running, and build.finished for the standard Live Activity flow. Optionally enable job.scheduled / job.started / job.finished for per-job updates on the activity timeline (useful for large pipelines with parallel jobs).

  4. 4

    Save + trigger a build

    Save the notification. The next build fires build.scheduled immediately, opening a card on your phone. The card updates as jobs run and closes green/red on build.finished. No code changes; no pipeline.yml edits.

What you’ll see

Card header: Buildkite green logo + "Buildkite · BUILDING" + pipeline name + branch. Action line shows the current job (`agent-1: pnpm test`). The activity timeline appends each `job.finished` event as a checkmark or X. On `build.finished`, the card closes with the build state - `passed` (green), `failed` (red), `canceled` (orange), `blocked` (yellow if waiting on a block step). Tap the card to deep-link to the build page in Buildkite.

Troubleshooting

Webhook saves but no card appears on a build.
Buildkite's notification is per-pipeline, not org-wide. Confirm the webhook lives on the specific pipeline that's running. Buildkite → Pipeline → Settings → Notifications → look for the chirpapp.dev URL.
Card opens but never closes.
You probably didn't enable build.finished. Without it, Chirp only sees scheduled + running events and waits forever. Re-edit the webhook and tick the finished event.
Card opens twice for one build.
If you have both an org-level webhook and a pipeline-level webhook pointing at the same Chirp key, Buildkite fires both. Remove one - pipeline-level is preferred (more granular).
External docs →