Pimp My IDE / garage dispatch
Back to garage
September 29, 2026 | browser automation / replay / proof

Record once. Prove every lap.

Oya Browser pitches a sharp split: let an agent perform a portal task once, save the steps, then replay them without a model. That can cut cost and drift. It also turns the saved run into production code.

A recording captures actions. A durable replay also needs stable targets, bounded waits, controlled identity, and a result assertion.

The useful idea is the handoff.

Oya says an agent can complete a browser task, save the run as a playbook, and replay it with new inputs without calling a model. Its site says the saved steps become Playwright code and free-text answers can still call a model when needed. It also says a changed page stops the replay at the affected step, lets an agent finish, and saves the repair for later runs.[1]

That is a better division of labor than paying a model to rediscover the same button path every night. The first run handles uncertainty. The replay handles repetition. The handoff between them deserves the same review as any generated integration.

"No model on replay" describes the engine. It does not prove the car reached the right address.

A locator is part of the contract.

Playwright's test generator records browser actions and produces code. Its documentation says the generator prefers role, text, and test ID locators. When a locator matches several elements, the generator tries to refine it to one target. The same tool can record visibility, text, and value assertions.[2]

Those choices matter after the demo. A coordinate says where a button was. A role and accessible name say what the button is. A result assertion says whether the click produced the state the job needed.

Waiting is behavior, not delay.

Playwright checks whether a target is visible, stable, able to receive events, and enabled before many actions. If those checks do not pass before the timeout, the action fails. Its assertions retry until the expected condition appears or the timeout expires.[3]

A fixed sleep can hide a race on one machine and waste time on another. A replay contract should name the condition that opens the next step. "Coverage active is visible" is useful. "Wait three seconds" is only a guess.

Authentication is cargo.

Playwright can save cookies, local storage, and IndexedDB state while recording. Its documentation warns that the saved file contains sensitive information and should stay local or be deleted after use.[2]

A replay system may manage identity differently, but the review questions stay concrete. Which profile runs the task? Which hosts may receive requests? What happens when the session expires? Who can take over for a second factor? Where does the run receipt go?

Make failure stop in one named place.

Chrome DevTools Recorder can add selectors, wait-for-element steps, and assertions for attributes, JavaScript properties, and visibility. Its documentation says a failed assertion reports an error after a timeout.[4]

That gives recorded automation a clean shape. Target the element by meaning. Wait for a real condition. Keep identity scoped. End with a witness that can fail loudly. The run should stop at the first broken contract instead of improvising through a portal with live authority.

Interactive makeover / replay drift bench

Clamp the saved run

Traditional purpose replaced: a playback button with one green light. Better version: connect Target, Wait, Identity, and Witness on one physical rail, expose gaps, and copy a review contract. The bench drafts requirements. It does not run a browser or certify a replay.

Select the replay contracts

Close each square breaker only when the review will require that field. The shaft moves through the contiguous selected route. A later breaker cannot bridge an earlier gap.

Replay contract sections
Replay review draft1 of 4 sections selected
Contract shaft

One section selected

Route stops after TargetNo downstream gap

One replay section is selected.

The template will request a target contract. Three sections remain open. No replay evidence has been supplied.

What this component proves. It creates a review template and keeps the selected sections on one ordered route. It does not inspect a playbook, protect credentials, execute a portal task, or confirm that an assertion passed.

Sources and limits

Open the source log
  1. Oya Browser product page, read September 29, 2026. The statements about model-free replay, Playwright export, repair, personas, host allow-listing, and human takeover are Oya's own product claims.
  2. Playwright test generator documentation, read September 29, 2026. It documents generated actions, locator priorities, assertions, emulation, and saved authentication state.
  3. Playwright auto-waiting documentation, read September 29, 2026. It lists actionability checks, timeouts, and retrying assertions.
  4. Chrome DevTools Recorder reference, read September 29, 2026. It documents selector editing, wait-for-element steps, assertions, replay, and timeout errors.
  5. Hacker News item 49892901, resolved through the Hacker News API on September 29, 2026. The submission surfaced Oya with the title "Oya, an agent does a browser task once, then it replays with no LLM." Comments were not used as evidence.

Artifact check. The public repository points to release v1.0.142, published September 29. The npm registry also reports @oya-ai/browser v1.0.142. We fetched and unpacked its 77,906-byte package tarball without running install scripts. We did not create an account, connect a portal, or test Oya's replay, bot-detection, compliance, or scale claims. This article reviews the replay contract, not the product's measured performance.