An async fuzzer for JavaScript
░ Your test ran too fast and left a bug behind.
░ Your test flaked!
In your development environment:
That's why your tests are flaking.
Fuzz your async timing with deterministic await delays to surface the bugs that hide within.
FlakeMonster uses Acorn to parse your code into an AST, walks the tree to find async functions and top-level module statements, injects delay nodes, then generates the modified source.
See how FlakeMonster reorders async operations by injecting deterministic delays.
Watch FlakeMonster inject delay statements into real JavaScript code.
Each seed is combined with the file path and function name to derive a unique delay. Same seed, same delays, every run.
Uses the open Agent Skills standard. One SKILL.md works across Claude Code, Codex, Copilot, and more.
/flakemonster followed by your test command
$ mkdir -p .claude/commands && \ curl -sL https://raw.githubusercontent.com/growthboot/FlakeMonster/refs/heads/main/SKILL.md \ -o .claude/commands/flakemonster.md
$ mkdir -p .cursor/skills/flakemonster && \ curl -sL https://raw.githubusercontent.com/growthboot/FlakeMonster/refs/heads/main/SKILL.md \ -o .cursor/skills/flakemonster/SKILL.md
$ mkdir -p .agents/skills/flakemonster && \ curl -sL https://raw.githubusercontent.com/growthboot/FlakeMonster/refs/heads/main/SKILL.md \ -o .agents/skills/flakemonster/SKILL.md
$ mkdir -p .github/skills/flakemonster && \ curl -sL https://raw.githubusercontent.com/growthboot/FlakeMonster/refs/heads/main/SKILL.md \ -o .github/skills/flakemonster/SKILL.md
$ mkdir -p .windsurf/skills/flakemonster && \ curl -sL https://raw.githubusercontent.com/growthboot/FlakeMonster/refs/heads/main/SKILL.md \ -o .windsurf/skills/flakemonster/SKILL.md
$ mkdir -p .agent/skills/flakemonster && \ curl -sL https://raw.githubusercontent.com/growthboot/FlakeMonster/refs/heads/main/SKILL.md \ -o .agent/skills/flakemonster/SKILL.md
// Type in any supported agent: /flakemonster npm test /flakemonster npx playwright test /flakemonster --runs 20 --mode hardcore npx jest
Catch flaky tests on every pull request. Automatically.
The CLI is free forever. The GitHub Action adds automated flake detection to every pull request.
Full CLI with inject, test, and restore. Run locally, run in CI, run anywhere.
Gate every pull request with flake detection — no cap, no throttling. Stop flaky tests from reaching your main branch.
FlakeMonster is just getting started. Here's what's coming next.
TypeScript, Python, Go, and beyond. The adapter architecture is ready — new languages just need a parser and codegen layer.
A web dashboard to track flaky test trends across repos and seeds over time. See which tests are getting worse before they break.
VS Code extension to inject and restore delays without leaving your editor. One-click flake testing from your sidebar.
First-class workspace support for monorepos. Run FlakeMonster across packages with shared seeds and unified reporting.
Named delay profiles (network, database, filesystem) that model real-world latency patterns instead of uniform random delays.
Have a feature request or found a bug? We'd love to hear from you.
Open an issue on GitHubWhat if you could throw static at your code and listen for the bugs that surface?
Randomness is one of the most underrated primitives in software. Fuzz testing, A/B experiments, fault injection, random isolation. A coin flip in the right place reveals things that careful analysis never will. We think the surface area for this kind of thinking is way underestimated, and we're ready to start exploring it with you.
AI is great at many things, but some problems have cheaper, faster, more deterministic solutions. Algorithmic tools run in milliseconds, cost nothing to operate, and give you the same answer every time. There's a huge class of bugs that can be caught without a model ever seeing your code.
Reordering, mutation, boundary injection, symbolic constraints. Algorithmic techniques can catch race conditions, state bugs, and logic errors without understanding a single line of code. We're interested in tools that find mistakes by probing how code behaves, not by trying to read it.
checkout › applies discount1742auth › refresh expired token89cart › adds itemuser › loads profile717426389