The web has never been agent-native. Until now.

Give your coding agent a browser it can actually operate.

WebCLI is your agent's local browser loop: observe page state, enumerate actions, act by numbers, recover from blockers, pause for human help, and leave a redacted transcript.

Your agent runs a browser loop from the CLI.

$web open http://localhost:3000 --json
{ "ok": true, "url": "http://localhost:3000", "state": "complete" }
$web observe --json
{
  "summary": "Sign-in page loaded",
  "actions": ["1: Sign in", "2: Create account"],
  "inputs": ["3: email", "4: password"],
  "state": "ready"
}
$web type 3 cris@example.com --json
{ "ok": true, "message": "typed into email" }
$web do 1 --json
{ "ok": true, "message": "clicked Sign in" }

We dog-fooded WebCLI to create the GitHub and Stripe tokens to launch its own product release.

The split-screen launch demo shows an agent driving GitHub from the terminal while the real browser moves beside it: create a fine-grained token for a throwaway repo, hit a passkey blocker, pause for human approval, resume, and print a redacted transcript.

Split-screen demo agent terminal browser being operated
$web open github.com/settings/tokens --json
{ "ok": true, "state": "complete" }
$web observe --json
{ "summary": "GitHub token settings", "actions": ["3: Generate new token"], "state": "ready" }
$web do 3 --json
{ "ok": true, "message": "clicked Generate new token" }
$web state --json
{ "state": "blocked", "reason": "passkey confirmation required" }
$web pause "Need human approval for GitHub passkey"
Paused. Waiting for human to join.
$web resume --json
{ "ok": true, "message": "resumed after human interaction" }
$web transcript --last 20 --json
{ "events": ["redacted transcript with blocker, pause, and resume recorded"] }

Agents code. They even search. But the second they try to do something on the web, they go blind.

Real launch work still happens on websites: GitHub, Stripe, Cloudflare, token pages, admin dashboards, auth prompts, file choosers, popups, and changing UIs. Screenshots are useful for humans. Test frameworks are excellent for known scripts. WebCLI is for contact with reality — when an agent must inspect, decide, act, recover, and sometimes dial-a-human to help.

The browser loop agents were missing.

WebCLI turns browsing into a repeatable shell-native loop an agent can follow without guessing or hallucinating.

01

Observe

Read current page state, visible text, forms, actions, tabs, and blockers.

02

Choose

Pick from numbered actions instead of inventing selectors or coordinates.

03

Act

Click, type, submit, choose, press, scroll, or navigate from the terminal.

04

Recover

Detect weird states, auth prompts, dialogs, file choosers, and degraded sessions.

05

Handoff

Pause cleanly when human judgment is required. Join the session, fix it, then resume.

06

Report

Print a redacted transcript so you can audit exactly what happened.

From stuck agent to reliable loop.

01

Agents stop guessing where to click.

WebCLI turns the live page into numbered actions. The agent acts on the latest observed state instead of hallucinating selectors or coordinates.

02

Agents see what matters.

web observe --json returns compact, actionable state: summary, actions, inputs, forms, tabs, and blockers — enough to decide, without dumping the whole DOM.

03

Agents know when they are blocked.

web state surfaces native and heuristic blockers so the agent stops blindly retrying when it hits auth, approval dialogs, file choosers, or ambiguous conditions.

04

Agents ask for help instead of failing.

web pause, web join, and web resume create a clean, auditable handoff when a workflow needs a person.

05

Humans get an audit trail.

web transcript records redacted command history so you can see what the agent did without secrets leaking into logs.

A browser workbench for agents — not another testing SDK.

01

Shell-native

One binary. JSON output. No Python or TypeScript framework required. Works with Claude Code, Cursor, Aider, OpenHands, custom shell loops, or CI.

02

Local-first

Starts with your local browser, your machine, and named persistent profiles when your agent needs continuity across runs.

03

Real browser operations

Open, observe, read, find, click, type, choose, submit, press keys, scroll, capture, tab management, and page evaluation.

04

Human handoff built in

