For developers

CI/CD for developers: stop tab-switching to check builds

One live builds feed across every provider. Test failure detail in-line. Picture-in-Picture mode, Slack, CLI, and an MCP server for terminal-native flow.

cicd.watch/buildsLive

Pipelines · across every connected provider

build.ymlghplatform-api · main · 3m 02s
testghplatform-api · feat/cache · 1m 42s...
e2eghweb · fix/cart · 4m 18s · 1 test failed
build-and-testcirclecimobile-ios · main · 7m 04s
deploybbmobile · env:staging · 5m 41s

Feed · Test detail · Slack

Three capabilities that close your CI feedback loop

The chunks of context-switching that eat your day: 'did it pass', 'why did it fail', 'should I act now'. Three answers, one tab.

1

Cross-provider builds feed

Every pipeline run across every provider, in one live feed.

The builds feed aggregates pipeline runs from GitHub Actions, GitLab CI, Bitbucket Pipelines, CircleCI, Azure DevOps, and Jenkins into one view. Filter by organisation and status; the URL captures the filter so you can bookmark, e.g., “failures across the platform org”.

  • One feed across GitHub, GitLab, Bitbucket, CircleCI, Azure DevOps, and Jenkins
  • Filter by organisation and run status, URL-encoded for bookmarking
  • Each row links back to the provider's native run page when you need raw logs

Outcome: one tab replaces six. Filter to failures and you see what needs attention now.

What's needed: Your team needs the provider connected. You join the existing tenant.

cicd.watch/builds?status=failed

Builds · filtered to failed

e2eghweb · fix/cart-validation · 1 test failed
integrationghplatform-api · feat/cache · 2 tests failed
2 failing · filtered from 47 runs in the last 24hClear filters →
Filter by org and status; URL captures the filter so you can bookmark a view
2

Test failure detail in-line

Why it failed, without opening the provider UI.

JUnit-style test reports parsed automatically from your CI artifacts. Failed tests with their assertion message show in-line on the builds feed when you expand a run. Cross-reference against the flaky-tests view to see whether it's a new failure or a known intermittent.

  • JUnit / xUnit / TRX formats, native on pytest, jest, vitest, Go, .NET, Maven, Gradle
  • Assertion message shown in-line without leaving the page
  • Flaky-tests view ranks tests by failure rate and flip rate so you know what to expect

Outcome: 'why did it fail' answered without opening your provider's UI.

What's needed: Upload JUnit-style report as a CI artifact. Most stacks do this by default.

cicd.watch/builds

e2e · web · fix/cart-validation · 1 test failed

e2e/cart.spec.ts > checkout flow
AssertionError: expected $39.99, got $29.99
Open in GitHubSee flaky tests
JUnit report parsed; expand a run on the builds feed to see the failing test and its assertion message
3

Slack notifications + per-user preferences

Pipeline events in your team's Slack, with per-user opt-ins.

Slack notifications route by event type (pipeline-started, pipeline-failed, pipeline-succeeded, alert-triggered) to the channels your team picks at the tenant level. Each user additionally chooses in-app, Slack, or browser-tab delivery in their personal notification preferences.

  • Per-event-type channel routing at the tenant level
  • Per-user channel preferences (in-app, Slack, tab) for each event type
  • Link your Slack identity once to receive alert-triggered notifications directly

Outcome: the team sees failures in the channel; you keep your own preference for what hits in-app vs Slack vs tab.

What's needed: Slack workspace connected once by an admin (OAuth). You opt your channels in Settings → Notifications.

cicd.watch/settings/notifications

Notification preferences · per event

Channelpipeline-failed#team-eng
Channelpipeline-succeeded (deploys only)#team-eng
Channelalert-triggered#team-eng
DMIn-app + tab for pipeline-failed(your preference)
DMSlack DM for alert-triggered(your preference)
Tenant-level channel routing per event type; users opt into delivery channels independently

Same connect, more depth

How we work with developers

Three more cuts of the same data that pay off particularly well for the individual contributor flow.

Picture-in-Picture

Picture-in-Picture mode floats the feed above your editor

Browser-native PiP. Drag the floating window anywhere. See status changes the moment they happen without alt-tabbing away from your IDE. Chrome, Edge, Safari supported.

Live · Picture-in-Picturecicd.watch
build.yml3m 02s
testrunning...
See builds feed

Tab notifications

Browser tab as a notification channel

Use the favicon and title to signal pipeline state without alt-tabbing. Per-user opt-in alongside Slack and in-app. Useful for keeping CI awareness while heads-down in a different tab.

Tab title✓ cicd.watch
Tab title× (1) cicd.watch
Tab title… running cicd.watch
See notification preferences

CLI + MCP

CLI for terminal-native flow, MCP server for AI agents

Query pipeline status, DORA, and costs from your shell. Pipe into tmux, watch scripts, or your prompt. MCP server lets Claude, Cursor, or any agent answer 'is CI green' without leaving the chat.

$ cicd runs --status failed
web · fix/cart-validation
× e2e/cart.spec.ts
expected $39.99, got $29.99
$ cicd dashboard
status, DORA, costs in your terminal ✓
See the CLI

All from one connect

Plus the rest of the toolkit

Cross-provider feed and notifications are the lead for developers. Same login also gives you cost, DORA, stability, and a CLI / MCP if you want to wire it into your terminal or AI agent.

Builds feed

