Ship code generated by agents with confidence.
Install · Quick Start · Use With Coding Agents · Development
JAIPilot is a zero-config test safety harness for Java Maven projects. It runs JaCoCo coverage checks and PIT mutation testing, then prints an actionable PASS or FAIL report for humans and coding agents.
With high-coverage, robust unit tests, you can let coding agents such as Claude Code, Codex, and Cursor work on your codebase with a much tighter feedback loop. Existing tests validate new changes quickly, and weak spots become visible immediately.
If your repository already has high line, branch, and mutation coverage, agents can use that test suite as a guardrail. New code can then be held to the same standard.
It is designed to work alongside Claude Code, Cursor, Codex, and similar tools. Agents can change code, run jaipilot verify, inspect weak coverage and surviving mutations, add or improve tests, and repeat until the project is well protected.
- Zero-config JaCoCo and PIT verification for Java Maven projects
- A test safety harness for AI-assisted coding and refactoring
- Actionable output with exact coverage gaps and mutation failures
- No changes required in the target project's
pom.xml - Uses a temporary mirrored workspace instead of editing your repo
This follows the idea described in AI is forcing us to write good code: as AI makes code generation cheaper, strong tests become the safety system that keeps quality high.
Homebrew:
brew install skrcode/tap/jaipilotFallback from source:
./scripts/install-global.shThen make sure ~/.local/bin is on your PATH.
Run inside any Maven project:
jaipilot verifyRun with explicit thresholds:
jaipilot verify \
--line-coverage-threshold 85 \
--branch-coverage-threshold 75 \
--instruction-coverage-threshold 85 \
--mutation-threshold 80Use a specific Maven executable:
jaipilot verify --maven-executable /path/to/mvn- Run
jaipilot verifyonce on the existing codebase to establish the current safety baseline. - Have your coding agent make changes and rerun
jaipilot verify. - Let the agent inspect coverage gaps and surviving mutations, then add or improve tests.
- Repeat until the project passes at your target threshold.
For many teams, that means starting above 80% for the existing codebase and pushing newly written code toward 100% line, branch, and mutation coverage.
JAIPilot works best as the verification loop around an agent. Ask Claude Code, Cursor, Codex, or another coding agent to keep running jaipilot verify, inspect failures, improve tests, and repeat until the project passes with coverage as high as possible.
Example prompt:
Keep running `jaipilot verify` and update tests until you reach 80% (or 100%).
Why this works well with agents
JAIPilot gives coding agents a concrete feedback loop. Instead of guessing whether a change is safe, the agent can rerun verification, inspect coverage gaps and surviving mutations, improve tests, and iterate until the project is protected.
- Progress updates while the command runs
- A final
PASSorFAIL - Exact coverage gaps from JaCoCo
- Exact surviving mutations from PIT
- Concrete next actions
JAIPilot prepares a temporary mirrored Maven workspace, injects the required JaCoCo and PIT plugins there, runs the verification workflow, parses the generated reports, and prints a simplified summary for humans and agents.
The target project does not need JaCoCo or PIT configured in its own pom.xml.
- Java 17+
- A Maven project
- JUnit 4 or JUnit 5 tests
- Maven available via
./mvnwormvn
- Maven only
- JUnit 4 and JUnit 5 only
- The target repo is not modified
- PIT runs in parallel and reuses history from
~/.jaipilot/pit-historyto speed up repeat runs
Build and test locally:
./mvnw -B verifySmoke-test the packaged distributions:
./scripts/smoke-test-distributions.shSee CONTRIBUTING.md for development setup and pull request expectations.
See SECURITY.md for vulnerability reporting guidance.