No more waiting on CI to finish before your coworker looks at your PR. The only downside is, you’ll need a new excuse to go get a coffee.
Blazing-fast Test Selection
Quickly identifies which tests actually matter for your changes. Skips irrelevant tests automatically. Can reduce test runtimes by over 80%.
Zero Setup
Works right out of the box - just add "spdr" before your pytest commands. Auto-detects your project structure and dependencies.
Seamless CI Integration
Seamless integration with all major CI platforms. Drop-in compatibility with existing pytest workflows and plugins. Preserves your test reporting and metrics.
Smart Dependency Tracking
Built-in Git support for exact change detection. Parses Python import chains with its own compiler. Intelligent handling of configuration and resource files.
Developer Experience First
Designed for both CI and local use. Stay in the zone. Understand test selection with analysis mode.
Enterprise Reliability
Defaults to full test runs for non-code changes. Production-tested on complex Python codebases.
Frequently Asked Questions
Have questions? Find answers to the most common inquiries about spdr.
What platforms does spdr support?
spdr is a Python 3 tool that works with pytest, and all major CI platforms. All you need is pipx or uv to install it, and a command line to run it. Currently, it is pytest-only, but we plan to add support for unittest soon.
How does spdr improve testing speed?
spdr parses and statically analyzes your Python code to form a module dependency graph. It uses this to exclude tests that cannot possibly be affected by code changes. This leads to quicker feedback and reduced bottlenecks.
What does spdr do if a non-code file changes?
By default, spdr runs the full test suite, since it can't be sure the file won't affect the tests. Certain safe files are ignored, though, like READMEs and most media assets. We plan to add a .spdrignore file so people can fine-tune this behavior in the future.
How does spdr compare to selecting tests with AI or based on failure probability?
These are fuzzy, imprecise techniques. They're ok for test ordering, but not test selection. There's no guarantee they won't exclude relevant tests, whereas spdr never will.
How does spdr compare to the pytest-testmon plugin?
pytest-testmon is a great plugin! Unfortunately, it's no help for CI. Since it's based on code coverage, it requires a full run of all tests before it can determine which ones are irrelevant. This works fine for local development, since you can start it up once, and get accelerated testing afterwards, but this saves no time for CI environments, which are started from scratch every time.
Who shouldn't use spdr?
Well, if your test runs finish in seconds, spdr won't help you much. It shines on longer test types, like integration tests running for minutes or hours.
How much benefit can I expect?
It varies, depending on the size and nature of the code changes, as well as the structure of your code.
Larger changes that affect more files will naturally have to run more tests. If you have unused imports, they will trigger unnecessary tests; package __init__.py files that import every module are an anti-pattern for spdr. Likewise, large files (both test and code) will typically result in more work.
Is spdr free?
spdr is free for local, non-commercial use and always will be. While we're in beta, spdr is free for freelance, commercial, and business use, both for local development and in CI environments.
Once we launch, commercial uses will require a license. Educational users may request a free license, subject to approval. Non-commercial open source may request free licenses, also subject to approval. Commercial open-source will require a license.
Is spdr open source?
At this time, no, spdr is not licensed as open source, though we're considering non-closed-source possibilities for the future.
How secure is spdr?
Very. spdr never sends your code anywhere, it stays on your developers' machines and your CI boxes. spdr may send general telemetry data, like the number of files or lines of code, but it will never send sensitive information.
Only while we're in beta
20% off for early adopters
Join now to be the first to know when we launch.
Cookie Settings
This site uses cookies. We all hate these banners, but they're required. ¯\_(ツ)_/¯