Skip to main content
devtools_recorder records what an agent does on a tab and turns it into a replayable flow. Recordings are per agent, so two agents recording at once do not mix.
1

Start recording

Every browser_navigate, browser_click, browser_fill, browser_select, browser_key and browser_wait on that tab is captured with a stable selector for the element: a unique id, then data-testid, data-test, name or aria-label, and only as a last resort an nth-of-type path.
2

Add checks along the way

Assertions are browser_wait checks (text, textGone, url, selector with state). Checkpoints mark places a replay can stop at.
3

Stop and parameterise

stop saves the flow as a JSON artifact. parameterize replaces a recorded literal with {{email}}. get shows the steps with their indexes; delete_step removes one.
4

Replay

Selectors are resolved to fresh refs on the live page. Replay stops at the first failure with the step index and reason, or continues past failures with continueOnFailure. fromStep resumes part-way.
5

Export

Produces a Playwright test: page.goto, page.locator(selector).click()/fill()/selectOption(), page.keyboard.press, assertions as expect(page.getByText(…)).toBeVisible() and expect(page).toHaveURL(…), checkpoints as comments, and parameters read from environment variables (EMAIL for {{email}}). The same file is also saved as an artifact.
list shows saved flows. flowId accepts either the id or the artifact path.