When a site needs a person — passkeys, MFA, sensitive approvals, or ambiguous decisions — the agent can pause cleanly instead of guessing or looping.

05

Remote when needed

Connect to CDP endpoints or BrowserBox sessions for shared, remote, or isolated browser surfaces.

06

Agent instructions included

Run web agents-md to generate compact rules your agent can follow: observe first, use numbered actions, prefer JSON, recover cleanly, and produce transcripts.

Built for real auth, not fake autonomy.

01

Stops at human-only gates

When a workflow reaches passkeys, MFA, sensitive approvals, or ambiguous states, the agent can pause instead of pretending it can continue.

02

Redacts what should not be logged

Transcripts show what happened without dumping secrets, tokens, passwords, or sensitive field values.

03

Local first

Start on your own machine and browser context. Move to runners or BrowserBox-backed sessions when the workflow needs it.

Why not just...

Why not just Playwright or Cypress?

Use Playwright or Cypress when you know the app and the script. Use WebCLI when an agent must inspect an unknown or changing website, decide what to do, act, observe again, and recover without writing a full test suite first.

Why not just screenshots?

Screenshots are useful for human verification. But weak as the primary control loop for your agent friends — shots are token-heavy, easy to misread, and disconnected from actionable page state. WebCLI gives agents structured state and stable numbered actions.

Why not just MCP?

MCP is useful when you want a tool server. WebCLI is a local binary optimized for shell-based agents, terminals, scripts, and CI. They complement each other.

Why not Stagehand, Browser Use, or other browser-agent SDKs?

Those are frameworks for building agents inside specific stacks. WebCLI is the shell-native layer: one binary any coding agent (or human) can use to drive web actions without adopting a framework.

Does it bypass CAPTCHAs or auth?

No. WebCLI is designed to detect blockers and create a clean human handoff. When a workflow needs a person, the agent pauses, you join, and the transcript records what happened.

Is this safe for secrets?

WebCLI is built around redacted transcripts and explicit human handoff. For sensitive workflows, pause for human approval instead of letting the agent run unsupervised.

Try first. Take it to the stars when you need it.

Start a 5-day trial with a work email. If the email is from a free/disposable provider or your org has used its 3 free trials, WebCLI automatically offers the $10 trial pass instead.

Trial

$0 5 days

Enter an email. Work domains under the org cap get a free activation key; free providers, disposable providers, and capped orgs get the $10 5-day trial-pass checkout.

  • Observe, read, find, click, type, and do
  • Pause, join, and resume
  • Redacted transcripts
  • Persistent local profiles
  • Up to 3 free work-email trials per organization domain

Free trial when the email belongs to a real organization. Otherwise the server creates a $10 checkout for the same 5-day evaluation.

Solo Dev

$120 / year

For one developer using WebCLI commercially with local agents.

  • Commercial local use
  • Unlimited local browser actions
  • Persistent browser profiles
  • Redacted transcripts
  • Personal machines

Pro Runner

$480 / year

For headless, CI, multi-machine, and production agent workflows.

  • CI and headless runner use
  • Multi-machine activation
  • Higher concurrency
  • Production automation workflows
  • Runner-oriented logging and diagnostics

Need to evaluate from a free email provider or an org that hit the free-trial cap? Use the $10 5-day trial pass from the trial form.

Platform

Starts at $5k / year

For redistribution, bundling, team platforms, and BrowserBox-backed integrations.

  • Redistribution and bundling rights
  • Platform integration
  • BrowserBox-backed shared sessions
  • Policy and deployment support
  • Custom terms available
Talk to founders

When a trial ends or a license is invalid, browser commands stop until a valid trial pass or paid license is activated.

Add the browser loop to your agent.

Drop WebCLI instructions into your repo so your coding agent knows how to browse safely: observe first, use numbered actions, prefer JSON, pause on blockers, and report with transcripts. AGENTS.md and SKILL.md formats are included.

  • web agents-md > AGENTS.md
  • web skill-md > SKILL.md
  • curl -fsSL webcli.sh/agents/SKILL.md -o SKILL.md

Give your coding agent a browser it can actually operate.