Browser agent diagram: Claude Sonnet 4.6 proposing three actions, each payload passing through a classifier gate that assigns pass, confirm, or block.

What it is : A browser agent. Playwright drives the browser, the Chrome DevTools Protocol provides low-level control, and Claude Sonnet 4.6 handles reasoning and tool-use. The novel piece is the payload classifier that sits between the model's proposed action and the browser: it inspects what the action is about to send, not just where it is going, and chooses a permission tier accordingly.

Why payload classification : Most browser agents classify by URL or domain. That misses the common failure mode: the agent navigates to a benign domain and then fills a form field with sensitive data it should not have. Classifying by payload content catches that case. A "post to pastebin.com" is harmless when the body is a lorem-ipsum draft and dangerous when the body contains an API key.

Demo :
[Hero GIF placeholder: 10 to 15 seconds of the agent completing one task end-to-end, with the payload classifier badge visible in the HUD.]

Architecture :

Permission classes : [TODO: list the five classes with one-line definitions and one example payload per class.]

Failure gallery : [TODO: five specific prompts that broke the agent, with root cause and fix status. Candidates include: ambiguous target disambiguation, classifier false-positive on legitimate credential pasting, state races between CDP interception and page navigation.]

Cost and latency : [TODO: measured table. Columns: task tier (easy, medium, hard), median latency, p99 latency, median tokens, dollar cost per task. Rows: with payload classifier on, with classifier off, baseline raw tool-use loop.]

Honest comparison to Anthropic's computer use : Anthropic ships computer use directly in the Claude API. For many tasks that is the right tool. This agent's architecture buys two things computer use does not: an auditable action log at the browser level (CDP event stream, not pixel traces) and a classifier the user can inspect and tune. It costs more per task than raw computer use because every action pays an extra classifier round-trip. On three of the seven benchmark tasks it underperforms computer use on completion rate. The repo documents which three and why.

What this does not do :

What's next :

Tech stack :
Runtime: TypeScript, Node.js
Browser: Playwright (Chromium), Chrome DevTools Protocol
Model: Claude Sonnet 4.6 via the Anthropic SDK, tool use with JSON schema inputs, prompt caching on the system prompt
Classifier: Smaller Claude Haiku pass with a tight schema, cached across similar payloads
Observability: Structured action log, CDP event stream capture, trace replay on failure

Repository Back to projects More about Jay