Try it on your repository
See what DiffCI would run on your last commit.
In a few minutes DiffCI tells you which of your tests a change can reach, which it would leave out, and when it would rather run everything. Nothing in your CI changes, and you need no account.
Then tell us how it went. Results that went badly help as much as ones that went well: they show where DiffCI falls short, and they are what makes the good results believable.
1. Run it
Run these from your repository's root. They need Node.js 22.5 or later and a Git checkout with at least two commits. Reports are written to ../diffci-output, outside your checkout.
Analyse only (nothing is executed)
npx -y -p @diffci.com/diffci@latest diffci pilot-packet
This writes pilot-packet.md: the commit range, the tests DiffCI would select, why it fell back to a full run when it did, and the next step it recommends. It reads your files and Git history. It does not run your tests or any repository command.
Analyse and time it (runs your tests)
npx -y -p @diffci.com/diffci@latest diffci pilot --full "npm test"
Replace npm test with your full test command. DiffCI runs the full command and then the selected one, and writes diffci-savings.md with measured times; add --repetitions 3 for steadier numbers. It runs your tests at least twice, so use a machine where that is safe. If DiffCI decides the change needs the full suite, it says so and skips the timing.
Add --redact-paths to either command if your file paths are sensitive. To keep watching real pull requests for a while, add the non-blocking Observer Action to your CI; it reports on each run and never changes which tests run.
2. Share the result
The form asks for the DiffCI version, the commits, what happened, and the report you generated. Paste the markdown file as it is. Never include secrets, tokens or private source code.
If the repository is private or you would rather not post publicly, use the contact form instead and say it is a pilot result.
3. You decide what is published
| Public, named | The result may be published with your repository's name and a link to it. |
|---|---|
| Public, anonymized | The result may be published with a description such as "TypeScript monorepo, about 40,000 lines", never the name. |
| Private | We use it to improve DiffCI and never publish it. |
Published results keep their denominator: full fallbacks, refusals, failed runs and misses are reported alongside the selections that worked, following the same rules as the Open Evidence Study. You can change your choice in a comment on the issue before publication, and we remove a published result if you ask.
Found a miss? That is the best report you can send
A miss is a test DiffCI left out that would have failed. Misses are fixed before other work, and the fix's release notes credit you by name or GitHub handle, unless you ask us not to. A wrong full fallback or a refusal on a repository DiffCI should support is the next most useful.
What you get back
- A reply on your issue that explains the result: why each fallback or refusal happened, and whether it is a DiffCI limitation or something in the repository.
- Fixes for misses and wrong fallbacks, with credit.
- If you want it, help setting DiffCI up properly as a design partner, with the cases that matter to your repository fixed first.