Jerry Medina

Murmur

An open-source tool that tests how your app handles heavy traffic by sending fake users who act like real ones (open the homepage, sign up, enter the code, then browse or buy), instead of hitting one page over and over.

WhenSep 2026
RoleSolo. Design, code, tests and releases.
StackPython, Locust
Highlights
  • Free and open source
  • Works with Claude Code, Codex and Cursor
  • Shows what to speed up before launch, with no test scripts to write by hand
Links

Why it exists

Load testing means sending a lot of fake traffic to your app before launch to see where it slows down or breaks. Most load-testing tools hit the same few pages over and over. People don’t use apps that way. Nobody sends ten thousand sign-up requests in a row. A person opens the homepage, presses sign up, enters the code they got by text, and then browses or buys.

When test traffic doesn’t look like what users do, it stresses the wrong parts of your app. It can miss the slow spots users would hit first and send you off to fix things that never matter. Murmur sends requests in the order people make them, so the results point to the easy wins and to what needs fixing.

The difference

Both runs below send 200 requests to the same example app. The paths and odds here are made up for this page; Murmur works them out from your code.

Same request, over and over

200 requests to sign-up

  • GET /0
  • GET /signup0
  • POST /signup200
  • POST /otp/verify0
  • GET /events0
  • GET /events/:id0
  • POST /checkout0

Fake users acting like real ones

200 requests from 55 fake users

  • GET /55
  • GET /signup16
  • POST /signup14
  • POST /otp/verify14
  • GET /events58
  • GET /events/:id34
  • POST /checkout9

One user’s path: GET / → GET /signup → POST /signup → POST /otp/verify → GET /events → GET /events/:id → GET /events → exit

The repeated test only tells you how sign-up holds up. When the same 200 requests follow the paths users take, about three-quarters land on the homepage and event pages, and sign-up gets under a tenth. Those pages are where speeding things up would help first.

How it works

Murmur keeps a map of your app: every page or request, and the odds of what a user does next. From the homepage, maybe 55% go look at events, 35% go sign up, and 10% leave. Fake users walk the map one step at a time, rolling the dice at each step.

You can also set up types of users. A “heavy shopper” is more likely to buy, while a “browser” mostly looks around and leaves. You decide how much of the traffic each type makes.

It comes in two parts. The first is a set of instructions for AI coding assistants like Claude Code, Codex and Cursor: the assistant reads your code and builds the map for you. The second is a command-line tool that checks the map, does a dry run, and sends the traffic.

Decisions

Let the AI build the map

Writing every user path by hand is slow, and hand-written tests go out of date as the app changes. The AI reads the code and builds the map instead. It also adds test-only shortcuts so fake users can get past text-message codes, email verification and payments without sending any texts, emails or charges.

Never run against the live app

Those shortcuts must never exist in the public version of an app. Before sending anything, Murmur asks the app a secret question that only a test build can answer, and stops if it doesn’t get the right reply. Pointing it anywhere other than your own computer also requires you to confirm.

Catch mistakes in the map

Before running, Murmur checks the map. Every step has to lead somewhere that exists, a user has to be able to leave from any step, and the odds at each step have to add up to 100%. It never quietly fixes bad odds for you, and it lists every problem at once.

Fake users that work together

Some features need two people, like sending a ticket to a friend. Fake users can borrow a second test account and pass information, like a code, to each other. When a test runs across several machines, each machine gets its own set of test accounts so they don’t get in each other’s way.

Dry runs

Murmur can simulate 1,000 visits without sending a single request. It reports which pages get the most traffic, which ones nobody reaches, and how long visits last, so you can check that the map makes sense before putting load on a server.

Results

  • Free and open source, and installs with one command.
  • Works with Claude Code, Codex, Cursor and other AI coding assistants.