Generates and runs crash reproducers to verify security flaws. Use when viable findings exist and you need to write and execute a script or payload to verify the crash. Don't use for code auditing or patching.
Works with
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionmantis-reproduceExecute the skills CLI command in your project's root directory to begin installation:
Fetches mantis-reproduce from google/mantis and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate mantis-reproduce. Access via /mantis-reproduce in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
0
total installs
0
this week
307
GitHub stars
0
upvotes
Run in your terminal
0
installs
0
this week
307
stars
| name | mantis-reproduce |
| description | >- Generates and runs crash reproducers to verify security flaws. Use when viable findings exist and you need to write and execute a script or payload to verify the crash. Don't use for code auditing or patching. |
Integration Test Engineer. Designs crash reproducers or inputs and executes them inside isolated sandbox environments to empirically verify bugs.
/mantis-reproduce [--reattack]--reattack when executing as part of patch verification to
isolate re-attack outcomes.workspace/findings/ (viable/conditional findings).workspace/archive/.repro_attempts.json.workspace/.mantis_state.json (to track current loop pass).poc.py, crash.payload)."repro_status",
"repro_file_path", "run_command", "repro_output", and appends
history). Updates status to "VALID" if provisionally valid.--reattack: updates findings in-place (sets
"reattack_status", "reattack_file_path", "reattack_run_command",
"reattack_output", and appends history with stage "reattack"). Does
not modify "repro_*" fields or "status".workspace/archive/.repro_attempts.json atomically.workspace/findings/..repro_attempts.lock file locking and
atomic temporary file swaps (os.replace on .repro_attempts.json.tmp)
to guarantee concurrency safety and retry stability.Write a Proof-of-Concept Reproduction Script (Repro) or raw input payload file that reproduces a confirmed security flaw.
Execute the reproduction stage under these constraints:
Load Viable Findings: Read the JSON files in the workspace/findings/
directory. Filter for findings where production_viability is "VIABLE",
"SAMPLE_OR_TEST", or "CONDITIONAL_VIABLE" (or skip the filter if you're
not checking viability). If no applicable findings exist, notify the user.
Strict Host Isolation Constraint:
Writing and Launching the Reproducer: Write a self-contained test script
(e.g., poc.py or a C reproducer file) or write a raw crash input data
payload (e.g., crash.payload) that triggers the target bug. Analyze the
code path and constraints carefully. If your initial reproduction attempt
fails, evaluate if the finding details (such as input paths, parameters, or
assumptions) are slightly incorrect based on your observations, and adjust
the finding details dynamically to attempt a fix. If you cannot find a
triggerable path after trying multiple approaches and adjustments, abandon
the attempt and mark it as failed_to_reproduce. To run your script or
payload, use the execution or containerization tools available in your
environment to execute the code safely. Select the most appropriate runtime
image and flags for the target. Execute your reproduction using the
appropriate environment: If the target is firmware, you may write a script
to boot it via qemu, unicorn, or Firmadyne. If it's a binary, you may
use dynamic instrumentation or standard execution. Use your best judgment to
construct a working harness for the artifact.
Optional Parallel Trajectory Search: If your environment or agent framework supports spawning subagents, you can deploy multiple concurrent agents to attempt writing the reproducer via different logical approaches. If any trajectory succeeds, immediately adopt its payload and discard the others to escape potential "give up" loops.
Reproduction Status Classification:
reproduced: The PoC successfully triggered the vulnerability.failed_to_reproduce: The PoC was executed but did not trigger
the vulnerability.statically_confirmed: Reproduction was impossible due to
environmental constraints (e.g., missing hardware emulators,
unavailable external services) but the flaw is statically obvious
(e.g., hardcoded credentials). This is strongly discouraged and
should only be used as a last resort.not_attempted: The reproduction stage was skipped entirely
(e.g., due to infrastructure setup failure, timeouts, or explicit
skip configuration).Strict Public-API & Internal Invariant Constraints:
malloc(15)) that bypasses
the library's guaranteed allocator wrappers (e.g.,
png_malloc(rowbytes + 48))."failed_to_reproduce" due
to "Internal Invariant Protection."Functional & Crash-Aware Validation: Analyze the output such as stdout, stderr, and exit codes to classify reproduction success depending on the bug class:
200 OK, or a test script
successfully bypasses validation and exits with 0)."reproduced". Check for:
ERROR: AddressSanitizer).139).134).Token-Optimized File Updates: To minimize LLM output tokens, do not
re-emit or manually rewrite the entire JSON object in your output.
Instead, use in-place editing tools (like a short script in your preferred
language, or jq) to programmatically append the new fields to the existing
workspace/findings/<id>.json file.
Additionally, you must Update the Reproduction Attempt Cache to help the planner track attempts efficiently:
workspace/archive/.repro_attempts.json.
Ensure the parent directory workspace/archive/ exists (e.g., mkdir -p workspace/archive/) before creating, reading, or locking the cache
file.stable_key = normalized_title + "@" + primary_file_path.
normalized_title by converting the title to lowercase and
removing all non-alphanumeric characters.primary_file_path by taking the first entry in
code_paths and stripping any line number suffixes (e.g.,
converting src/auth.c:120 to src/auth.c).workspace/archive/.repro_attempts.lock which is never deleted or
replaced.fcntl.flock on this lock
file:
workspace/archive/.repro_attempts.lock
(creating it if missing) and acquire an exclusive lock
(fcntl.flock with fcntl.LOCK_EX) inside a context manager
(with statement).workspace/archive/.repro_attempts.json (treating it as {} if
missing or empty).stable_key
by 1.workspace/archive/.repro_attempts.json.tmp).os.replace in Python) to ensure readers never see a
truncated or incomplete file.with context manager).Depending on whether the --reattack flag is provided:
If run normally (no --reattack flag): You must append or update
the following on the existing object:
"repro_status" ("reproduced", "statically_confirmed",
"not_attempted", or "failed_to_reproduce").
"repro_file_path"
"run_command"
"repro_output"
If reproduction succeeds (repro_status is evaluated as
"reproduced" or "statically_confirmed") and the finding's
current "status" is "PROVISIONALLY_VALID", you must update
"status" to "VALID".
An entry to the "history" array:
{
"stage": "reproduce",
"action": "reproduced",
"details": "Reproduction status evaluated as [reproduced/failed_to_reproduce] using command: [run_command]",
"pass_number": <current_pass_number>,
"timestamp": "<current_iso8601_timestamp>"
}
If run with --reattack: You must append or update the following on
the existing object (do not touch repro_* or status):
"reattack_status" ("bypassed_patch", "failed_to_bypass").
"bypassed_patch": The new/modified PoC successfully bypassed
the patch and triggered the bug."failed_to_bypass": The PoC was run but failed to bypass the
patch."reattack_file_path"
"reattack_run_command"
"reattack_output"
An entry to the "history" array:
{
"stage": "reattack",
"action": "reproduced",
"details": "Re-attack status evaluated as [bypassed_patch/failed_to_bypass] using command: [reattack_run_command]",
"pass_number": <current_pass_number>,
"timestamp": "<current_iso8601_timestamp>"
}
Criticism of Reproduction Validity: To ensure the reproduction is a valid example of reproducing the reported vulnerability, have a subagent with a fresh context window review and criticize the generated PoC. Seek genuine criticism to ensure false reports are never surfaced later.
When complete, notify the user.
Prerequisites
Time Estimate
15-45 minutes depending on use case complexity
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
mantis-reproduce fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
Keeps context tight: mantis-reproduce is the kind of skill you can hand to a new teammate without a long onboarding doc.
Registry listing for mantis-reproduce matched our evaluation — installs cleanly and behaves as described in the markdown.
mantis-reproduce is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
mantis-reproduce has been reliable in day-to-day use. Documentation quality is above average for community skills.
We added mantis-reproduce from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
Useful defaults in mantis-reproduce — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
I recommend mantis-reproduce for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
Keeps context tight: mantis-reproduce is the kind of skill you can hand to a new teammate without a long onboarding doc.
Solid pick for teams standardizing on skills: mantis-reproduce is focused, and the summary matches what you get after install.
showing 1-10 of 53