RECORD & REPLAY
Click record, use your app like a human. Crawly captures clicks, typing, selects, and mouse moves, then replays them any time. Selectors prefer data-testid and id, so hashed React class names are no problem.
Crawly is a free, open source Chrome extension that records a flow once, then a tiny comic spider replays it on your React or Next.js app: crawling to fields, typing at 25 ms per key, pouncing on buttons, and yelling KPOW! when everything passes. When your UI changed behind your back, you get an OMG! and a BOOM! instead of a silent green checkmark.
| Title | Reporter | Severity |
|---|
This will permanently remove the bug from the tracker.
Live demo: that is the real extension spider driving a real form on this page. No video, actual DOM clicks and keystrokes, on a loop.
Click record, use your app like a human. Crawly captures clicks, typing, selects, and mouse moves, then replays them any time. Selectors prefer data-testid and id, so hashed React class names are no problem.
Character by character, 25 ms per key, through native setters and real input events. Controlled React inputs accept every keystroke like it came from a keyboard.
BANG! on clicks, THWIP! for webs, OMG! when a button goes missing or gets disabled, BOOM! when a run fails, KPOW! when everything passes.
Runs checkpoint before every step and survive real navigations. Each landing doubles as an assertion: land on the wrong page and the spider panics loudly instead of passing quietly.
Flip AUTO and a crawl runs itself whenever a matching page loads. Export any crawl as .crawly.json, commit it, share it. Imports never get auto-run rights until you say so.
localhost on any port just works. Every other domain gets asked once, in a big comic panel, before the spider records or replays anything. Everything stays in your browser.
Crawly is live on the Chrome Web Store. One click to add it, and you are recording in under a minute — no build step, no account.
Head to the Crawly listing on the Chrome Web Store in Chrome, Edge, Brave, Arc, or any Chromium-based browser with Manifest V3 support.
Click Add to Chrome and confirm the permissions prompt.
Pin the Crawly icon to your toolbar so you can start recording with one click.
Open any React or Next.js app, click the Crawly icon, hit RECORD A CRAWL, use your app, then STOP & SAVE. Press RUN to watch the spider replay it.
extension/ unpacked from chrome://extensions.chrome.storage.local inside your browser. Crawly makes zero network requests, ships no telemetry, and never uploads a recording. You can export a crawl as a .crawly.json file yourself if you want to share or commit it.input events, which is exactly what React controlled components need to accept each keystroke. Selectors prefer data-testid, id, name, aria-label, and placeholder before falling back to a structural path, so hashed CSS class names from Next.js builds do not break anything.npm install, no config file, no scripts. You record a flow by using your app, then hit RUN. It is aimed at quick manual regression checks and shareable “did the signup flow still work” crawls, not at replacing your framework of choice for CI-scale coverage. For a deeper walk-through, see our roundup of free UI testing tools.localhost and 127.0.0.1 (any port), Crawly works right away. On every other domain, Crawly shows a comic-panel consent prompt once, per origin, before it will record or replay anything. You can revoke consent for any domain from the popup at any time.nav step that doubles as an assertion: if the app lands on the wrong path during replay, the spider panics with OMG! and BOOM! instead of passing silently..crawly.json to a repo, hand it to a teammate, and import it back into another Crawly install. Values are stored in plain text, so avoid recording real credentials.Drive Crawly from Claude or any MCP client. Start runs, read results, and manage your crawls straight from an AI conversation.
Describe a flow in plain words. The spider explores your app, builds the crawl itself, runs it end to end, and reports what broke.
One command sends your coding agent everything it needs: the failing URL, the exact element, and what changed, ready to jump in and fix.
Crawly is free and open source under the Apache 2.0 license. Read it, fork it, bend it to your team's will. Bug reports and pull requests are welcome, the spider does not bite contributors.
# grab the source
git clone https://github.com/yemon/crawly
# load it unpacked
chrome://extensions > Developer mode > Load unpacked
# share a crawl with your team
signup-flow.crawly.json