macOS Developer Tool

Tired of babysitting
your pipelines?

SubCat watches your GitHub Actions runs and hunts down flaky tests — so you can stay in flow. Run any workflow 5×, 10×, N× with one click.

Open Source Signed & notarized · Apple Silicon · Free
SubCat
My PRs
CSX-438 Enable accessibility unit tests #16136
CSX-71 Fix race condition in version dropdown #16230
CSX-463 Add Karma to Jest migration prompt #16177
CSX-438 Enable accessibility unit tests
failure · run 2 of 5
×5 repeat
The problem

Your CI is green.
Your tests aren't.

🎲

Non-deterministic failures

Passes locally, passes in review, then fails in main. Nobody can reproduce it.

Manual retry loops

Engineers watching CI, clicking Re-run, pasting URLs in Slack. Hours lost every week.

💸

$299/month alternatives

BuildPulse requires cloud hooks, org admin access, and a budget approval.

🔎

No isolation

Most tools say "it failed" — not which test, not how often, not why.

Features

Built for one thing.
Done right.

Core differentiator

Repeat Mode.
Find the flake.

Set any run to execute N times automatically. Each iteration is tracked, logged, and compared. Flaky tests expose themselves when you run them enough.

No webhooks. No org admin. No SaaS. Paste a URL. Set a repeat count.

PASS
FAIL
PASS
FAIL
⚠ Flake rate: 2/5 · UserAuthTest · SessionTokenTest
🔔

Watch Mode

Paste a GitHub Actions run URL. Get a native macOS notification when it finishes. No tab watching, no refresh loops.

📋

Run History

Every run, every iteration — logged with status, duration, and failed test names. Persists across app restarts.

🔗

PR Integration

Paste a PR URL and SubCat resolves the workflows automatically. Pick which run to watch from a list of your open PRs.

Report Generation

Markdown reports.
Built-in.

After every repeat run, SubCat exports a structured .md report with a table of results, clickable run links, and per-iteration failed test names. Drop it in a PR comment or your team's wiki.

No extra tooling. No parsing. One click.

subcat-report-12847301.md
# CI / test (ubuntu-latest)
**Runs:** 5 · **Passed:** 3 · **Failed:** 2
| Run # | Result | Duration | Failed Tests |
[1]✅ pass2m 14s
[2]❌ fail1m 58s2 tests
[3]✅ pass2m 07s
[4]❌ fail2m 01s2 tests
[5]✅ pass2m 11s
UserAuthTest::testSessionExpiry
SessionTokenTest::testRefresh

Fully open source. No strings attached.

SubCat is MIT licensed and built in the open. No tracking, no telemetry, no accounts. Your GitHub token never leaves your machine — it's encrypted with macOS safeStorage. Read the code, fork it, improve it.

How it works

Three steps.
Zero friction.

1

Connect GitHub

Sign in via OAuth Device Flow — no config files. Token encrypted with macOS safeStorage.

2

Paste & set

Paste a GitHub Actions run or PR URL. Set a repeat count — ×1 to watch, ×10 to hunt flakes.

3

Read the pattern

SubCat polls every 15s, triggers reruns, and surfaces which tests failed. Native notification when done.

The alternative
$299
per month, billed annually
Flaky test detection
Requires org admin & webhooks
Cloud SaaS — your data leaves
Needs budget approval
Closed source
SubCat
Free
forever · MIT licensed · open source
Flaky test detection
No webhooks, no org access needed
Runs locally — nothing leaves your machine
Download and run in 60 seconds
Open source — read & fork the code
Roadmap

What's next.

SubCat ships fast. Here's what's coming.

Paste-and-go

Next

Paste a valid GitHub Actions URL and SubCat starts watching immediately — no extra click required.

Rerun failed only

Next

Re-trigger only the failed jobs instead of the full workflow. Faster flake confirmation, less CI spend.

Watch without limit

Next

Continuous watch mode — keep re-running a workflow until you manually stop it. Essential for overnight flake hunts.

Auto-detect PRs

Planned

SubCat automatically detects your open PRs and surfaces their latest runs without any URL pasting.

GitHub App migration

Planned

Move from OAuth App (full repo scope) to GitHub App for granular, minimal permissions.

Windows & Linux

Exploring

SubCat is Electron — cross-platform is possible. Investigating demand before committing to distribution.

SubCat

Polling every 15 seconds.
So you don't have to.

SubCat runs quietly, watching your CI runs in real time. No browser tabs, no constant refreshing. Get a native macOS notification the moment something needs your attention.

Get started

Stop guessing.
Start knowing.

Signed · Notarized · Auto-updating · Apple Silicon