Agents love writing tests. You can't prune them all, and you can't afford to keep running every test on every build. Selective is the intelligence layer on top of your existing CI. It runs only the tests necessary to validate the current set of changes while also perfectly distributing tests between nodes, detecting flakes, retrying failures, and streaming results to coding agents in real time.
Selective knows which tests to run. Make a three-line change to one file? Run only the tests that could fail when that code changes, saving on compute and shortening the feedback cycle. Our money-back guarantee ensures you'll save more money on your CI bill than you spend on Selective.
The selected tests are distributed to CI nodes from a central queue. This results in an optimized total runtime where each node completes at the same time. Traditional test-splitting strategies predetermine the split up front based on historical timing, which often leaves one or two nodes holding up the build on your slowest test files.
When a test fails, Selective immediately retries it on another node. If it passes the second time, it's recorded as a flake. From there it can be quarantined automatically so it doesn't fail the build, and it's indexed so you know when and where it happens. You can even see which tests ran before it, helping you or your agents reproduce the sequence-dependent ones.
With Selective's CLI, your agent can monitor test results in real time, enabling it to react before the suite is finished. For example, if a failure occurs, the agent can decide whether the build should continue or stop early. Or, when a new flake is discovered, it can begin an investigation right away.
Selective is free while in open beta. Copy the prompt and let your agent do the setup. We're two engineers building this with our first customers, so early adopters get a real say in the product and the pricing.
Set up Selective test selection in this repository. 1. Add the gem: run `bundle add selective-ruby-rspec` (or `selective-ruby-minitest` if this repo uses Minitest). 2. In the CI config, replace the test command `bundle exec rspec` with `bundle exec selective rspec` (or `bundle exec selective minitest`). 3. Read the API key from a CI secret named SELECTIVE_API_KEY. Do not commit the key; I will add it to CI myself. 4. Open a pull request with the change and tell me which CI config file you edited. 5. After CI runs, install the Selective CLI (https://selective.ci/docs/cli) and run `selective tail` in this repo to stream the results. Docs for you: https://selective.ci/llms.txt