In progress
  • TypeScript
  • Browser agents
  • Determinism
  • CI

ParAgent

Record a browser agent once, then replay it with no model in the loop

An open-source TypeScript system that compiles a browser agent's successful run into a deterministic replay script, asserting a post-condition on every step and repairing only what breaks.

A browser agent that has already solved a task will happily solve it again from scratch, re-planning and re-inferring every step, every time. For a workflow that runs on a schedule, that is the same expensive reasoning repeated against a page that has not changed.

ParAgent records the successful trajectory once and compiles it into a deterministic replay script. Replay runs with no model in the loop at all.

Record → compile → replay → repair

Record. The agent solves the task the normal way, and the run is captured as a trajectory: the steps it took and the state it saw.

Compile. That trajectory becomes a replay script. Every step carries a post-condition — an assertion about what should be true once the step has succeeded.

Replay. The script executes directly. No planning, no inference, no model call.

Repair. When a UI change breaks a step, its assertion fails, and that failure triggers a model call-back scoped to that one step. The rest of the script is untouched. A button that moved costs one repair, not a full re-run.

The assertions are what make this more than a recording. Without a post-condition on every step, a replay script silently drifts the moment the page changes; with them, drift is a caught failure with a known location.

The CI is part of the design

It is a pre-seed project handling browser sessions, so the pipeline is merge-blocking rather than advisory: secret scanning, contract validation, lint, typecheck, unit and integration tests, and a privacy canary. Nothing lands without passing all of it.

Ambient loop for ParAgent: Record a browser agent once, then replay it with no model in the loop