Metadata-Version: 2.4
Name: quelltest
Version: 0.1.0
Summary: Auto-generates verified killing tests for survived mutants from mutmut and Stryker
Project-URL: Homepage, https://github.com/shashank7109/quell
Project-URL: Documentation, https://quell.dev
Project-URL: Repository, https://github.com/shashank7109/quell
Project-URL: Issues, https://github.com/shashank7109/quell/issues
Author-email: Shashank Bindal <bindalshashank.89@gmail.com>
License: MIT
Keywords: mutation-testing,mutmut,pytest,stryker,test-generation,testing
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.11
Requires-Dist: anthropic>=0.28.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: libcst>=1.3.0
Requires-Dist: openai>=1.30.0
Requires-Dist: pydantic>=2.6.0
Requires-Dist: rich>=13.7.0
Requires-Dist: tomli>=2.0.0; python_version < '3.11'
Requires-Dist: typer>=0.12.0
Provides-Extra: dev
Requires-Dist: mypy>=1.10.0; extra == 'dev'
Requires-Dist: pre-commit>=3.7.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.4.0; extra == 'dev'
Description-Content-Type: text/markdown

# 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

```bash
pip install quell
```

## Quick Start

```bash
# 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`:

```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:

```bash
export ANTHROPIC_API_KEY=sk-...
# or
export OPENAI_API_KEY=sk-...
```

## License

MIT
