FlakeMonster

Surface flaky tests by injecting deterministic async delays

░  Your test ran too fast and left a bug behind.

░  Your test flaked!

In your development environment:

That's why your tests are flaking.

Inject await delays between statements to surface bugs.

$ npx flake-monster test --cmd "npm test"
$ npm install flake-monster
<script type="module" src="https://unpkg.com/flake-monster@0.4.6">
$ curl -L registry.npmjs.org/flake-monster/-/flake-monster-0.4.6.tgz | tar xz
Real demos! No mocks!

How It Works

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.

Your JavaScript source code.

Operational Jitter

See how FlakeMonster reorders async operations by injecting deterministic delays.

Without FlakeMonster

With FlakeMonster

Code Injection Intensity

Watch FlakeMonster inject delay statements into real JavaScript code.

Original

Injected

File / Seed Based Determinism

Each seed is combined with the file path and function name to derive a unique delay. Same seed, same delays, every run.

seed
src/user.jsloadUser()
src/cart.jsgetCart()
lib/auth.jscheckAuth()

  

Agent Skill

Uses the open Agent Skills standard. One SKILL.md works across Claude Code, Codex, Copilot, and more.

Install the skill One command drops the skill file into your project
Use the slash command Type /flakemonster followed by your test command
Get a flake report Your agent runs multiple seeds, analyzes results, and reports flaky tests
$ 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
Usage
// Type in any supported agent:
/flakemonster npm test
/flakemonster npx playwright test
/flakemonster --runs 20 --mode hardcore npx jest
New

FlakeMonster CI

Catch flaky tests on every pull request. Automatically.

Add one file Drop a YAML workflow into your repo
Push code FlakeMonster runs 5 seeds on every PR
See results A detailed comment lands on your PR
.github/workflows/flake-monster.yml
name: FlakeMonster
on: [pull_request]

jobs:
  flake-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
      - run: npm ci
      - uses: growthboot/FlakeMonster-Action@v1
        with:
          test-command: npm test
          runs: 5
flake-monster bot 2 min ago
Found 2 flaky tests across 5 seeds
Test Result Failed seeds
checkout › applies discount 3/5 17 42
auth › refresh expired token 4/5 89
cart › adds item 5/5 ,
user › loads profile 5/5 ,

Pricing

The CLI is free forever. The CI product adds automation and insights for teams that ship fast.

Open Source

$0
forever

Full CLI with inject, test, and restore. Run locally, run in CI, run anywhere.

  • Full CLI & GitHub Action
  • 50 CI checks per month
  • PR comments with results
  • Community support
Get started

Team

$29/mo
per team

For teams that need visibility across every repo. Track trends, get alerted, and stop flaky tests before they spread.

  • Unlimited CI checks
  • Priority support
  • Everything in Free
  • Cancel anytime
Get started

Planned Features

FlakeMonster is just getting started. Here's what's coming next.

TS PY
Up next

More language support

TypeScript, Python, Go, and beyond. The adapter architecture is ready — new languages just need a parser and codegen layer.

Planned

CI dashboard

A web dashboard to track flaky test trends across repos and seeds over time. See which tests are getting worse before they break.

Planned

IDE integration

VS Code extension to inject and restore delays without leaving your editor. One-click flake testing from your sidebar.

Planned

Monorepo support

First-class workspace support for monorepos. Run FlakeMonster across packages with shared seeds and unified reporting.

Exploring

Timing profiles

Named delay profiles (network, database, filesystem) that model real-world latency patterns instead of uniform random delays.

Your idea here

Have a feature request or found a bug? We'd love to hear from you.

Open an issue on GitHub