Auto-generates verified killing tests for survived mutants from mutmut and Stryker
Project description
Quell
Quell your survivors. Strengthen your tests.
Quell auto-generates verified, killing tests for survived mutants from mutmut and Stryker.
What it does
Quell reads surviving mutants from mutation testing tools (mutmut for Python, Stryker for JS/TS), analyzes each surviving mutant using Python's AST (via libcst), generates a targeted pytest assertion that would catch the mutation, verifies the generated test actually kills the mutant by applying the mutant and running the test in a subprocess, then writes only verified tests to the test file using libcst (preserving formatting and comments).
- Code never leaves the machine (unless you configure an LLM provider)
- Every write is auto-restored on failure
- Full audit log is maintained
Installation
pip install quell
Quick Start
# Step 1: Run your mutation testing tool first
mutmut run # for Python projects
npx stryker run --reporters=json # for JS/TS projects
# Step 2: Let quell scan survivors
quell scan # see what survived
# Step 3: Fix interactively
quell fix # review + apply one by one
# Step 4: Or auto-fix everything
quell auto --dry-run # preview
quell auto # apply all verified tests
# Config (optional)
quell init # adds [tool.quell] to pyproject.toml
# Use local LLM (privacy-first)
quell fix --llm ollama # requires ollama running locally
Configuration
Add [tool.quell] to your pyproject.toml:
[tool.quell]
llm_provider = "anthropic" # "anthropic" | "openai" | "ollama"
llm_model = "claude-sonnet-4-5"
max_verification_attempts = 3
verification_timeout_seconds = 30
auto_write = false
Set your API key:
export ANTHROPIC_API_KEY=sk-...
# or
export OPENAI_API_KEY=sk-...
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quelltest-0.1.0.tar.gz.
File metadata
- Download URL: quelltest-0.1.0.tar.gz
- Upload date:
- Size: 114.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64427731bb58f6dec02f66fb0562914ebb80eec7bbc5885ab6f04d64011b9e1e
|
|
| MD5 |
8132ec8762d3c1a20e78b84ca4defdaf
|
|
| BLAKE2b-256 |
6a5c79385aacf7af168a4fcd356246081bde8914f94ddd88a64769f5e0efe776
|
File details
Details for the file quelltest-0.1.0-py3-none-any.whl.
File metadata
- Download URL: quelltest-0.1.0-py3-none-any.whl
- Upload date:
- Size: 24.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
517bc8b1ad3c6f1bb91ffcfb52f0e6ebd892a47e1457ef912d3df4c01c5926ac
|
|
| MD5 |
d69cd643fc9b24622edf3e439a93558e
|
|
| BLAKE2b-256 |
ab3d9251b87611da843f10b6e475e4daa001b879983a33a5cb9e50856ba9c315
|