Bough
April 10, 2026 ยท View on GitHub
A polyglot incremental mutation tester.
Note
Beta software โ functional and tested on Linux, macOS, and Windows, but the CLI and config format may still change before 1.0.
๐ Documentation
Features
- Incremental โ mutation testing can take a long time. Bough stores all results to disk, so you can stop a run midway through and resume later. Check your mutation state into git and share coverage data across your team.
- Polyglot โ built on tree-sitter, so adding new languages reuses most of the mutation testing machinery.
- Config, not plugins โ no plugin ecosystem to navigate. A single config file controls everything: file globs, test commands, skip patterns via tree-sitter queries.
Installation
cargo install --locked --git https://github.com/CodeEnPlace/bough --bin bough
Or download a prebuilt binary from the latest release.
Quick Start
Create a bough.config.toml in your project root:
base_root_dir = "."
include = ["**/*"]
exclude = []
init.cmd = "npm install"
test.cmd = "npm run test"
[lang.js]
include = ["src/**/*.js"]
exclude = ["**/*.test.*"]
Then run:
bough show mutations # see what bough will mutate
bough run # run mutation testing
bough find # find the most important missed mutations
See the tutorial for a full walkthrough.
Supported Languages
| Language | ID |
|---|---|
| JavaScript | js |
| TypeScript | ts |
| Python | py |
| Rust | rs |
| Go | go |
| C | c |
| Java | java |
| C# | cs |
Is your language not supported? Open an issue or PR on GitHub.
License
MIT