Live runs across every provider. Filter by org and status. Bookmarkable.

Slack notifications

Routed to channel or to you directly. Per-repo rules. Team tier.

Flaky tests

Per-test flake history. Know whether your failure is new or a known flake.

Stability classification

Pipelines classified healthy / flaky / broken so you don't chase a known-broken trunk.

DORA metrics

All five metrics including PR cycle time. Your team's delivery health at a glance.

Cost tracking

Compute and wait time per pipeline. Team tier.

CLI

Query pipeline status from your shell. Pipe it anywhere.

MCP server

Hook Claude, Cursor, or any agent into live pipeline state.

Pricing

Flat per tenant

Your team picks the tier; you join at no extra cost within the team-member cap. Free covers small teams getting started; Team and Business are flat monthly rates per tenant.

Free

For one team getting started with up to 3 repos.

$0/month
Start free
  • 3 repos
  • 1 team member
  • Cross-provider builds feed
  • Test failure detail in-line
  • Stability and DORA metrics
Most popular

Team

Flat rate per tenant. Up to 20 repos and 10 team members.

$29/month
Start Team trial
  • 20 repos
  • 10 team members
  • Everything in Free
  • Slack notifications, per-user preferences
  • Cost tracking, PR health
  • CLI, MCP server, Picture-in-Picture

Business

Flat rate per tenant. Up to 100 repos and 50 team members.

$99/month
Start Business trial
  • 100 repos
  • 50 team members
  • Everything in Team
  • Audit findings and cost-optimization opportunities
  • Priority support

Comparison

How CI/CD Watch compares for developer flow

What your provider's native tab already gives you, and where a dedicated developer-flow tool earns its keep. Headline pricing only; deeper comparisons live on the linked pages.

CI/CD WatchFree or $29 / mo flat (Team)
Native provider tabFree (included)
BuildPulseFrom $99 / mo (flat tier)See full comparison →
Datadog CI VisibilityFrom $8 / committer / mo + per-span overagesSee full comparison →
Cross-provider builds feedYes, one feedPer-provider onlyLimitedPer-pipeline trace
Test failure detail in-lineYes, JUnit parsedYes (provider-native)Yes, test-level depthYes, trace-based
Per-user notification preferencesYes (in-app / Slack / tab)Channel onlyNoPipeline alerts
Picture-in-Picture build feedYesNoNoNo
CLI for terminal-native flowYesgh / glab partialNoAPI only
MCP server for AI agentsYesNoNoNo

Competitor pricing reflects each vendor's published headline rate. Native provider tabs are free but scoped to a single provider; cross-provider work usually means juggling tabs.

1

feed across every provider

2 min

to sign in and pick repos

PiP

floats above your editor

Flat

per-tenant pricing

FAQ

Developer specifics

How long does setup take for me as a developer?
Two minutes. Sign in with GitHub (or your provider), pick the repos you care about, done. No agent in your CI runners, no config in your repo, no YAML edits. If your team is already on a paid tier, you join the existing tenant.
Does this slow down my builds?
No. CI/CD Watch reads pipeline state from your provider's API after runs complete. Nothing intercepts the build itself; no sidecar agents, no log shipping in the run. Your CI runs at the same speed it did before.
How do I filter the feed?
The builds feed supports filtering by organisation and run status (success, failure, in-progress, cancelled). Combine the two to see, e.g., 'failures across the platform org from the last hour'. Filters live in the URL so you can bookmark a view. Per-author filtering isn't in the feed yet; for personal scoping the CLI ‘cicd runs’ command and Slack notifications fill that gap.
How do Slack notifications work?
Slack is connected once at the tenant level via OAuth. You then choose which Slack channel receives which event type (pipeline-started, pipeline-failed, pipeline-succeeded, alert-triggered). Each user can opt in or out of in-app and Slack delivery per event type in their personal notification preferences. If you've linked your Slack identity, alert-triggered notifications can find you for runs you initiated.
Does it support Picture-in-Picture so I can keep an eye on builds?
Yes. The build feed supports browser Picture-in-Picture (PiP). The window floats above whatever you're working on so you see status changes the moment they happen. Works in Chrome, Edge, and Safari. Same view as the in-app feed, just smaller.
Is there a CLI for terminal-native flow?
Yes. The ‘cicd’ CLI exposes runs, dora, costs, performance, repos, connections, and a dashboard view from your terminal. Pipe it into tmux status lines, prompts, or watch scripts. Auth uses the same login as the web app. See /cli for the install command and full reference.
Can I see test failure detail without opening the provider's UI?
Yes when your CI uploads JUnit-style test reports as an artifact (default on most stacks: pytest, jest, vitest, Go, .NET, Maven, Gradle). CI/CD Watch parses the report and shows failed tests with assertion messages in-line on the builds feed. Click into a run to see per-test pass/fail with the failure message.
Does it work on mobile?
The web app renders on a phone. Useful when you've pushed before a coffee and want to check the result without opening a laptop. No native iOS or Android app yet.
How does pricing work?
Flat per tenant: $0 Free (3 repos, 1 team member), $29 Team (20 repos, 10 members), $99 Business (100 repos, 50 members). If your team has a paid plan, you join at no extra cost. No per-seat charging within the team-member cap.

Explore other use cases

See how CI/CD Watch helps every role in your engineering org.

Stop tab-switching to check builds.

One feed across every provider, routed to you. Free for one team; $29/mo flat for ten.