Licensing: running the CLI in our own GitHub Actions workflow — Team tier or not?

Author: CR-bizzyCreated Sep 4, 2026Updated Sep 4, 2026

Hi — a licensing clarification before we rely on React Doctor as a blocking CI gate, so we're sure we're on the right tier.

What we do: we run the pinned react-doctor CLI (a devDependency) commercially, invoked from a GitHub Actions workflow we wrote ourselves:

yaml
- run: npm run doctor -- --scope changed --base "origin/$BASE_REF" --blocking warning --no-telemetry -y

We do not use the published React Doctor GitHub Action, and we don't use npx react-doctor@latest (we want the pin respected).

Why we're unsure. The two documents seem to draw the line in different places:

  • The LICENSE is a Modified MIT whose only carve-outs requiring written permission are using the software as ML training/evaluation data and reselling it as a hosted product. Neither applies to us, so ordinary commercial internal use reads as unrestricted.
  • The pricing page lists the CLI with no personal-use qualifier, but splits GitHub Actions into personal use (free) and commercial use (Team, $30/mo).

So: does "GitHub Actions — commercial use" mean use of your Action, or any use of React Doctor in CI, including the CLI in a workflow of our own? The react-doctor ci subcommand ("Set up, upgrade, and configure React Doctor in your CI") suggests CLI-in-CI is a supported path, but we'd rather ask than infer.

Happy to subscribe to Team if that's the correct reading — we just want to be on the right side of it before this becomes a gate we depend on.

Two small notes from setting it up, in case they're useful:

  • --blocking defaults to error, but a newly-introduced no-array-index-as-key is warning severity, so --scope changed --blocking error exits 0 on it. Anyone wiring up a regression gate from the defaults may get a check that never fires. --blocking warning works well combined with --scope changed, since that limits it to issues the PR itself introduces — perhaps worth calling out in the CI docs.
  • It wasn't obvious from the README that the default run contacts the score API and does Sentry crash reporting; we found --no-telemetry in --help. A line about it in the CI setup docs would be helpful.

Thanks!