<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Eli</title>
    <description>The latest articles on DEV Community by Eli (@eliofbm).</description>
    <link>https://dev.to/eliofbm</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3895802%2F387dead1-d42a-421a-8dd3-1dd3e82f991b.png</url>
      <title>DEV Community: Eli</title>
      <link>https://dev.to/eliofbm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eliofbm"/>
    <language>en</language>
    <item>
      <title>Browser agents need completion contracts, not just approval prompts</title>
      <dc:creator>Eli</dc:creator>
      <pubDate>Sat, 23 May 2026 10:55:04 +0000</pubDate>
      <link>https://dev.to/eliofbm/browser-agents-need-completion-contracts-not-just-approval-prompts-1p1c</link>
      <guid>https://dev.to/eliofbm/browser-agents-need-completion-contracts-not-just-approval-prompts-1p1c</guid>
      <description>&lt;p&gt;A practical checklist for browser-agent workflows: target authority, side-effect class, approval gates, post-action assertions, and receipts.&lt;/p&gt;

&lt;p&gt;Original post: &lt;a href="https://blog.browserman.run/blog/browser-agents-need-completion-contracts/" rel="noopener noreferrer"&gt;https://blog.browserman.run/blog/browser-agents-need-completion-contracts/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;An approval prompt is a good start.&lt;/p&gt;

&lt;p&gt;It is not enough.&lt;/p&gt;

&lt;p&gt;A browser agent can ask before it refunds a customer, publishes a page, sends a message, or changes a setting. That gate matters. It separates drafting from doing. It prevents some expensive mistakes before they happen.&lt;/p&gt;

&lt;p&gt;But the approval prompt only answers one question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Is this agent allowed to take this side effect right now?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It does not prove the agent used the right account. It does not prove the workflow finished. It does not prove the page state matched the plan. It does not prove the agent recovered when the site drifted. It does not prove what changed afterward.&lt;/p&gt;

&lt;p&gt;For real browser work, the next primitive is a completion contract.&lt;/p&gt;

&lt;h2&gt;
  
  
  The browser is becoming an authority surface
&lt;/h2&gt;

&lt;p&gt;Browser agents are moving from demo loops into signed-in work.&lt;/p&gt;

&lt;p&gt;They open tabs. Read dashboards. Fill forms. Draft support replies. Update CRMs. Publish CMS pages. Work through admin portals. Use the same messy web interfaces humans use every day.&lt;/p&gt;

&lt;p&gt;That is exactly why they are useful.&lt;/p&gt;

&lt;p&gt;It is also why the browser is not just a viewport anymore.&lt;/p&gt;

&lt;p&gt;A signed-in Chrome session contains authority: cookies, account state, customer records, internal tools, billing screens, admin settings, support inboxes, analytics, partner portals, and production workflows.&lt;/p&gt;

&lt;p&gt;Once an agent can use that session, the product question changes from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can the agent click the right thing?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What authority did we delegate, what was it allowed to do, and what evidence proves the outcome?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Approval gates help with the middle part. They do not cover the whole contract.&lt;/p&gt;

&lt;h2&gt;
  
  
  Approval gates are necessary but narrow
&lt;/h2&gt;

&lt;p&gt;Approval gates are strongest at one boundary: high-risk side effects.&lt;/p&gt;

&lt;p&gt;A practical browser-agent policy should not treat every browser action the same. Reading a page is not the same as sending a support reply. Drafting a CMS post is not the same as publishing it. Looking up an order is not the same as issuing a refund.&lt;/p&gt;

&lt;p&gt;The useful model is side-effect based:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action class&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;th&gt;Default posture&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Read-only&lt;/td&gt;
&lt;td&gt;inspect dashboard, summarize ticket, compare records&lt;/td&gt;
&lt;td&gt;broad autonomy with source-aware receipts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Draft/prep&lt;/td&gt;
&lt;td&gt;fill form, write reply, stage CMS edit&lt;/td&gt;
&lt;td&gt;allow, but do not submit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Low-risk write&lt;/td&gt;
&lt;td&gt;save internal note, update non-sensitive metadata&lt;/td&gt;
&lt;td&gt;allow with receipt or light gate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;High-risk side effect&lt;/td&gt;
&lt;td&gt;send, refund, delete, publish, spend, change settings, touch credentials&lt;/td&gt;
&lt;td&gt;require approval before execution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unknown surface&lt;/td&gt;
&lt;td&gt;new account, new tenant, unexpected modal, permission drift&lt;/td&gt;
&lt;td&gt;stop and escalate&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The point is not to put a human in front of every click.&lt;/p&gt;

&lt;p&gt;The point is to gate the blast radius.&lt;/p&gt;

&lt;p&gt;But even with the right gates, a workflow can still fail in quieter ways.&lt;/p&gt;

&lt;h2&gt;
  
  
  The boring failure is confident incompletion
&lt;/h2&gt;

&lt;p&gt;The most cinematic agent failure is the rogue click.&lt;/p&gt;

&lt;p&gt;The more common failure is probably worse for operations: confident incompletion.&lt;/p&gt;

&lt;p&gt;The agent starts the workflow. It gets halfway through. A modal appears. A page changes. A validation error hides below the fold. The wrong workspace is selected. A background save fails. The agent loses context, summarizes what it intended to do, and marks the task complete.&lt;/p&gt;

&lt;p&gt;No alarm.&lt;/p&gt;

&lt;p&gt;From the outside, the agent said “done.”&lt;/p&gt;

&lt;p&gt;But the customer was not refunded. The CRM field did not update. The support reply stayed in draft. The CMS post never published. The wrong record changed. The agent stopped early and produced confidence instead of evidence.&lt;/p&gt;

&lt;p&gt;An approval prompt does not solve that.&lt;/p&gt;

&lt;p&gt;A completion contract does.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a completion contract defines
&lt;/h2&gt;

&lt;p&gt;A completion contract is the workflow-level agreement an agent must satisfy before it can say “done.”&lt;/p&gt;

&lt;p&gt;It should define at least six things.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Accepted inputs and target authority
&lt;/h3&gt;

&lt;p&gt;The contract should name the expected account, workspace, customer, record, browser profile, or tenant.&lt;/p&gt;

&lt;p&gt;For browser agents, this matters because the browser session carries authority. Acting in the wrong workspace is not a UI bug. It is wrong authority.&lt;/p&gt;

&lt;p&gt;A browser agent should be able to prove:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which account/session it used;&lt;/li&gt;
&lt;li&gt;which record or page it targeted;&lt;/li&gt;
&lt;li&gt;which identity was visible before execution;&lt;/li&gt;
&lt;li&gt;whether the target matched the requested task.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Forbidden shortcuts
&lt;/h3&gt;

&lt;p&gt;Agents optimize for completion. That is useful until it becomes dangerous.&lt;/p&gt;

&lt;p&gt;A completion contract should say what the agent must not do, even if the shortcut appears to finish the task.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;do not issue refunds above a threshold without approval;&lt;/li&gt;
&lt;li&gt;do not send customer-facing messages without a visible final review;&lt;/li&gt;
&lt;li&gt;do not change account settings while trying to resolve a support ticket;&lt;/li&gt;
&lt;li&gt;do not use a different browser profile if the expected one is not available;&lt;/li&gt;
&lt;li&gt;do not scrape around an auth wall or CAPTCHA-like checkpoint;&lt;/li&gt;
&lt;li&gt;do not claim a record was updated unless the after-state is visible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Forbidden shortcuts are how the workflow preserves intent when the page gets messy.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Checks to run
&lt;/h3&gt;

&lt;p&gt;A browser workflow should include explicit checks, not just final narration.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;confirm the customer name and account ID before refunding;&lt;/li&gt;
&lt;li&gt;confirm the CMS slug and publish state before reporting success;&lt;/li&gt;
&lt;li&gt;confirm the support ticket status changed after sending;&lt;/li&gt;
&lt;li&gt;confirm the CRM field value after saving;&lt;/li&gt;
&lt;li&gt;confirm the current URL/workspace/profile before touching admin settings;&lt;/li&gt;
&lt;li&gt;confirm there is no unsaved-change warning after leaving a page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These checks are not bureaucracy. They are the difference between “I clicked save” and “the state changed.”&lt;/p&gt;

&lt;p&gt;For browser work, the most useful checks are usually concrete: target text, visible role or account, expected URL, and a post-action assertion that the page now shows the intended state.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Evidence to produce
&lt;/h3&gt;

&lt;p&gt;The agent saying “done” is not a completion signal.&lt;/p&gt;

&lt;p&gt;The receipt is.&lt;/p&gt;

&lt;p&gt;Evidence can be lightweight. It should match the risk of the action.&lt;/p&gt;

&lt;p&gt;For read-only work, a source URL and visible-state summary may be enough.&lt;/p&gt;

&lt;p&gt;For draft work, the receipt should include where the draft was staged and what remains unsubmitted.&lt;/p&gt;

&lt;p&gt;For high-risk work, the receipt should include stronger proof:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;final URL or record ID;&lt;/li&gt;
&lt;li&gt;before/after visible state;&lt;/li&gt;
&lt;li&gt;screenshot or DOM/text verification;&lt;/li&gt;
&lt;li&gt;approval event, if any;&lt;/li&gt;
&lt;li&gt;exact object changed;&lt;/li&gt;
&lt;li&gt;blocked or fallback status if the agent stopped;&lt;/li&gt;
&lt;li&gt;rollback or revoke path when relevant.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This turns receipts from debugging artifacts into the boundary of trust.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Blocked vs done
&lt;/h3&gt;

&lt;p&gt;A good browser agent needs a clean way to stop.&lt;/p&gt;

&lt;p&gt;“Blocked” should be a first-class outcome, not a failure hidden under a confident summary.&lt;/p&gt;

&lt;p&gt;The contract should tell the agent when to stop and ask for help:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unexpected login or permission prompt;&lt;/li&gt;
&lt;li&gt;unknown workspace or account mismatch;&lt;/li&gt;
&lt;li&gt;unapproved high-risk side effect;&lt;/li&gt;
&lt;li&gt;page state differs from the expected workflow;&lt;/li&gt;
&lt;li&gt;form validation fails;&lt;/li&gt;
&lt;li&gt;the agent cannot verify the after-state;&lt;/li&gt;
&lt;li&gt;the site asks for a credential, payment method, or sensitive secret.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A blocked task with evidence is better than a fake completion.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Drift handling
&lt;/h3&gt;

&lt;p&gt;Web apps drift constantly.&lt;/p&gt;

&lt;p&gt;Buttons move. Modals appear. Auth expires. Tables paginate differently. Feature flags change the UI. A support tool shows a different layout for a different customer. A CRM introduces a new required field.&lt;/p&gt;

&lt;p&gt;A completion contract should define what happens when the page no longer matches the plan.&lt;/p&gt;

&lt;p&gt;The agent should not improvise through every surprise. Some drift is safe to recover from. Some drift should trigger a stop.&lt;/p&gt;

&lt;p&gt;For browser agents, recovery policy is part of the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Four failure modes the contract should catch
&lt;/h2&gt;

&lt;p&gt;A useful completion contract catches more than rogue behavior.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rogue action
&lt;/h3&gt;

&lt;p&gt;The agent takes a side effect it should not take: sends, deletes, spends, refunds, publishes, submits, changes settings, or touches credentials.&lt;/p&gt;

&lt;p&gt;Control: approval gates for high-risk side effects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Confident incompletion
&lt;/h3&gt;

&lt;p&gt;The agent stops halfway and reports success.&lt;/p&gt;

&lt;p&gt;Control: required checks and evidence-attached reporting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wrong authority
&lt;/h3&gt;

&lt;p&gt;The agent acts through the wrong account, workspace, browser profile, tenant, customer, or admin surface.&lt;/p&gt;

&lt;p&gt;Control: scoped session delegation and pre-run target checks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Unverifiable outcome
&lt;/h3&gt;

&lt;p&gt;The action may have worked, but nobody can prove what changed.&lt;/p&gt;

&lt;p&gt;Control: browser-action receipts tied to final state, not just agent logs.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical completion checklist
&lt;/h2&gt;

&lt;p&gt;Before a browser agent reports success, the workflow should be able to answer a short checklist:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Did it use the expected account, workspace, browser profile, tenant, or customer record?&lt;/td&gt;
&lt;td&gt;Prevents wrong-authority failures.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Did the agent identify the side-effect class before acting?&lt;/td&gt;
&lt;td&gt;Separates read/draft work from send, spend, delete, publish, refund, or settings changes.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Were forbidden shortcuts avoided?&lt;/td&gt;
&lt;td&gt;Keeps the agent from “finishing” by changing the task boundary.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Was approval captured for high-risk side effects?&lt;/td&gt;
&lt;td&gt;Makes consequential actions intentional.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Did the page show the expected post-action state?&lt;/td&gt;
&lt;td&gt;Catches confident incompletion.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Is there a receipt artifact?&lt;/td&gt;
&lt;td&gt;Gives humans something to trust, debug, or reverse.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;If blocked, did the agent stop with evidence instead of improvising?&lt;/td&gt;
&lt;td&gt;Turns drift into a safe handoff instead of a hidden failure.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The exact artifact can vary. It might be a screenshot, a trace, a final URL, a DOM/text assertion, a created record ID, or a short blocked-state report. The important part is that completion is verified against the browser state, not just narrated by the agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where BrowserMan fits
&lt;/h2&gt;

&lt;p&gt;BrowserMan’s view is simple:&lt;/p&gt;

&lt;p&gt;If an agent needs a real logged-in browser, the browser session has become delegated authority. Treat it that way.&lt;/p&gt;

&lt;p&gt;That is different from giving an agent a generic cloud browser. It is also different from running a local browser-control demo with no delegation boundary.&lt;/p&gt;

&lt;p&gt;BrowserMan connects agents to a user’s real Chrome session so the agent can work in the same web environment the user already uses. The important product shape is not just the browser connection. It is the delegation layer around it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;give access, not credentials;&lt;/li&gt;
&lt;li&gt;keep cookies and credentials local in the browser;&lt;/li&gt;
&lt;li&gt;scope the browser authority before execution;&lt;/li&gt;
&lt;li&gt;gate risky writes, submits, publishes, refunds, deletes, and spends;&lt;/li&gt;
&lt;li&gt;leave receipts after the run;&lt;/li&gt;
&lt;li&gt;revoke access when the work is done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A completion contract gives that delegation a practical workflow shape.&lt;/p&gt;

&lt;p&gt;It tells the agent what authority it has, where the line is, what evidence it owes, and when it must stop.&lt;/p&gt;

&lt;h2&gt;
  
  
  The agent should not get to declare victory alone
&lt;/h2&gt;

&lt;p&gt;Browser agents are going to become more capable. They will click better. They will recover better. They will use more tools. They will operate more of the messy web.&lt;/p&gt;

&lt;p&gt;That makes completion contracts more important, not less.&lt;/p&gt;

&lt;p&gt;The future production question is not whether an agent can navigate a page.&lt;/p&gt;

&lt;p&gt;It is whether a team can trust the handoff:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;right session;&lt;/li&gt;
&lt;li&gt;right scope;&lt;/li&gt;
&lt;li&gt;right side-effect gate;&lt;/li&gt;
&lt;li&gt;right after-state;&lt;/li&gt;
&lt;li&gt;right evidence;&lt;/li&gt;
&lt;li&gt;clean stop when the workflow drifts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Approval prompts are the beginning.&lt;/p&gt;

&lt;p&gt;Completion contracts are how browser-agent work becomes operationally trustworthy.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>architecture</category>
      <category>automation</category>
    </item>
    <item>
      <title>Why browser agents stay stuck as POCs</title>
      <dc:creator>Eli</dc:creator>
      <pubDate>Fri, 22 May 2026 15:16:38 +0000</pubDate>
      <link>https://dev.to/eliofbm/why-browser-agents-stay-stuck-as-pocs-30g4</link>
      <guid>https://dev.to/eliofbm/why-browser-agents-stay-stuck-as-pocs-30g4</guid>
      <description>&lt;p&gt;Most browser-agent demos do not fail because the agent cannot click.&lt;/p&gt;

&lt;p&gt;They fail later, in the quieter space between demo and production, because the agent gains capability before the product has an authority model.&lt;/p&gt;

&lt;p&gt;In a demo, it is enough for an agent to open a website, navigate a few pages, fill a form, or pull data from a logged-in dashboard. The audience sees motion. The product team sees possibility. The buyer sees a workflow that used to require a human.&lt;/p&gt;

&lt;p&gt;Then the real questions arrive.&lt;/p&gt;

&lt;p&gt;Whose browser session is the agent using? What was it allowed to touch? Which actions were read-only, and which changed state? When should a human approve the next step? If the workflow goes wrong, can someone replay what happened? If the vendor, employee, or agent should no longer have access, how does that access get revoked?&lt;/p&gt;

&lt;p&gt;That is where browser agents get stuck as POCs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The production gap is not clicking
&lt;/h2&gt;

&lt;p&gt;A browser agent that can click is interesting. A browser agent that can click inside a real logged-in environment is useful. But a browser agent that can click inside a real logged-in environment without scope, approval, visibility, or revocation is not production-ready.&lt;/p&gt;

&lt;p&gt;The production gap has four parts.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Real capability
&lt;/h3&gt;

&lt;p&gt;The useful work is usually not on a clean public webpage. It is inside the authenticated systems where teams already operate: CRMs, admin panels, support inboxes, billing dashboards, CMS tools, vendor portals, analytics tools, and internal apps.&lt;/p&gt;

&lt;p&gt;That is why real browser control keeps getting attention. Operators do not want another screenshot toy. They want an agent that can work where the work actually lives.&lt;/p&gt;

&lt;p&gt;But raw browser control is only the first layer.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Scoped identity
&lt;/h3&gt;

&lt;p&gt;Once an agent touches real systems, it starts to look less like a script and more like an actor in the business.&lt;/p&gt;

&lt;p&gt;That actor should not simply become “the user.” It needs a bounded role for the job. Maybe it can read a support thread but not issue a refund. Maybe it can prepare CRM updates but not send them. Maybe it can navigate a dashboard but must stop before changing a plan, posting publicly, or exporting customer data.&lt;/p&gt;

&lt;p&gt;A browser session is authority. Production systems need to know how that authority was delegated.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Approval and interruption
&lt;/h3&gt;

&lt;p&gt;Human-in-the-loop is often treated as a checkbox: ask before doing risky things. In practice, the hard part is deciding which things are risky, and keeping the approval flow from becoming consent fatigue.&lt;/p&gt;

&lt;p&gt;A good browser-agent workflow needs an exit row.&lt;/p&gt;

&lt;p&gt;It should be obvious when the agent is still reading, when it is preparing an action, and when it is about to cross into a state change. Long-running or background work needs a way to interrupt the run before the wrong action propagates across forty apps.&lt;/p&gt;

&lt;p&gt;Approval is not just friction. It is what makes the agent leaveable.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Audit, replay, and revoke
&lt;/h3&gt;

&lt;p&gt;Logs are not enough if they only say what the prompt was.&lt;/p&gt;

&lt;p&gt;When a browser agent gets trusted with real work, teams need receipts: what page it saw, what it clicked, what it submitted, what network or tool activity happened, and where the workflow crossed from observation into execution.&lt;/p&gt;

&lt;p&gt;Pre-flight checks reduce bad runs. Receipts make bad runs debuggable.&lt;/p&gt;

&lt;p&gt;After the run, a human should be able to replay enough of the sequence to answer: what happened, what changed, what should be retried, and what should be revoked.&lt;/p&gt;

&lt;h2&gt;
  
  
  Production reliability is not demo success
&lt;/h2&gt;

&lt;p&gt;A demo asks whether the agent can complete the task once. Production asks whether it can complete the task every time without creating hidden damage.&lt;/p&gt;

&lt;p&gt;That difference matters. Agent benchmarks often reward at least one successful run across multiple attempts. Business workflows are harsher. If an agent retries ten times and succeeds once, the demo looks alive. If those nine failed attempts touched real browser state, the operator has a cleanup problem.&lt;/p&gt;

&lt;p&gt;For browser agents, reliability is not just success rate. It is recovery behavior: what the agent does when a selector changes, a tool call returns the wrong shape, a session expires, a modal appears, or the site accepts an action but changes the wrong record.&lt;/p&gt;

&lt;p&gt;It is also traceability. A browser run should preserve the tool path, not just the final answer. When the agent picks the wrong tool, passes the wrong arguments, retries in a loop, or “succeeds” with the wrong side effect, the team needs to see the path that produced the outcome.&lt;/p&gt;

&lt;p&gt;For browser work, traces should connect the agent’s intent to the page state, tool calls, network activity, and final business result. The useful question is not only whether the operation worked, but whether the agent can prove which state changed, what receipt was saved, and what recovery path is available.&lt;/p&gt;

&lt;p&gt;This is why scope is also a reliability decision. A narrow agent fails in ways a team can predict and catch. A broad agent fails in ways the team discovers in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Structured tools help reliability. They do not replace authority.
&lt;/h2&gt;

&lt;p&gt;WebMCP and browser-native structured tools are a good development. They can make websites easier for agents to operate by replacing brittle selectors and screenshot guessing with explicit tool surfaces.&lt;/p&gt;

&lt;p&gt;That is a reliability layer.&lt;/p&gt;

&lt;p&gt;It does not answer the authority question.&lt;/p&gt;

&lt;p&gt;Even if a website exposes a clean &lt;code&gt;updateCustomerPlan()&lt;/code&gt; tool, someone still has to decide whose session is being used, what scope was granted, when approval is required, what gets recorded, and how access gets revoked.&lt;/p&gt;

&lt;p&gt;Reliability is not authorization.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real browser control is not governed browser authority
&lt;/h2&gt;

&lt;p&gt;The market clearly wants agents that can use a real browser. That demand is valid. Many important workflows do not have clean APIs, or the API exists but the real operating process still happens inside a logged-in web app.&lt;/p&gt;

&lt;p&gt;But there is a line between raw browser control and governed browser authority.&lt;/p&gt;

&lt;p&gt;Raw browser control asks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;can the agent log in?&lt;/li&gt;
&lt;li&gt;can it click?&lt;/li&gt;
&lt;li&gt;can it extract data?&lt;/li&gt;
&lt;li&gt;can it complete the task?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Governed browser authority asks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;whose session is this?&lt;/li&gt;
&lt;li&gt;what was delegated?&lt;/li&gt;
&lt;li&gt;what needs approval?&lt;/li&gt;
&lt;li&gt;what is logged as a receipt?&lt;/li&gt;
&lt;li&gt;how does access get revoked?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Real browser control gets attention. Governed browser authority earns production trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where BrowserMan fits
&lt;/h2&gt;

&lt;p&gt;BrowserMan is built for the workflows where the agent needs the user’s real Chrome session, not a throwaway cloud browser and not a copied password.&lt;/p&gt;

&lt;p&gt;The point is not that every workflow should use a browser. If a clean API exists and has the right permission model, use it.&lt;/p&gt;

&lt;p&gt;The BrowserMan lane is narrower and sharper: when the workflow only exists inside a logged-in browser session, the missing production layer is delegated browser authority.&lt;/p&gt;

&lt;p&gt;BrowserMan gives agents access to a real Chrome session while keeping cookies local. Agents can run anywhere. Access can be scoped, approved, audited, and revoked.&lt;/p&gt;

&lt;p&gt;That is the difference between a browser-agent demo and a browser-agent workflow that a team can actually leave running.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>The browser session is an authority surface</title>
      <dc:creator>Eli</dc:creator>
      <pubDate>Thu, 21 May 2026 22:28:52 +0000</pubDate>
      <link>https://dev.to/eliofbm/the-browser-session-is-an-authority-surface-33l3</link>
      <guid>https://dev.to/eliofbm/the-browser-session-is-an-authority-surface-33l3</guid>
      <description>&lt;p&gt;Agent demos make browser use look like a control problem.&lt;/p&gt;

&lt;p&gt;Can the agent open the page? Can it understand the screen? Can it click the right button? Can it recover when the selector changes?&lt;/p&gt;

&lt;p&gt;Those are real problems. But they are not the whole production problem.&lt;/p&gt;

&lt;p&gt;Once an agent can use a real logged-in browser session, the browser is no longer just an interface. It is an authority surface.&lt;/p&gt;

&lt;p&gt;That distinction matters because a browser session is not neutral plumbing. It contains live accounts, cookies, admin panels, inboxes, CRMs, CMS dashboards, customer records, billing pages, social accounts, and internal tools. A click inside that environment may be a harmless navigation. It may also be a customer-facing message, a production mutation, a purchase, a delete, or a publish.&lt;/p&gt;

&lt;p&gt;In a demo, a browser click is just a click.&lt;/p&gt;

&lt;p&gt;In production, a browser click can be delegated authority.&lt;/p&gt;

&lt;h2&gt;
  
  
  The demo-to-deployment gap is partly an authority gap
&lt;/h2&gt;

&lt;p&gt;A lot of agent deployment discussion focuses on orchestration, memory, planning, evaluation, and model quality. Those all matter. But the gap between an impressive demo and a safe deployment is often more basic:&lt;/p&gt;

&lt;p&gt;Who is the agent acting as?&lt;/p&gt;

&lt;p&gt;What is it allowed to see?&lt;/p&gt;

&lt;p&gt;What is it allowed to change?&lt;/p&gt;

&lt;p&gt;Which actions require approval?&lt;/p&gt;

&lt;p&gt;What proof remains after the action?&lt;/p&gt;

&lt;p&gt;How does the user revoke access?&lt;/p&gt;

&lt;p&gt;Those questions are easy to ignore when the demo happens in a sandbox or a fresh cloud browser. They become unavoidable when the workflow depends on the user’s actual logged-in environment.&lt;/p&gt;

&lt;p&gt;That is where many useful browser-agent workflows live: support inboxes, sales research, CRM updates, CMS publishing, partner portals, admin dashboards, finance tools, and social accounts. These are not just websites. They are account surfaces.&lt;/p&gt;

&lt;p&gt;If an agent touches them, the product is not only a click loop. The product is an authority model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Browser access is not one permission
&lt;/h2&gt;

&lt;p&gt;“Give the agent browser access” is too broad.&lt;/p&gt;

&lt;p&gt;A real browser workflow has several different authority tiers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Observe&lt;/strong&gt; — read page state, current URL, visible text, selected tab, or browser context.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Navigate&lt;/strong&gt; — open a page, switch tabs, visit a URL, or move through an app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prepare&lt;/strong&gt; — fill a draft, compose a message, stage a CRM update, or queue a change.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execute&lt;/strong&gt; — click send, submit, delete, spend, publish, approve, or update.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delegate&lt;/strong&gt; — let the agent repeat execution under a scoped policy over time.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The risk changes at each tier.&lt;/p&gt;

&lt;p&gt;Reading the current page is not the same as opening a customer record. Opening a customer record is not the same as editing it. Editing a draft is not the same as pressing send.&lt;/p&gt;

&lt;p&gt;If the permission model treats all of those as “browser control,” the user has no meaningful way to delegate safely. The agent either gets too little access to be useful or too much access to be trusted.&lt;/p&gt;

&lt;p&gt;The useful middle ground is explicit authority tiers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspection is not always passive
&lt;/h2&gt;

&lt;p&gt;Recent MCP and agent-tooling discussions keep circling the same lesson: tools are not always passive objects.&lt;/p&gt;

&lt;p&gt;A scanner may need to start an MCP server to inspect it. A registry may pull metadata that triggers unexpected behavior. A coding agent may load extensions, skills, or tools that have more reach than the user expected.&lt;/p&gt;

&lt;p&gt;The same lesson applies to browsers.&lt;/p&gt;

&lt;p&gt;Browser inspection can look harmless, but the boundary moves quickly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reading the current URL is observation.&lt;/li&gt;
&lt;li&gt;Opening a page is a command.&lt;/li&gt;
&lt;li&gt;Clicking a button may produce a side effect.&lt;/li&gt;
&lt;li&gt;Submitting a form may act under the user’s account.&lt;/li&gt;
&lt;li&gt;Posting from a social account may create a public artifact.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why browser agents need more than “the model seems careful.” The model can be careful and still operate through a surface that has too much authority.&lt;/p&gt;

&lt;p&gt;A lot of agent security is not exotic. It is ordinary security hygiene moved into an execution loop. If the agent can use a real browser session, then stale access, broad permissions, unlogged actions, and borrowed cookies become the same old problems with a faster click rate.&lt;/p&gt;

&lt;h2&gt;
  
  
  The browser session is different from an API key
&lt;/h2&gt;

&lt;p&gt;Developers already understand that API keys need scope, rotation, attribution, and audit trails.&lt;/p&gt;

&lt;p&gt;A browser session deserves the same seriousness, but it is messier.&lt;/p&gt;

&lt;p&gt;An API key usually maps to a known service boundary. A browser session crosses many services. It may hold active sessions for Gmail, Stripe, Salesforce, Linear, GitHub, WordPress, X, LinkedIn, Notion, internal admin tools, and whatever else is open or logged in.&lt;/p&gt;

&lt;p&gt;That makes “just give the agent the browser” a very large grant.&lt;/p&gt;

&lt;p&gt;It also makes credential sharing the wrong mental model. Giving an agent a password, cookie jar, or full browser profile is borrowed secret authority. It may work, but it blurs ownership and cleanup.&lt;/p&gt;

&lt;p&gt;The better model is delegated authority:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the user keeps credentials and cookies local,&lt;/li&gt;
&lt;li&gt;the agent gets a controlled channel to the browser,&lt;/li&gt;
&lt;li&gt;actions are scoped and attributed,&lt;/li&gt;
&lt;li&gt;risky steps are gated,&lt;/li&gt;
&lt;li&gt;access can be revoked when the job is done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the core BrowserMan view: give agents a browser session, not your credentials.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real Chrome raises the stakes
&lt;/h2&gt;

&lt;p&gt;Cloud browsers are useful. Sandboxes are useful. Browser infrastructure is useful.&lt;/p&gt;

&lt;p&gt;But a real Chrome profile is a different kind of object.&lt;/p&gt;

&lt;p&gt;It contains the web environment the user already works in: actual login state, existing tabs, cookies, device context, extensions, admin pages, drafts, dashboards, and half-finished workflows.&lt;/p&gt;

&lt;p&gt;That is exactly why real-browser access is powerful. It lets agents help with work that APIs do not cover well and sandbox browsers cannot reproduce cleanly.&lt;/p&gt;

&lt;p&gt;It is also why the permission boundary matters.&lt;/p&gt;

&lt;p&gt;A screenshot of a logged-in app is not the same as a session that can submit changes. A page read is not the same as a button click. A one-off approved action is not the same as long-running delegation.&lt;/p&gt;

&lt;p&gt;The more real the browser, the more explicit the authority model needs to be.&lt;/p&gt;

&lt;h2&gt;
  
  
  What good browser delegation should answer
&lt;/h2&gt;

&lt;p&gt;A production browser-agent workflow should be able to answer a few boring questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which browser, account, or session is the agent using?&lt;/li&gt;
&lt;li&gt;What can it read?&lt;/li&gt;
&lt;li&gt;What can it change?&lt;/li&gt;
&lt;li&gt;Which actions require approval?&lt;/li&gt;
&lt;li&gt;What happened after approval?&lt;/li&gt;
&lt;li&gt;What receipt exists after the action?&lt;/li&gt;
&lt;li&gt;How does the user revoke future access?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These questions are not just security theater. They are how browser agents become operationally usable.&lt;/p&gt;

&lt;p&gt;For example, a sales agent should probably be able to research prospects and draft outreach with low friction. It should not silently send from a real account without a clear send gate. The send button is a permission boundary.&lt;/p&gt;

&lt;p&gt;A support agent may read tickets and prepare a reply. Issuing a refund, deleting data, or changing account settings should be a different tier.&lt;/p&gt;

&lt;p&gt;A CMS assistant may draft an article and fill metadata. Publishing publicly should leave a receipt.&lt;/p&gt;

&lt;p&gt;A CRM assistant may enrich a company record. Bulk updates should have a preview and rollback story.&lt;/p&gt;

&lt;p&gt;This is not about making every workflow slow. It is about putting friction where authority changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The permission boundary is the product
&lt;/h2&gt;

&lt;p&gt;The click loop is easy to admire because it is visible. The agent navigates, reads, clicks, and completes the task.&lt;/p&gt;

&lt;p&gt;The permission boundary is less flashy, but it is the product surface that matters in production.&lt;/p&gt;

&lt;p&gt;Good browser-agent systems should separate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;observable state,&lt;/li&gt;
&lt;li&gt;navigation commands,&lt;/li&gt;
&lt;li&gt;staged changes,&lt;/li&gt;
&lt;li&gt;side-effect execution,&lt;/li&gt;
&lt;li&gt;approval gates,&lt;/li&gt;
&lt;li&gt;receipts,&lt;/li&gt;
&lt;li&gt;revoke.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That separation lets users delegate real work without handing over the whole house.&lt;/p&gt;

&lt;p&gt;It also makes browser automation easier to trust. When something goes wrong, the user should not have to reconstruct the session from vibes. They should know what the agent could access, what it did, and where the action crossed from preparation into execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  BrowserMan’s lane
&lt;/h2&gt;

&lt;p&gt;BrowserMan is built around delegated real-browser access for AI agents.&lt;/p&gt;

&lt;p&gt;The point is not that every agent should always use the user’s real Chrome. Many tasks are better in a sandbox, a remote browser, or a normal API.&lt;/p&gt;

&lt;p&gt;The point is that some valuable workflows depend on the user’s actual logged-in browser state. In those cases, the browser session is authority, and it should be delegated deliberately.&lt;/p&gt;

&lt;p&gt;BrowserMan’s category is not “undetectable browser automation.” It is controlled browser authority:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;agents can use the user’s real Chrome,&lt;/li&gt;
&lt;li&gt;cookies stay local,&lt;/li&gt;
&lt;li&gt;agents can run anywhere through a hosted relay that moves commands,&lt;/li&gt;
&lt;li&gt;access can be scoped, attributed, and revoked,&lt;/li&gt;
&lt;li&gt;risky actions should have visible gates and receipts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the difference between browser control as a demo and browser delegation as an operational layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The practical rule
&lt;/h2&gt;

&lt;p&gt;If an agent is only reading, optimize for speed.&lt;/p&gt;

&lt;p&gt;If an agent is preparing, optimize for review.&lt;/p&gt;

&lt;p&gt;If an agent is submitting, publishing, deleting, spending, or messaging from a real account, optimize for authority: scope, approval, receipt, revoke.&lt;/p&gt;

&lt;p&gt;The browser session is not just an interface.&lt;/p&gt;

&lt;p&gt;It is delegated authority.&lt;/p&gt;

&lt;p&gt;Treat it that way.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>browserautomation</category>
      <category>security</category>
    </item>
    <item>
      <title>Screenshots Are Not Browser State</title>
      <dc:creator>Eli</dc:creator>
      <pubDate>Wed, 20 May 2026 12:27:13 +0000</pubDate>
      <link>https://dev.to/eliofbm/screenshots-are-not-browser-state-4h3n</link>
      <guid>https://dev.to/eliofbm/screenshots-are-not-browser-state-4h3n</guid>
      <description>&lt;h1&gt;
  
  
  Screenshots Are Not Browser State
&lt;/h1&gt;

&lt;p&gt;A coding agent that only sees screenshots is debugging theater.&lt;/p&gt;

&lt;p&gt;Screenshots show what broke. They do not show why it broke.&lt;/p&gt;

&lt;p&gt;The useful loop is real browser state: console errors, network requests, performance traces, DOM state, storage, cookies, session context, and the exact page the user is stuck on.&lt;/p&gt;

&lt;p&gt;That distinction moved from niche to obvious today. Chrome for Developers announced that Chrome DevTools for agents is stable: coding agents can use Chrome DevTools MCP to test web apps in Chrome and inspect console logs, network requests, performance traces, and Lighthouse reports.&lt;/p&gt;

&lt;p&gt;That is the right direction. Agents do not need prettier screenshots. They need runtime evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Screenshots show symptoms
&lt;/h2&gt;

&lt;p&gt;A screenshot can tell an agent that a checkout button is disabled.&lt;/p&gt;

&lt;p&gt;It cannot reliably tell the agent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which request failed;&lt;/li&gt;
&lt;li&gt;whether the API returned 401, 403, 429, or 500;&lt;/li&gt;
&lt;li&gt;whether a CSP rule blocked a script;&lt;/li&gt;
&lt;li&gt;whether hydration failed;&lt;/li&gt;
&lt;li&gt;whether a feature flag changed the DOM;&lt;/li&gt;
&lt;li&gt;whether local storage is stale;&lt;/li&gt;
&lt;li&gt;whether the user is in the wrong workspace;&lt;/li&gt;
&lt;li&gt;whether the bug only happens behind a logged-in account.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HTML snapshots have a similar problem. They are useful, but they are still partial. They miss runtime behavior, timing, auth state, network edges, and the browser’s actual execution context.&lt;/p&gt;

&lt;p&gt;A developer would open DevTools. A useful coding agent should be able to do the same.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real browser loop
&lt;/h2&gt;

&lt;p&gt;A real browser loop gives an agent evidence it can act on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Console:&lt;/strong&gt; stack traces, warnings, failed hydration, client-side errors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network:&lt;/strong&gt; request payloads, response codes, headers, redirects, CORS failures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance:&lt;/strong&gt; long tasks, layout shifts, slow resources, Lighthouse reports.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DOM and accessibility state:&lt;/strong&gt; what the page actually rendered, not what the template promised.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cookies and storage:&lt;/strong&gt; auth state, workspace IDs, stale tokens, feature flags.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session context:&lt;/strong&gt; the logged-in page where the user actually hit the problem.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why Chrome DevTools MCP matters. It turns the browser from a picture into an evidence source.&lt;/p&gt;

&lt;p&gt;The same pattern is showing up elsewhere too. Developers are building tools that let coding agents drive real Chrome, inspect multi-tab sessions, and return structured results that agents can parse. Browser panes inside agent workspaces are becoming more than previews; they are becoming review surfaces, collaboration surfaces, and handoff surfaces.&lt;/p&gt;

&lt;p&gt;The direction is clear: browser work is becoming part of the agent runtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  Machine-readable browser evidence
&lt;/h2&gt;

&lt;p&gt;The next step is not just “let the agent see Chrome.” It is letting the agent receive browser evidence in a form it can use.&lt;/p&gt;

&lt;p&gt;A screenshot forces the model to infer. A structured browser result lets the agent reason.&lt;/p&gt;

&lt;p&gt;For example, a browser run can return:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the action attempted;&lt;/li&gt;
&lt;li&gt;the URL and frame where it ran;&lt;/li&gt;
&lt;li&gt;console errors observed;&lt;/li&gt;
&lt;li&gt;network failures observed;&lt;/li&gt;
&lt;li&gt;performance warnings;&lt;/li&gt;
&lt;li&gt;resulting DOM or accessibility state;&lt;/li&gt;
&lt;li&gt;whether the intended after-state appeared.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That matters because agents are iterative. The output of one browser step becomes the input to the next coding step. If the browser result is only an image, the agent is guessing. If the browser result is structured evidence, the agent can repair, rerun, and verify.&lt;/p&gt;

&lt;p&gt;This is the practical meaning of “screenshots are not browser state.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Logged-in Chrome changes the problem
&lt;/h2&gt;

&lt;p&gt;For local development, real browser evidence is mostly about debugging.&lt;/p&gt;

&lt;p&gt;But real browser work does not stop at local development.&lt;/p&gt;

&lt;p&gt;Many useful tasks happen behind login:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;update a billing setting;&lt;/li&gt;
&lt;li&gt;check a support inbox;&lt;/li&gt;
&lt;li&gt;publish a CMS post;&lt;/li&gt;
&lt;li&gt;verify a CRM record;&lt;/li&gt;
&lt;li&gt;upload a file to a client portal;&lt;/li&gt;
&lt;li&gt;refund an order;&lt;/li&gt;
&lt;li&gt;change an ad campaign;&lt;/li&gt;
&lt;li&gt;inspect a production dashboard.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At that point, the browser is no longer just an inspection surface. It is authority.&lt;/p&gt;

&lt;p&gt;A signed-in Chrome session contains cookies, SaaS access, internal tools, live customer data, and the ability to change state. If an agent can operate that session, it is not merely “using a browser.” It is acting through delegated authority.&lt;/p&gt;

&lt;p&gt;That is a different product boundary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompts are not permissions
&lt;/h2&gt;

&lt;p&gt;A prompt that says “be careful” is not a permission system.&lt;/p&gt;

&lt;p&gt;A delay before deletion is not a permission system.&lt;/p&gt;

&lt;p&gt;A log after the fact is not a permission system.&lt;/p&gt;

&lt;p&gt;For signed-in browser workflows, the control layer needs to be explicit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which browser session is exposed;&lt;/li&gt;
&lt;li&gt;what sites or workspaces are in scope;&lt;/li&gt;
&lt;li&gt;which actions are read-only;&lt;/li&gt;
&lt;li&gt;which writes require approval;&lt;/li&gt;
&lt;li&gt;where the approval line sits;&lt;/li&gt;
&lt;li&gt;what receipt proves what changed;&lt;/li&gt;
&lt;li&gt;how access can be revoked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The approval line is important. It is the point where browser-agent memory stops being notes and becomes a control surface.&lt;/p&gt;

&lt;p&gt;Before the line, the agent can gather evidence: page state, previous failures, current auth boundary, intended action.&lt;/p&gt;

&lt;p&gt;At the line, a human or policy gate decides whether the agent may write.&lt;/p&gt;

&lt;p&gt;After the line, the system needs a receipt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Receipts are not logs
&lt;/h2&gt;

&lt;p&gt;Logs are useful for debugging a run.&lt;/p&gt;

&lt;p&gt;Receipts are useful for trusting delegated work.&lt;/p&gt;

&lt;p&gt;A browser-action receipt should answer questions a team can check later:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;who or what agent acted;&lt;/li&gt;
&lt;li&gt;which browser session and account context were used;&lt;/li&gt;
&lt;li&gt;what authority was delegated;&lt;/li&gt;
&lt;li&gt;why the action was allowed;&lt;/li&gt;
&lt;li&gt;what data moved;&lt;/li&gt;
&lt;li&gt;what changed on the page;&lt;/li&gt;
&lt;li&gt;what after-state proves the change landed;&lt;/li&gt;
&lt;li&gt;what can be rolled back or revoked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is different from “the agent clicked a button.”&lt;/p&gt;

&lt;p&gt;It is also different from a screenshot. A screenshot may show the final page. A receipt should preserve the authority, decision, action, and evidence trail around the change.&lt;/p&gt;

&lt;p&gt;This is where real browser loops and delegated browser authority meet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where BrowserMan fits
&lt;/h2&gt;

&lt;p&gt;Chrome DevTools MCP is a strong answer for local coding loops. It gives agents runtime browser evidence: console, network, performance, Lighthouse, and the real page.&lt;/p&gt;

&lt;p&gt;BrowserMan’s lane is adjacent.&lt;/p&gt;

&lt;p&gt;BrowserMan gives agents controlled access to a user’s real Chrome session. The agent can run anywhere, while the signed-in browser stays on the user’s device. Cookies stay local. Access can be scoped, gated, audited, approved, and revoked.&lt;/p&gt;

&lt;p&gt;The useful framing is not “more browser control.”&lt;/p&gt;

&lt;p&gt;It is controlled delegation of real browser authority.&lt;/p&gt;

&lt;p&gt;Local dev loop:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can the agent inspect and fix what is happening in Chrome?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Delegated browser workflow:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can the agent use the right signed-in session, within the right scope, with approval before risky writes and receipts after changes?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Both matter. They solve different parts of the same shift: agents are moving from text into real browser work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The browser is becoming an agent runtime
&lt;/h2&gt;

&lt;p&gt;The browser is not just a viewport anymore.&lt;/p&gt;

&lt;p&gt;For coding agents, it is an evidence source.&lt;/p&gt;

&lt;p&gt;For workflow agents, it is an action surface.&lt;/p&gt;

&lt;p&gt;For signed-in work, it is an authority surface.&lt;/p&gt;

&lt;p&gt;That means the next generation of browser-agent tooling should not be judged only by whether the agent can click through a page. It should be judged by whether the system can preserve the state, authority, approval, and proof around the work.&lt;/p&gt;

&lt;p&gt;Screenshots are not enough.&lt;/p&gt;

&lt;p&gt;Real browser state is the evidence.&lt;/p&gt;

&lt;p&gt;Logged-in browser state is the authority.&lt;/p&gt;

&lt;p&gt;And delegated authority needs approval lines and receipts.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>mcp</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Browser-action receipts are not logs</title>
      <dc:creator>Eli</dc:creator>
      <pubDate>Tue, 19 May 2026 02:53:11 +0000</pubDate>
      <link>https://dev.to/eliofbm/browser-action-receipts-are-not-logs-2e77</link>
      <guid>https://dev.to/eliofbm/browser-action-receipts-are-not-logs-2e77</guid>
      <description>&lt;p&gt;The browser-agent demo is easy to understand.&lt;/p&gt;

&lt;p&gt;The agent opens a page. It clicks. It fills a form. It submits.&lt;/p&gt;

&lt;p&gt;That makes browser agents feel like a UI problem. Can the model see the page? Can it find the right button? Can it recover when the layout changes?&lt;/p&gt;

&lt;p&gt;Those questions matter. But they are not the production boundary.&lt;/p&gt;

&lt;p&gt;The production boundary is this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When an agent uses a real browser session, what authority did we delegate, what changed, and what proof remains after the handoff?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A generic log is not enough for that.&lt;/p&gt;

&lt;p&gt;A log says the agent ran.&lt;/p&gt;

&lt;p&gt;A browser-action receipt should prove what the agent was allowed to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Logs are useful. They are not receipts.
&lt;/h2&gt;

&lt;p&gt;Most agent observability starts with run logs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the prompt;&lt;/li&gt;
&lt;li&gt;the model response;&lt;/li&gt;
&lt;li&gt;the tools called;&lt;/li&gt;
&lt;li&gt;the timestamps;&lt;/li&gt;
&lt;li&gt;maybe a trace or screenshot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is useful for debugging.&lt;/p&gt;

&lt;p&gt;But a browser agent working inside a logged-in session is not only producing output. It may be using account authority.&lt;/p&gt;

&lt;p&gt;It might publish a CMS article. Update a CRM record. Refund a customer. Change a billing plan. Submit a claim. Send a reply from a real support inbox.&lt;/p&gt;

&lt;p&gt;For those actions, “the agent clicked the button” is not the question.&lt;/p&gt;

&lt;p&gt;The questions are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who delegated the browser session?&lt;/li&gt;
&lt;li&gt;What scope was granted?&lt;/li&gt;
&lt;li&gt;What visible state did the agent see before acting?&lt;/li&gt;
&lt;li&gt;What exact object did it change?&lt;/li&gt;
&lt;li&gt;What evidence proves the after-state?&lt;/li&gt;
&lt;li&gt;Was there an approval gate before the action?&lt;/li&gt;
&lt;li&gt;Is there a rollback or revoke path?&lt;/li&gt;
&lt;li&gt;Why was the action allowed?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the difference between a log and a receipt.&lt;/p&gt;

&lt;h2&gt;
  
  
  The receipt should match the risk of the action
&lt;/h2&gt;

&lt;p&gt;Not every browser action needs the same receipt.&lt;/p&gt;

&lt;p&gt;A read-only research task does not need the same proof as a billing refund. A draft does not need the same proof as a published article. A CRM note does not need the same proof as a payment or claim submission.&lt;/p&gt;

&lt;p&gt;A practical receipt model can be tiered by action risk.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Read-only browser work
&lt;/h3&gt;

&lt;p&gt;For read-only work, the receipt should answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what page or account context was read;&lt;/li&gt;
&lt;li&gt;when it was read;&lt;/li&gt;
&lt;li&gt;what visible state or source was used;&lt;/li&gt;
&lt;li&gt;what summary or artifact was produced.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important boundary is source integrity. The agent should not pretend a private or logged-in page is a generic web result.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Drafting work
&lt;/h3&gt;

&lt;p&gt;For draft work, the receipt should include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the generated draft;&lt;/li&gt;
&lt;li&gt;the target surface;&lt;/li&gt;
&lt;li&gt;the account or workspace context;&lt;/li&gt;
&lt;li&gt;who owns approval before publishing or sending.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A draft is not a final action. The receipt should make that obvious.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Browser write actions
&lt;/h3&gt;

&lt;p&gt;For write actions, the receipt needs to be stronger:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;before-state snapshot;&lt;/li&gt;
&lt;li&gt;exact target and action;&lt;/li&gt;
&lt;li&gt;changed object;&lt;/li&gt;
&lt;li&gt;approval or authority gate;&lt;/li&gt;
&lt;li&gt;after-state verification;&lt;/li&gt;
&lt;li&gt;rollback or revoke path.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where many demos become ambiguous. The agent did something, but no one can later tell exactly what was allowed, what changed, or how to undo it.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. External-consequence actions
&lt;/h3&gt;

&lt;p&gt;Some browser actions cross into real-world consequences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;issuing a refund;&lt;/li&gt;
&lt;li&gt;changing a subscription;&lt;/li&gt;
&lt;li&gt;publishing to a public channel;&lt;/li&gt;
&lt;li&gt;submitting a form to a third party;&lt;/li&gt;
&lt;li&gt;sending a message from a company account;&lt;/li&gt;
&lt;li&gt;changing a claim, invoice, or customer record.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For these, a receipt should be more than observability. It should be an accountability artifact.&lt;/p&gt;

&lt;h2&gt;
  
  
  Concrete workflows make receipts obvious
&lt;/h2&gt;

&lt;p&gt;“Agent audit trail” sounds abstract until you put it inside an actual workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Refund and support workflows
&lt;/h3&gt;

&lt;p&gt;A support agent handling a refund needs more than a chat transcript.&lt;/p&gt;

&lt;p&gt;A useful receipt might include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the support ticket;&lt;/li&gt;
&lt;li&gt;the customer account viewed;&lt;/li&gt;
&lt;li&gt;the order or billing state before action;&lt;/li&gt;
&lt;li&gt;the policy used;&lt;/li&gt;
&lt;li&gt;the refund amount;&lt;/li&gt;
&lt;li&gt;the approval gate;&lt;/li&gt;
&lt;li&gt;the Stripe/admin state after action;&lt;/li&gt;
&lt;li&gt;the rollback or escalation path.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the refund is disputed later, the receipt should show why the action was allowed.&lt;/p&gt;

&lt;h3&gt;
  
  
  CMS and publishing workflows
&lt;/h3&gt;

&lt;p&gt;A publishing agent needs to prove more than “content was generated.”&lt;/p&gt;

&lt;p&gt;A useful receipt might include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the draft body;&lt;/li&gt;
&lt;li&gt;the target account/site;&lt;/li&gt;
&lt;li&gt;the preview URL;&lt;/li&gt;
&lt;li&gt;the final published URL;&lt;/li&gt;
&lt;li&gt;the canonical URL and tags;&lt;/li&gt;
&lt;li&gt;the approval owner;&lt;/li&gt;
&lt;li&gt;the unpublish or rollback path.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For public publishing, the browser session is not just a renderer. It is authority to speak.&lt;/p&gt;

&lt;h3&gt;
  
  
  CRM workflows
&lt;/h3&gt;

&lt;p&gt;A CRM agent touching records should leave evidence of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the record before the update;&lt;/li&gt;
&lt;li&gt;the source evidence used;&lt;/li&gt;
&lt;li&gt;the field changed;&lt;/li&gt;
&lt;li&gt;the follow-up created;&lt;/li&gt;
&lt;li&gt;the owner notified;&lt;/li&gt;
&lt;li&gt;the after-state.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without that, CRM automation becomes silent drift.&lt;/p&gt;

&lt;h3&gt;
  
  
  Regulated or operational workflows
&lt;/h3&gt;

&lt;p&gt;In healthcare revenue-cycle management, insurance claims, finance ops, procurement, or compliance-heavy support, the audit trail can become the product.&lt;/p&gt;

&lt;p&gt;If a claim is denied, a refund is challenged, or a regulator asks what happened, the company needs an explanation.&lt;/p&gt;

&lt;p&gt;A browser agent receipt should make that explanation recoverable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should a browser-action receipt contain?
&lt;/h2&gt;

&lt;p&gt;A useful browser-action receipt should be boring and specific.&lt;/p&gt;

&lt;p&gt;At minimum:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Session/account context&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Which browser profile, account, workspace, or app context was used?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Delegated scope&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
What was the agent allowed to read, draft, click, submit, or change?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Before-state evidence&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
What visible state existed before the action?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Exact target/action&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Which button, field, record, form, or publishing surface was targeted?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Changed object&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
What record, article, ticket, order, message, or setting changed?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Approval gate&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Was a human approval required? Who approved what?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;After-state verification&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
What proves the action completed as intended?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rollback or revoke path&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
How can the action be undone, revoked, unpublished, escalated, or reviewed?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Durable receipt link or export&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Where can the team inspect the evidence later?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The point is not to make every browser action bureaucratic.&lt;/p&gt;

&lt;p&gt;The point is to make consequential actions legible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Browser control is not the same as delegated browser authority
&lt;/h2&gt;

&lt;p&gt;Browser-agent tooling often starts with control:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;open a page;&lt;/li&gt;
&lt;li&gt;click a button;&lt;/li&gt;
&lt;li&gt;fill a form;&lt;/li&gt;
&lt;li&gt;scrape a table;&lt;/li&gt;
&lt;li&gt;submit something.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Control is necessary. But production workflows need delegated authority.&lt;/p&gt;

&lt;p&gt;That means the user or team should be able to decide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which browser session is available;&lt;/li&gt;
&lt;li&gt;what scope the agent receives;&lt;/li&gt;
&lt;li&gt;when approval is required;&lt;/li&gt;
&lt;li&gt;what evidence is captured;&lt;/li&gt;
&lt;li&gt;when access is revoked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the line BrowserMan is built around.&lt;/p&gt;

&lt;p&gt;BrowserMan connects AI agents to a user’s real Chrome session while cookies and credentials stay in the browser. The agent can run elsewhere — Claude Code, Cursor, OpenClaw, n8n, a shell script, or another MCP/HTTP client — but the browser authority remains anchored in the user’s local Chrome.&lt;/p&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;p&gt;If the browser session is authority, the product is not “let the agent click.”&lt;/p&gt;

&lt;p&gt;The product is: delegate authority carefully, gate consequential actions, and leave receipts after the handoff.&lt;/p&gt;

&lt;h2&gt;
  
  
  The quiet test
&lt;/h2&gt;

&lt;p&gt;The quiet test for a browser agent is not whether it can complete the happy-path demo.&lt;/p&gt;

&lt;p&gt;It is whether someone can come back tomorrow and answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What did the agent see?&lt;/li&gt;
&lt;li&gt;What was it allowed to do?&lt;/li&gt;
&lt;li&gt;What did it change?&lt;/li&gt;
&lt;li&gt;Who approved it?&lt;/li&gt;
&lt;li&gt;What proof remains?&lt;/li&gt;
&lt;li&gt;How do we undo or revoke it?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the answer is “check the logs,” the system is not finished.&lt;/p&gt;

&lt;p&gt;Logs help developers debug agents.&lt;/p&gt;

&lt;p&gt;Receipts help teams trust delegated browser work.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>automation</category>
      <category>browser</category>
    </item>
    <item>
      <title>Browser agents do not fail at clicking. They fail at handoff.</title>
      <dc:creator>Eli</dc:creator>
      <pubDate>Sun, 17 May 2026 09:57:11 +0000</pubDate>
      <link>https://dev.to/eliofbm/browser-agents-do-not-fail-at-clicking-they-fail-at-handoff-24ic</link>
      <guid>https://dev.to/eliofbm/browser-agents-do-not-fail-at-clicking-they-fail-at-handoff-24ic</guid>
      <description>&lt;p&gt;Browser-agent demos make clicking look like the product.&lt;/p&gt;

&lt;p&gt;The agent opens a browser. It reads a page. It fills a form. It clicks a button. Everyone can see the progress, so the demo feels concrete in a way that chat-based AI often does not.&lt;/p&gt;

&lt;p&gt;That is useful. But it is not the production test.&lt;/p&gt;

&lt;p&gt;Production workflows fail later, in the handoff: from CRM to ticketing, from ticketing to ERP, from ERP to a client portal, from a draft to a submitted action, from an agent-owned step back to a human-owned step.&lt;/p&gt;

&lt;p&gt;The question is not only whether an agent can operate a page.&lt;/p&gt;

&lt;p&gt;The question is whether the agent can carry the right state and the right authority across the workflow without losing accountability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Capability is not operationalization
&lt;/h2&gt;

&lt;p&gt;A browser agent that can click through a website proves capability. It does not prove the workflow is deployed.&lt;/p&gt;

&lt;p&gt;Deployment has much more boring questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who owns the credentials?&lt;/li&gt;
&lt;li&gt;What triggers the workflow?&lt;/li&gt;
&lt;li&gt;What happens when the site changes?&lt;/li&gt;
&lt;li&gt;Who notices when the agent is stuck?&lt;/li&gt;
&lt;li&gt;Which actions are draft-only?&lt;/li&gt;
&lt;li&gt;Which actions can submit, delete, refund, post, or spend?&lt;/li&gt;
&lt;li&gt;What does the user see after the run?&lt;/li&gt;
&lt;li&gt;How does access get revoked?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These questions rarely show up in the first demo, but they decide whether the workflow survives the first week.&lt;/p&gt;

&lt;p&gt;A model can work and the deployment can still die because nobody owns the handoff.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handoff amnesia
&lt;/h2&gt;

&lt;p&gt;A lot of enterprise AI failure is not model failure. It is workflow amnesia.&lt;/p&gt;

&lt;p&gt;The CRM says the lead is qualified. The support system is missing the last customer note. The ERP has a different order status. The client portal requires a logged-in browser action. The agent reads one surface, guesses about the rest, and the human starts over.&lt;/p&gt;

&lt;p&gt;That is not automation. That is a faster way to expose the gaps between systems.&lt;/p&gt;

&lt;p&gt;Browser agents sit directly on this fault line because real operator workflows often do not live in one clean API. They live across dashboards, inboxes, admin panels, CMS forms, portals, and half-documented internal tools.&lt;/p&gt;

&lt;p&gt;The browser is useful because it is where the messy workflow state already exists.&lt;/p&gt;

&lt;p&gt;But the browser also makes the authority problem unavoidable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handoffs are authority changes
&lt;/h2&gt;

&lt;p&gt;When an agent moves from reading a CRM page to drafting a support reply, the authority boundary changes.&lt;/p&gt;

&lt;p&gt;When it moves from a support draft to a public send button, the boundary changes again.&lt;/p&gt;

&lt;p&gt;When it moves from checking an order to issuing a refund, the boundary changes again.&lt;/p&gt;

&lt;p&gt;Each surface has a different account, permission model, consequence level, and expectation of review.&lt;/p&gt;

&lt;p&gt;That means the handoff is not only a state-management problem. It is an authority-management problem.&lt;/p&gt;

&lt;p&gt;A browser session is not just context. It is authority.&lt;/p&gt;

&lt;p&gt;A signed-in browser can read private data, update records, send messages, post publicly, submit forms, delete content, change settings, or spend money. Treating all of that as one generic “browser access” permission is too broad.&lt;/p&gt;

&lt;h2&gt;
  
  
  Browser control needs a proof chain
&lt;/h2&gt;

&lt;p&gt;A browser agent seeing the right page is not permission to click.&lt;/p&gt;

&lt;p&gt;Before a consequential action, the system should be able to answer a few plain questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What site, account, and task were delegated?&lt;/li&gt;
&lt;li&gt;What page or surface did the agent act on?&lt;/li&gt;
&lt;li&gt;What text, form, button, or state was involved?&lt;/li&gt;
&lt;li&gt;Was the action read-only, draft-only, or write/submit/delete/spend?&lt;/li&gt;
&lt;li&gt;Did the action require a pause or approval?&lt;/li&gt;
&lt;li&gt;What changed after the action?&lt;/li&gt;
&lt;li&gt;Can the user revoke the delegated access afterward?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the proof chain.&lt;/p&gt;

&lt;p&gt;Browser control proves capability. A proof chain proves authority.&lt;/p&gt;

&lt;p&gt;Without that chain, the dangerous bug is not always a bad click. Sometimes it is a correct-looking click with no authority trail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stable authority matters for the whole run
&lt;/h2&gt;

&lt;p&gt;There is another subtle failure mode: silent privilege escalation.&lt;/p&gt;

&lt;p&gt;An agent may begin with one scope, then drift into another. It starts by reading a page, then drafts a message, then finds a submit button, then acts as if the submit was implied by the original task.&lt;/p&gt;

&lt;p&gt;If privileges can change mid-run without a visible boundary, the audit trail starts lying.&lt;/p&gt;

&lt;p&gt;The receipt says what happened, but it no longer proves that the action happened under the permission the user thought they granted.&lt;/p&gt;

&lt;p&gt;A useful browser-agent system needs stable authority:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a declared plan;&lt;/li&gt;
&lt;li&gt;a clear task scope;&lt;/li&gt;
&lt;li&gt;a distinction between read, draft, and write actions;&lt;/li&gt;
&lt;li&gt;pause points before consequential steps;&lt;/li&gt;
&lt;li&gt;receipts after state changes;&lt;/li&gt;
&lt;li&gt;a revoke path when the work is done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not bureaucracy. It is how the user keeps control when the agent is operating inside a real account.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real logged-in browser state still matters
&lt;/h2&gt;

&lt;p&gt;The answer is not “just use APIs.”&lt;/p&gt;

&lt;p&gt;Clean APIs are great when they exist, expose the right state, and match the workflow. Many real workflows do not meet that standard.&lt;/p&gt;

&lt;p&gt;The state may be visible only inside a dashboard. The customer history may live in a helpdesk. The order action may be behind a portal. The CMS preview may require the exact browser session. The admin panel may have no stable API for the thing the operator actually does.&lt;/p&gt;

&lt;p&gt;This is why real browser access matters.&lt;/p&gt;

&lt;p&gt;But inheriting the whole browser session is not the right primitive.&lt;/p&gt;

&lt;p&gt;The useful primitive is delegated browser access: the agent can use the real logged-in browser state it needs, without receiving the user’s credentials or inheriting the entire house.&lt;/p&gt;

&lt;h2&gt;
  
  
  What delegated browser access should guarantee
&lt;/h2&gt;

&lt;p&gt;For production workflows, a delegated browser layer should make a few things explicit:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Real logged-in state without credential sharing.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The agent should operate through the user’s browser session without asking for passwords or exporting cookies into a random runtime.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Narrow delegation.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The user should be able to scope what the agent can touch and for which task.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Action classes.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Reading, drafting, submitting, deleting, changing settings, and spending money should not be the same permission.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pause points.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Consequential actions need a visible boundary before execution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Receipts.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The user should be able to see what the agent did, where it acted, and what changed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Revoke.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Delegated access should end cleanly when the task or relationship ends.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A clear owner when the workflow gets stuck.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
If the agent hits an edge case, the workflow should hand back to a person instead of silently wandering.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is the difference between “the agent can use a browser” and “the agent can safely operate part of this workflow.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Where BrowserMan fits
&lt;/h2&gt;

&lt;p&gt;BrowserMan is built around this distinction.&lt;/p&gt;

&lt;p&gt;It connects AI agents to a user’s signed-in Chrome session while cookies and credentials stay inside the browser. The agent runtime can be elsewhere — Claude Code, Cursor, OpenClaw, n8n, a shell script, or another MCP/HTTP client — while the browser authority remains with the user’s real Chrome.&lt;/p&gt;

&lt;p&gt;The hosted relay moves commands. It does not become the place where cookies or credentials live.&lt;/p&gt;

&lt;p&gt;The important product idea is not “AI can click my browser.”&lt;/p&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The browser session is authority. Delegate it carefully.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That means scope before execution, gates during execution, receipts after execution, and revoke when access is no longer needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The product boundary
&lt;/h2&gt;

&lt;p&gt;Browser agents will keep getting better at clicking.&lt;/p&gt;

&lt;p&gt;That is good. But clicking is not the hard product boundary.&lt;/p&gt;

&lt;p&gt;The hard boundary is the handoff: between systems, between permission levels, between agent and human, between a visible browser state and a consequential action.&lt;/p&gt;

&lt;p&gt;Browser agents do not become production-ready because they can click.&lt;/p&gt;

&lt;p&gt;They become production-ready when the handoff is explicit, the authority boundary is stable, and the human can see what happened.&lt;/p&gt;

&lt;p&gt;That is where real browser automation becomes delegated browser access.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>automation</category>
      <category>browser</category>
    </item>
    <item>
      <title>The fixed workflow is the product</title>
      <dc:creator>Eli</dc:creator>
      <pubDate>Sat, 16 May 2026 17:50:55 +0000</pubDate>
      <link>https://dev.to/eliofbm/the-fixed-workflow-is-the-product-460k</link>
      <guid>https://dev.to/eliofbm/the-fixed-workflow-is-the-product-460k</guid>
      <description>&lt;p&gt;No one buys “an agent with browser access.”&lt;/p&gt;

&lt;p&gt;They buy fewer missed leads. Fewer stale CRM fields. Fewer repetitive “where is my order?” tickets. Fewer support replies sent without context. Fewer tabs before someone can make the right call.&lt;/p&gt;

&lt;p&gt;Browser access is the mechanism.&lt;/p&gt;

&lt;p&gt;The fixed workflow is the product.&lt;/p&gt;

&lt;p&gt;That distinction matters because the browser-agent category can easily drift into infrastructure language. We can talk about sessions, cookies, permissions, MCP, and browser control all day. Those things matter. But the operator buying or adopting the workflow usually starts somewhere much more concrete:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“We missed another lead.”&lt;/li&gt;
&lt;li&gt;“The CRM stage is wrong.”&lt;/li&gt;
&lt;li&gt;“Someone already said come back in Q3, but the AI sent a cold follow-up anyway.”&lt;/li&gt;
&lt;li&gt;“Half the support inbox is asking where the order is.”&lt;/li&gt;
&lt;li&gt;“The customer gave context in WhatsApp, but the reply is being drafted from email only.”&lt;/li&gt;
&lt;li&gt;“The automation worked until it failed at 4pm on Friday and nobody owned the fix.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The product is not the agent. The product is the repaired loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  The broken workflow usually starts before the model acts
&lt;/h2&gt;

&lt;p&gt;A model can write a polished reply and still be wrong.&lt;/p&gt;

&lt;p&gt;It can write the wrong follow-up because the CRM stage is stale. It can confidently answer a support ticket without checking the order. It can promise a refund without inspecting the return window. It can miss the customer’s prior complaint because the history lives in another channel. It can escalate too late because nobody defined the threshold for escalation.&lt;/p&gt;

&lt;p&gt;That is why “agent sends email” is not a workflow.&lt;/p&gt;

&lt;p&gt;A useful sales workflow looks more like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Inspect the lead source.&lt;/li&gt;
&lt;li&gt;Check the CRM record.&lt;/li&gt;
&lt;li&gt;Read the prior messages.&lt;/li&gt;
&lt;li&gt;Identify the current stage and owner.&lt;/li&gt;
&lt;li&gt;Draft the next step.&lt;/li&gt;
&lt;li&gt;Update the tracker or CRM.&lt;/li&gt;
&lt;li&gt;Send only when the action is inside the allowed scope.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The hard part is not the final email. The hard part is making sure the agent is acting on the right state.&lt;/p&gt;

&lt;p&gt;An AI SDR with bad CRM state is just a faster way to send the wrong follow-up.&lt;/p&gt;

&lt;h2&gt;
  
  
  WISMO is a better starting point than “AI support”
&lt;/h2&gt;

&lt;p&gt;Ecommerce support gives a good example.&lt;/p&gt;

&lt;p&gt;“AI customer support” is too broad. It invites demos where a chatbot answers a question from a tiny knowledge base and everyone pretends the job is done.&lt;/p&gt;

&lt;p&gt;A better starting point is WISMO: “where is my order?”&lt;/p&gt;

&lt;p&gt;That workflow is narrow, repetitive, and expensive at scale. During busy seasons, order-status questions can become a huge share of the support inbox. But the answer is not just a sentence. A useful workflow has to inspect the real order state.&lt;/p&gt;

&lt;p&gt;It should:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Classify the incoming ticket.&lt;/li&gt;
&lt;li&gt;Identify the customer and order.&lt;/li&gt;
&lt;li&gt;Check Shopify or the order system.&lt;/li&gt;
&lt;li&gt;Check shipment or 3PL state.&lt;/li&gt;
&lt;li&gt;Check helpdesk history.&lt;/li&gt;
&lt;li&gt;Check refund, return, or broken-item rules if relevant.&lt;/li&gt;
&lt;li&gt;Draft a response with confidence.&lt;/li&gt;
&lt;li&gt;Escalate when the case is unclear or sensitive.&lt;/li&gt;
&lt;li&gt;Leave a log of what happened.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is the product.&lt;/p&gt;

&lt;p&gt;Not “agent chats with customers.”&lt;/p&gt;

&lt;p&gt;The useful claim is: fewer repetitive order-status tickets are answered without losing context or control.&lt;/p&gt;

&lt;h2&gt;
  
  
  Support automation fails when it answers before it inspects
&lt;/h2&gt;

&lt;p&gt;Customer support is where generic AI automation can become actively painful.&lt;/p&gt;

&lt;p&gt;If the agent answers before it inspects the workflow state, it may sound helpful while making the customer more frustrated. If it cannot escalate cleanly, it traps the customer. If it does not leave a useful record, it deletes the operational memory that the team needs later.&lt;/p&gt;

&lt;p&gt;A useful support workflow needs more than answer generation.&lt;/p&gt;

&lt;p&gt;It needs to gather context, classify intent, check account or order history, decide whether confidence is high enough, draft the reply, route exceptions to a human, and leave evidence.&lt;/p&gt;

&lt;p&gt;The workflow should ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What state did the agent inspect?&lt;/li&gt;
&lt;li&gt;Which systems did it use?&lt;/li&gt;
&lt;li&gt;What was it allowed to do?&lt;/li&gt;
&lt;li&gt;What did it only draft?&lt;/li&gt;
&lt;li&gt;When does it escalate?&lt;/li&gt;
&lt;li&gt;Who owns the failure path?&lt;/li&gt;
&lt;li&gt;What log does it leave behind?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without those answers, support automation is just automated frustration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the browser still matters
&lt;/h2&gt;

&lt;p&gt;In an ideal world, every product exposes a clean action interface.&lt;/p&gt;

&lt;p&gt;Use the API when the API is good. Use the CLI when the CLI is safe. Use MCP or a first-party action surface when it exposes the right semantics.&lt;/p&gt;

&lt;p&gt;But many real workflows still live inside logged-in web tools.&lt;/p&gt;

&lt;p&gt;The CRM has one piece of state. The helpdesk has another. Shopify has the order. A 3PL portal has the shipment update. The refund rule lives in a policy page. The escalation happens in Slack. The customer’s prior complaint might be in a different inbox.&lt;/p&gt;

&lt;p&gt;Sometimes the browser is not the elegant interface. It is the available interface.&lt;/p&gt;

&lt;p&gt;That is where delegated browser access becomes useful.&lt;/p&gt;

&lt;p&gt;The agent does not need a browser because clicking is magical. It needs controlled access to the same logged-in workflow state a human operator would inspect before acting.&lt;/p&gt;

&lt;h2&gt;
  
  
  BrowserMan’s lane
&lt;/h2&gt;

&lt;p&gt;BrowserMan is not a chatbot layer. It is not browser automation for everything.&lt;/p&gt;

&lt;p&gt;BrowserMan gives AI agents controlled access to a user’s real Chrome session, so agents can operate logged-in websites while cookies stay local and access can be scoped, audited, approved, and revoked.&lt;/p&gt;

&lt;p&gt;That matters when the work depends on logged-in web state:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CRM records,&lt;/li&gt;
&lt;li&gt;support inboxes,&lt;/li&gt;
&lt;li&gt;Shopify order pages,&lt;/li&gt;
&lt;li&gt;shipment dashboards,&lt;/li&gt;
&lt;li&gt;client portals,&lt;/li&gt;
&lt;li&gt;vendor tools,&lt;/li&gt;
&lt;li&gt;internal admin screens,&lt;/li&gt;
&lt;li&gt;CMS publishing flows,&lt;/li&gt;
&lt;li&gt;or the five-tab workflow that never became an API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The value is not that an agent can click.&lt;/p&gt;

&lt;p&gt;The value is that the agent can inspect the right logged-in context, prepare or execute the next step within scope, leave evidence, and be turned off.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rule
&lt;/h2&gt;

&lt;p&gt;Do not automate the message before inspecting the state.&lt;/p&gt;

&lt;p&gt;Do not automate the click before defining ownership.&lt;/p&gt;

&lt;p&gt;Do not give the mess a send button.&lt;/p&gt;

&lt;p&gt;Fix the workflow first.&lt;/p&gt;

&lt;p&gt;Then delegate the browser only where the workflow still lives.&lt;/p&gt;




&lt;p&gt;Originally published on the &lt;a href="https://blog.browserman.run/blog/fixed-workflow-is-the-product/" rel="noopener noreferrer"&gt;BrowserMan Blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>devtools</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Browser delegation is not a replacement for clean APIs</title>
      <dc:creator>Eli</dc:creator>
      <pubDate>Sat, 16 May 2026 10:46:23 +0000</pubDate>
      <link>https://dev.to/eliofbm/browser-delegation-is-not-a-replacement-for-clean-apis-347n</link>
      <guid>https://dev.to/eliofbm/browser-delegation-is-not-a-replacement-for-clean-apis-347n</guid>
      <description>&lt;p&gt;AI agents should not use browsers for everything.&lt;/p&gt;

&lt;p&gt;That sounds strange coming from BrowserMan, but it is the distinction that makes the category more useful.&lt;/p&gt;

&lt;p&gt;If a product exposes a good API, use the API. If it has a safe CLI, use the CLI. If it has an MCP server or another first-party action interface with the right semantics, use that. Agents should not pretend to click buttons when the product has already exposed a cleaner way to express intent.&lt;/p&gt;

&lt;p&gt;Browser delegation matters for the other half of the world: the workflows that still live inside logged-in web UIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clean interfaces are better when they exist
&lt;/h2&gt;

&lt;p&gt;A good action interface gives the agent a shape to work inside.&lt;/p&gt;

&lt;p&gt;It can expose intent instead of pixels. It can validate inputs. It can return structured errors. It can enforce permissions closer to the system of record. It can avoid selector changes, broken buttons, surprise modals, and all the other boring failure modes that make browser automation feel fragile.&lt;/p&gt;

&lt;p&gt;That is why the recent wave of agent-friendly product surfaces is healthy.&lt;/p&gt;

&lt;p&gt;Support tools are adding CLIs so agents can read conversations, summarize context, and draft replies without getting full database access. Email and infrastructure tools are adding APIs, SDKs, CLIs, MCP servers, and docs written for agents. Larger platforms are moving toward headless interfaces where the API or command surface is not a secondary integration path, but the primary interface for software actors.&lt;/p&gt;

&lt;p&gt;That is the right direction.&lt;/p&gt;

&lt;p&gt;When the product knows what an action means, the product should expose that action directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  But a lot of real work is still trapped in logged-in UI
&lt;/h2&gt;

&lt;p&gt;The problem is that most business workflows are not fully represented by clean interfaces.&lt;/p&gt;

&lt;p&gt;Operators still work through admin dashboards, customer support inboxes, CRMs, CMS publishing screens, ad managers, ecommerce return flows, vendor portals, internal tools, banking pages, insurance portals, government forms, procurement systems, and one-off client dashboards.&lt;/p&gt;

&lt;p&gt;Some of those systems have APIs. Many do not. Some have APIs that cover reads but not writes. Some have APIs that exist on paper but are too slow to integrate for the workflow at hand. Some have multiple disconnected tools where the human process is the integration layer.&lt;/p&gt;

&lt;p&gt;That is where browser delegation becomes useful.&lt;/p&gt;

&lt;p&gt;Not because clicking is elegant. It usually is not.&lt;/p&gt;

&lt;p&gt;It is useful because the logged-in browser is where the work already happens.&lt;/p&gt;

&lt;h2&gt;
  
  
  The browser session is authority
&lt;/h2&gt;

&lt;p&gt;A signed-in browser is not just context. It is authority.&lt;/p&gt;

&lt;p&gt;It can see customer records. It can submit forms. It can publish pages. It can send replies. It can issue refunds. It can update CRM fields. It can change settings. It can move money, spend budget, or expose private data.&lt;/p&gt;

&lt;p&gt;So the real question is not “can the agent use a browser?”&lt;/p&gt;

&lt;p&gt;The real questions are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What can it inspect?&lt;/li&gt;
&lt;li&gt;What can it draft?&lt;/li&gt;
&lt;li&gt;What can it submit?&lt;/li&gt;
&lt;li&gt;Which actions need approval?&lt;/li&gt;
&lt;li&gt;What evidence does it leave?&lt;/li&gt;
&lt;li&gt;How does the user revoke access?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is a different product problem than browser automation.&lt;/p&gt;

&lt;p&gt;It is delegated authority.&lt;/p&gt;

&lt;h2&gt;
  
  
  The useful rule
&lt;/h2&gt;

&lt;p&gt;The rule I keep coming back to is simple:&lt;/p&gt;

&lt;p&gt;Use the API when the API is good.&lt;/p&gt;

&lt;p&gt;Use the CLI when the CLI is safe.&lt;/p&gt;

&lt;p&gt;Use MCP or another first-party action interface when the product exposes the right semantics.&lt;/p&gt;

&lt;p&gt;Use delegated browser access when the real workflow only exists inside a logged-in UI.&lt;/p&gt;

&lt;p&gt;This avoids two bad extremes.&lt;/p&gt;

&lt;p&gt;The first extreme is browser maximalism: acting like agents should operate every product through a visual browser because that is how humans do it. That creates unnecessary fragility and ignores the work product teams are doing to make better agent interfaces.&lt;/p&gt;

&lt;p&gt;The second extreme is API fantasy: acting like every real workflow can be expressed through clean endpoints today. That ignores the messy operational reality of SaaS tools, admin portals, customer accounts, and internal workflows.&lt;/p&gt;

&lt;p&gt;The interesting product layer sits between those extremes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where BrowserMan fits
&lt;/h2&gt;

&lt;p&gt;BrowserMan is for the delegated browser-session layer.&lt;/p&gt;

&lt;p&gt;The agent may run in the cloud, in a workflow runner, inside an IDE, or from another machine. The user’s real Chrome session stays with the user. Cookies stay local. The agent gets controlled access to the browser authority the user chooses to delegate.&lt;/p&gt;

&lt;p&gt;That matters most when the task depends on authenticated web surfaces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;checking a support inbox before drafting a reply,&lt;/li&gt;
&lt;li&gt;researching leads across logged-in tools,&lt;/li&gt;
&lt;li&gt;preparing a CMS update,&lt;/li&gt;
&lt;li&gt;looking up an order before a refund decision,&lt;/li&gt;
&lt;li&gt;moving information between a CRM and a dashboard,&lt;/li&gt;
&lt;li&gt;operating a vendor portal with no useful API,&lt;/li&gt;
&lt;li&gt;or handling the one business workflow that only exists as “open these five tabs and do the thing.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In those workflows, the browser is not the ideal interface. It is the available interface.&lt;/p&gt;

&lt;p&gt;The product requirement is to make that delegation scoped, logged, revocable, and visible enough that the user can trust it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Browser agents should not be browser-maximalist
&lt;/h2&gt;

&lt;p&gt;The category will be healthier if browser-agent companies admit this clearly.&lt;/p&gt;

&lt;p&gt;Browsers are not the future of every agent action. They are the bridge for the parts of work that have not yet become clean action surfaces.&lt;/p&gt;

&lt;p&gt;Over time, more products should expose APIs, CLIs, MCP servers, and first-party agent interfaces. That is good.&lt;/p&gt;

&lt;p&gt;But until every workflow has a clean interface, agents still need a way to work through the same logged-in surfaces people use today — without asking users to hand over credentials, copy cookies into a cloud VM, or give the agent unlimited click access.&lt;/p&gt;

&lt;p&gt;That is the lane for delegated browser access.&lt;/p&gt;

&lt;p&gt;Not browser automation for everything.&lt;/p&gt;

&lt;p&gt;Browser authority, when the browser is where the work lives.&lt;/p&gt;




&lt;p&gt;Originally published on the &lt;a href="https://blog.browserman.run/blog/browser-delegation-is-not-a-replacement-for-clean-apis/" rel="noopener noreferrer"&gt;BrowserMan Blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>devtools</category>
      <category>mcp</category>
    </item>
    <item>
      <title>Trust-sensitive agents need visible friction</title>
      <dc:creator>Eli</dc:creator>
      <pubDate>Fri, 15 May 2026 11:10:43 +0000</pubDate>
      <link>https://dev.to/eliofbm/trust-sensitive-agents-need-visible-friction-g63</link>
      <guid>https://dev.to/eliofbm/trust-sensitive-agents-need-visible-friction-g63</guid>
      <description>&lt;p&gt;Background workers are great until the agent is about to submit something under your name.&lt;/p&gt;

&lt;p&gt;That is the line where automation changes character.&lt;/p&gt;

&lt;p&gt;For low-risk work, the best interface is often no interface. Let the agent classify the lead, summarize the page, enrich the record, monitor the inbox, or draft the first pass. If the action is reversible, internal, and easy to inspect later, hiding the machinery is a feature.&lt;/p&gt;

&lt;p&gt;But a different kind of workflow is arriving: agents that apply for jobs, publish content, issue refunds, update customer records, book travel, send replies, change dashboards, and operate logged-in web apps.&lt;/p&gt;

&lt;p&gt;Those are not just browser tasks. They are trust-sensitive actions.&lt;/p&gt;

&lt;p&gt;The product problem is not removing every bit of friction. It is deciding where friction belongs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The browser is where authority lives
&lt;/h2&gt;

&lt;p&gt;Agents want browsers because the browser is where work already happens.&lt;/p&gt;

&lt;p&gt;APIs are incomplete. Internal tools are inconsistent. OAuth scopes are often too coarse. The real state of a workflow is usually scattered across tabs, forms, dashboards, inboxes, and account-specific UI.&lt;/p&gt;

&lt;p&gt;A logged-in browser session can already do the thing. That is why it is useful. It is also why it is risky.&lt;/p&gt;

&lt;p&gt;The useful browser bridge keeps auth and session state out of the prompt while still letting the agent work. That separation is the point: the agent gets a tool boundary, not a pasted credential bundle.&lt;/p&gt;

&lt;p&gt;The boundary is not only “can it act?” It is also “what credentials does it silently inherit?”&lt;/p&gt;

&lt;p&gt;Once an agent can use a real browser session, it is not just controlling pixels. It is borrowing authority: the user’s account, the company’s account, the brand’s account, the customer support account, the payment dashboard, the CMS, the CRM.&lt;/p&gt;

&lt;p&gt;That is the part most demos skip.&lt;/p&gt;

&lt;p&gt;The demo asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can the agent click the button?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The production question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What should the agent have to prove before it clicks?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Background workers are not always the right shape
&lt;/h2&gt;

&lt;p&gt;A useful signal came from a builder working on a job-application agent. They had built the normal backend shape: queue, workers, background tasks, submit pipeline. Then they ripped it out and kept the browser extension.&lt;/p&gt;

&lt;p&gt;The reason was not that workers are bad. The reason was that job applications are trust-sensitive. Submitting under a person’s name needs a surface the user can see and interrupt.&lt;/p&gt;

&lt;p&gt;That distinction generalizes.&lt;/p&gt;

&lt;p&gt;A worker queue is great for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;collecting public information;&lt;/li&gt;
&lt;li&gt;extracting structured data;&lt;/li&gt;
&lt;li&gt;drafting content;&lt;/li&gt;
&lt;li&gt;checking status;&lt;/li&gt;
&lt;li&gt;classifying tickets;&lt;/li&gt;
&lt;li&gt;preparing a recommendation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A visible surface becomes important when the agent is about to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;submit a job application;&lt;/li&gt;
&lt;li&gt;publish under a brand account;&lt;/li&gt;
&lt;li&gt;send a customer reply;&lt;/li&gt;
&lt;li&gt;process a refund;&lt;/li&gt;
&lt;li&gt;update a CRM record;&lt;/li&gt;
&lt;li&gt;pay, book, delete, or change account state.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The final mile matters because the action is no longer just computation. It changes the world under a real identity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ask what the agent can prove before it clicks
&lt;/h2&gt;

&lt;p&gt;A smart pointer is not just a better cursor. It is a permission boundary.&lt;/p&gt;

&lt;p&gt;Before an agent clicks, the product should be able to answer questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which account is this action using?&lt;/li&gt;
&lt;li&gt;Which page, customer, order, or record is about to change?&lt;/li&gt;
&lt;li&gt;Is this action reversible?&lt;/li&gt;
&lt;li&gt;Is the dollar amount below the approval threshold?&lt;/li&gt;
&lt;li&gt;Is this a draft, or is it about to be published?&lt;/li&gt;
&lt;li&gt;Did the agent inspect the right evidence?&lt;/li&gt;
&lt;li&gt;Is the user seeing the same final state the agent is acting on?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For browser agents, the click is often the last step in a chain of assumptions. The useful interface is not a giant approval modal for every action. It is a way to make the critical assumptions visible at the moment they matter.&lt;/p&gt;

&lt;p&gt;A refund example makes this concrete.&lt;/p&gt;

&lt;p&gt;If a support agent processes a $4,500 refund with no policy, no human in the loop, and no rule saying “anything over $500 needs approval,” the failure is not just model quality. The failure is the permission boundary.&lt;/p&gt;

&lt;p&gt;The product allowed a high-blast-radius action to look like an ordinary tool call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Approval gates should be thresholded, not everywhere
&lt;/h2&gt;

&lt;p&gt;The wrong lesson is: make humans approve everything.&lt;/p&gt;

&lt;p&gt;That turns an agent into a slow workflow UI. It also teaches users to click through approvals without thinking.&lt;/p&gt;

&lt;p&gt;The better lesson is: place friction according to blast radius.&lt;/p&gt;

&lt;p&gt;A practical policy model might separate actions by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;read vs write;&lt;/li&gt;
&lt;li&gt;reversible vs irreversible;&lt;/li&gt;
&lt;li&gt;internal-only vs customer-facing;&lt;/li&gt;
&lt;li&gt;low-dollar vs high-dollar;&lt;/li&gt;
&lt;li&gt;draft vs publish/send/submit;&lt;/li&gt;
&lt;li&gt;ordinary path vs exception;&lt;/li&gt;
&lt;li&gt;one record vs bulk action.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most agent workflows need lanes, not one giant permission switch.&lt;/p&gt;

&lt;p&gt;Read-only browser work can be broad. Drafting can be relatively free. Low-risk routine actions can be automated. But actions that spend money, affect customers, publish publicly, delete data, or submit under someone’s name should slow down.&lt;/p&gt;

&lt;p&gt;The point is not to make agents timid. The point is to keep autonomy legible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Completion is not the click
&lt;/h2&gt;

&lt;p&gt;There is another quiet failure mode in business automation: false completion.&lt;/p&gt;

&lt;p&gt;A refund clicked in Stripe is not necessarily finished. The customer may still need a note. Access may need to be removed. A duplicate refund check may still be pending. The CRM may need a record. The support thread may need a final reply.&lt;/p&gt;

&lt;p&gt;The browser click can be successful while the workflow is incomplete.&lt;/p&gt;

&lt;p&gt;That means receipts matter.&lt;/p&gt;

&lt;p&gt;After the action, the agent should leave behind enough context for a human or another system to understand what happened:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what changed;&lt;/li&gt;
&lt;li&gt;where it changed;&lt;/li&gt;
&lt;li&gt;which evidence was used;&lt;/li&gt;
&lt;li&gt;which policy allowed it;&lt;/li&gt;
&lt;li&gt;whether follow-up tasks remain;&lt;/li&gt;
&lt;li&gt;where to inspect or reverse the action if needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For trust-sensitive workflows, “the agent says it did it” is not a receipt.&lt;/p&gt;

&lt;p&gt;A receipt is browser state, tool calls, before/after context, policy decisions, and artifacts that line up. It should be replayable enough that someone can reconstruct the action months later: which tool was called, on what input, under what authority, and what changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The BrowserMan angle: delegated browser authority
&lt;/h2&gt;

&lt;p&gt;BrowserMan should not be framed as “an agent can click websites.” That is becoming table stakes.&lt;/p&gt;

&lt;p&gt;The stronger frame is delegated browser authority.&lt;/p&gt;

&lt;p&gt;A real Chrome session already contains trust. It has the cookies, tabs, login state, and messy context that make work possible. BrowserMan gives agents controlled access to that session while keeping cookies local and letting access be scoped, audited, approved, and revoked.&lt;/p&gt;

&lt;p&gt;That means the important design questions are not only:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can the agent navigate?&lt;/li&gt;
&lt;li&gt;Can it click?&lt;/li&gt;
&lt;li&gt;Can it type?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which browser session can this agent use?&lt;/li&gt;
&lt;li&gt;Which job is it allowed to perform?&lt;/li&gt;
&lt;li&gt;Which actions need a visible pause?&lt;/li&gt;
&lt;li&gt;What proof is required before the click?&lt;/li&gt;
&lt;li&gt;What receipt exists after the action?&lt;/li&gt;
&lt;li&gt;How does the user take access back?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The browser session is authority.&lt;/p&gt;

&lt;p&gt;The future of browser agents is not just better clicking. It is better delegation.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>browserautomation</category>
      <category>security</category>
    </item>
    <item>
      <title>Logs Are Too Late for High-Value Browser Actions</title>
      <dc:creator>Eli</dc:creator>
      <pubDate>Thu, 14 May 2026 18:47:33 +0000</pubDate>
      <link>https://dev.to/eliofbm/logs-are-too-late-for-high-value-browser-actions-2c78</link>
      <guid>https://dev.to/eliofbm/logs-are-too-late-for-high-value-browser-actions-2c78</guid>
      <description>&lt;p&gt;A browser agent that can read a support ticket is useful.&lt;/p&gt;

&lt;p&gt;A browser agent that can refund $4,500 without approval is a production incident.&lt;/p&gt;

&lt;p&gt;That distinction is where most browser-agent demos stop being demos and start becoming systems.&lt;/p&gt;

&lt;p&gt;The click loop is getting good. Agents can open pages, read tables, fill forms, use tools, and drive real browsers. Some run in cloud browsers. Some run locally. Some are arriving as Chrome extensions with per-site permissions. The interface is improving quickly.&lt;/p&gt;

&lt;p&gt;But production risk does not start at the click.&lt;/p&gt;

&lt;p&gt;It starts when the click has write authority.&lt;/p&gt;

&lt;p&gt;Refunding a customer, deleting a CRM record, publishing a post, exporting a list, changing account settings, sending a customer-facing email, charging a card — these are not the same kind of action as reading a dashboard. They cross the write boundary.&lt;/p&gt;

&lt;p&gt;For high-value browser actions, logs are too late.&lt;/p&gt;

&lt;h2&gt;
  
  
  Logs explain. Gates prevent.
&lt;/h2&gt;

&lt;p&gt;Receipts and audit logs are necessary. You need to know what the agent did, which page it touched, what it changed, what it saw, who approved it, and what happened before and after execution.&lt;/p&gt;

&lt;p&gt;But a log after the fact is not a control point. It is evidence.&lt;/p&gt;

&lt;p&gt;If a support agent processes a large refund and the human reads the log after the refund clears, the log did its job as a record. The system still failed as a control surface.&lt;/p&gt;

&lt;p&gt;The useful distinction is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logs explain what happened.&lt;/li&gt;
&lt;li&gt;Gates decide whether it should happen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Browser agents need both, but they need them in the right order.&lt;/p&gt;

&lt;h2&gt;
  
  
  The write boundary is the product
&lt;/h2&gt;

&lt;p&gt;Read-only actions can be broad. An agent can inspect an order, summarize a ticket, compare records, draft a response, or collect evidence from a logged-in dashboard with relatively low risk.&lt;/p&gt;

&lt;p&gt;Write actions are different. They mutate the world.&lt;/p&gt;

&lt;p&gt;A write action may:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;refund money,&lt;/li&gt;
&lt;li&gt;delete or update records,&lt;/li&gt;
&lt;li&gt;publish public content,&lt;/li&gt;
&lt;li&gt;send customer-facing messages,&lt;/li&gt;
&lt;li&gt;change account configuration,&lt;/li&gt;
&lt;li&gt;export private data,&lt;/li&gt;
&lt;li&gt;trigger a workflow,&lt;/li&gt;
&lt;li&gt;buy something,&lt;/li&gt;
&lt;li&gt;submit a form that cannot be easily undone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One wrong click in that category is not just a bad answer. It is operational damage.&lt;/p&gt;

&lt;p&gt;That is why the product question is not only “can the agent use the browser?”&lt;/p&gt;

&lt;p&gt;The better question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What is the agent allowed to do before a human sees the action?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  A practical policy model
&lt;/h2&gt;

&lt;p&gt;The simplest production pattern is broad read, narrow write.&lt;/p&gt;

&lt;p&gt;Let the agent read and prepare. Let it gather evidence, draft changes, classify risk, and explain what it intends to do. Then put policy in front of the action.&lt;/p&gt;

&lt;p&gt;A practical browser-agent policy can start with four rules:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Read-only by default.&lt;/strong&gt; The agent can inspect pages, collect evidence, and prepare work without making irreversible changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thresholds for high-value actions.&lt;/strong&gt; Refunds over $500, account changes, exports, deletes, payments, and public publishes require approval.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approval before execution.&lt;/strong&gt; The gate sits before the click, not after the receipt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Receipts after execution.&lt;/strong&gt; Once approved and executed, the system records what happened, who approved it, and what changed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This does not have to make the workflow slow. A good approval flow gives the human the context needed to decide quickly: what the agent wants to do, why, what rule triggered the gate, what page or record is affected, and what happens if the action is approved.&lt;/p&gt;

&lt;p&gt;Approval is not just a safety brake. It is workflow infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Denials should teach the boundary
&lt;/h2&gt;

&lt;p&gt;A bad gate simply blocks the agent.&lt;/p&gt;

&lt;p&gt;A good gate returns a structured denial.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"allowed"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"reason"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Refund amount exceeds approval threshold"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"rule"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"refunds_over_500_require_human_approval"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scope"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"support_portal.refunds"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"next_step"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"request_approval"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That response gives the agent somewhere safe to go. It can ask for approval, switch to read-only mode, collect more evidence, or stop.&lt;/p&gt;

&lt;p&gt;Without that feedback, agents learn the wrong lesson: the tool is broken, the page failed, or the action should be retried through another path.&lt;/p&gt;

&lt;p&gt;Denied actions should teach the boundary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Receipts need identity
&lt;/h2&gt;

&lt;p&gt;Receipts also need to be stronger than plain text logs.&lt;/p&gt;

&lt;p&gt;A useful receipt should answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which agent or workflow requested the action?&lt;/li&gt;
&lt;li&gt;Which browser session or account was used?&lt;/li&gt;
&lt;li&gt;What page, record, or object was affected?&lt;/li&gt;
&lt;li&gt;What did the agent see before acting?&lt;/li&gt;
&lt;li&gt;What policy rule applied?&lt;/li&gt;
&lt;li&gt;Who approved it, if approval was required?&lt;/li&gt;
&lt;li&gt;What changed after execution?&lt;/li&gt;
&lt;li&gt;Can the action be rolled back?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For enterprise workflows, receipts may also need tamper-evident identity. A log file that can be edited is not enough for serious audit requirements. The stronger version ties each action to actor identity, session context, approval state, and an execution record that can be reviewed later.&lt;/p&gt;

&lt;p&gt;Still, receipts are not the gate.&lt;/p&gt;

&lt;p&gt;They make the gate auditable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why real Chrome raises the stakes
&lt;/h2&gt;

&lt;p&gt;This matters even more when the agent is operating through a real signed-in browser.&lt;/p&gt;

&lt;p&gt;A real Chrome session can touch the same systems the human can touch: support inboxes, CMS tools, analytics, CRMs, admin panels, vendor portals, order systems, internal dashboards, and SaaS apps with no clean API.&lt;/p&gt;

&lt;p&gt;That is exactly why real-browser access is useful.&lt;/p&gt;

&lt;p&gt;It is also why raw autonomy is dangerous.&lt;/p&gt;

&lt;p&gt;If the browser session is authority, delegated browser access needs a control model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;scope before execution,&lt;/li&gt;
&lt;li&gt;gates during execution,&lt;/li&gt;
&lt;li&gt;receipts after execution,&lt;/li&gt;
&lt;li&gt;revoke when the workflow is done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The point is not to hide the browser from the user or bypass the systems they already trust. The point is to make browser authority delegatable without making it silent.&lt;/p&gt;

&lt;h2&gt;
  
  
  BrowserMan’s position
&lt;/h2&gt;

&lt;p&gt;BrowserMan is built around that model: controlled access to a user’s real Chrome session for AI agents.&lt;/p&gt;

&lt;p&gt;The cookies stay local. The agent can run elsewhere. Access can be scoped. Risky actions can be gated. Execution can be logged and revoked.&lt;/p&gt;

&lt;p&gt;That is the difference between “an agent can click around a website” and “an operator can trust an agent with a real workflow.”&lt;/p&gt;

&lt;p&gt;The next phase of browser agents will not be won by the tool that clicks the fastest.&lt;/p&gt;

&lt;p&gt;It will be won by the system that knows when not to click.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>automation</category>
      <category>security</category>
    </item>
    <item>
      <title>The Browser Agent Demo Is Not the Product. The Permission Model Is.</title>
      <dc:creator>Eli</dc:creator>
      <pubDate>Wed, 13 May 2026 11:55:06 +0000</pubDate>
      <link>https://dev.to/eliofbm/the-browser-agent-demo-is-not-the-product-the-permission-model-is-1flb</link>
      <guid>https://dev.to/eliofbm/the-browser-agent-demo-is-not-the-product-the-permission-model-is-1flb</guid>
      <description>&lt;p&gt;The browser-agent demo is easy to understand.&lt;/p&gt;

&lt;p&gt;The agent opens a website. It clicks. It fills a form. It fixes a broken UI. It posts the thing. It looks like a human moving through software.&lt;/p&gt;

&lt;p&gt;That is useful. It is also not the product.&lt;/p&gt;

&lt;p&gt;The product begins when the browser is signed in.&lt;/p&gt;

&lt;p&gt;A signed-in browser is not just a UI surface. It is authority: inboxes, CRMs, admin dashboards, billing pages, customer records, CMS tools, social accounts, support queues, internal portals, and all the half-integrated web software where real work still happens.&lt;/p&gt;

&lt;p&gt;That is why browser agents are becoming valuable. Operators are drowning in logged-in tools, too many tabs, fragmented dashboards, and workflows that APIs do not cover cleanly.&lt;/p&gt;

&lt;p&gt;It is also why the demo is incomplete.&lt;/p&gt;

&lt;p&gt;Once an agent can touch a real browser session, the question is no longer only:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can it use the browser?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The production question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What authority did we delegate, what was the agent allowed to do with it, and what receipt did it leave behind?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The browser-agent demo is not the product.&lt;/p&gt;

&lt;p&gt;The permission model is.&lt;/p&gt;

&lt;h2&gt;
  
  
  A browser demo proves capability, not trust
&lt;/h2&gt;

&lt;p&gt;A browser demo can prove that an agent understands a page.&lt;/p&gt;

&lt;p&gt;It can show that the model can inspect the DOM, interpret a screenshot, click the right button, or recover from a small UI mismatch.&lt;/p&gt;

&lt;p&gt;That is real progress. But in a logged-in workflow, capability is only the first layer.&lt;/p&gt;

&lt;p&gt;A click inside a public demo page is harmless. A click inside a signed-in business tool may:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;send an email,&lt;/li&gt;
&lt;li&gt;update a CRM record,&lt;/li&gt;
&lt;li&gt;approve a refund,&lt;/li&gt;
&lt;li&gt;publish a page,&lt;/li&gt;
&lt;li&gt;change a price,&lt;/li&gt;
&lt;li&gt;merge a customer account,&lt;/li&gt;
&lt;li&gt;submit a form,&lt;/li&gt;
&lt;li&gt;spend money,&lt;/li&gt;
&lt;li&gt;or expose private data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are not the same action.&lt;/p&gt;

&lt;p&gt;They should not share the same permission.&lt;/p&gt;

&lt;p&gt;This is where browser-agent products need to stop treating “browser access” as one checkbox. Read-only inspection, drafting, internal edits, external sends, purchases, deletes, refunds, and public publishing are different risk classes.&lt;/p&gt;

&lt;p&gt;The browser is one surface. The authority behind each action is not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Signed-in browser access is delegated authority
&lt;/h2&gt;

&lt;p&gt;The reason agents want the browser is simple: the browser already has the user’s working context.&lt;/p&gt;

&lt;p&gt;Your logged-in Chrome knows which account is active. It has cookies, open sessions, local state, tabs, dashboards, and workflows that would take weeks to re-create through clean integrations.&lt;/p&gt;

&lt;p&gt;That is why “use the browser I already use” is such a powerful primitive.&lt;/p&gt;

&lt;p&gt;But it changes the trust model.&lt;/p&gt;

&lt;p&gt;When an agent uses a fresh cloud browser, the product mostly controls the execution environment. When an agent uses the user’s real signed-in browser, the product is mediating delegated authority.&lt;/p&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;p&gt;The useful primitive is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;this agent can use a browser&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;this agent can use this session, for this job, on these surfaces, with these gates, while leaving these receipts, until I revoke it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is a product surface.&lt;/p&gt;

&lt;p&gt;It includes scope. It includes approvals. It includes logs. It includes identity. It includes a revocation path.&lt;/p&gt;

&lt;p&gt;Without that, a successful browser demo can quietly become an operational liability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Blanket permission feels fast until the risk class changes
&lt;/h2&gt;

&lt;p&gt;Blanket permission is attractive because it removes friction.&lt;/p&gt;

&lt;p&gt;Nobody wants a modal before every harmless click. Nobody wants an agent that asks for approval every time it reads a page, opens a tab, or drafts a response.&lt;/p&gt;

&lt;p&gt;The problem is not autonomy.&lt;/p&gt;

&lt;p&gt;The problem is when the system cannot tell that the action changed class.&lt;/p&gt;

&lt;p&gt;An agent reading a support ticket is one class. Drafting a reply is another. Sending the reply to a customer is another. Issuing a refund is another. Changing the refund policy in the admin panel is another.&lt;/p&gt;

&lt;p&gt;Those transitions are where the permission model matters.&lt;/p&gt;

&lt;p&gt;The alternative to blanket permission is not endless prompts. It is action-aware delegation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;let the agent inspect low-risk pages,&lt;/li&gt;
&lt;li&gt;let it draft changes without submitting,&lt;/li&gt;
&lt;li&gt;allow reversible internal updates inside a defined scope,&lt;/li&gt;
&lt;li&gt;gate writes that notify people or change customer/account records,&lt;/li&gt;
&lt;li&gt;require explicit approval for spend, delete, publish, refund, merge, or other high-impact actions,&lt;/li&gt;
&lt;li&gt;revoke the session when the job is done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is how browser agents become usable without becoming reckless.&lt;/p&gt;

&lt;h2&gt;
  
  
  Completion needs receipts, not just clicks
&lt;/h2&gt;

&lt;p&gt;A browser agent should not claim success because it clicked a button.&lt;/p&gt;

&lt;p&gt;Clicked is not done.&lt;/p&gt;

&lt;p&gt;The receipt is the state after the click: the saved record, the sent message, the published URL, the updated dashboard, the confirmation screen after reload, the audit trail, or the visible diff.&lt;/p&gt;

&lt;p&gt;This matters because browser workflows are full of false positives.&lt;/p&gt;

&lt;p&gt;A button can click and fail silently. A form can submit and then reject server-side validation. A page can update optimistically and roll back. A post can appear in a composer but never publish. A CRM record can save locally but not persist. A checkout can advance one step without completing.&lt;/p&gt;

&lt;p&gt;If the browser agent is operating with real authority, the receipt has to prove more than motion.&lt;/p&gt;

&lt;p&gt;It should answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What did the agent change?&lt;/li&gt;
&lt;li&gt;Which session did it use?&lt;/li&gt;
&lt;li&gt;Which task was it acting under?&lt;/li&gt;
&lt;li&gt;Which approval boundary did it cross?&lt;/li&gt;
&lt;li&gt;What evidence shows the final state?&lt;/li&gt;
&lt;li&gt;Can a human inspect or replay enough context to trust the result?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why screenshots and traces are useful, but not always sufficient. A screenshot says what the browser showed. A workflow receipt should explain what changed, why it was allowed, and how the final state was verified.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tool-call policy is not enough for browser authority
&lt;/h2&gt;

&lt;p&gt;The agent tooling ecosystem is moving toward policy layers around tool calls: schemas, MCP gateways, approval steps, isolation, DLP checks, and host-defined rules.&lt;/p&gt;

&lt;p&gt;That direction is right.&lt;/p&gt;

&lt;p&gt;But browser actions are messier than normal tool calls.&lt;/p&gt;

&lt;p&gt;A structured tool call can say:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"refund_order"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"order_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"123"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"amount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;42&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A browser action may only say:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;click button
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The meaning depends on the page, the session, the current account, the surrounding form, and the state of the workflow.&lt;/p&gt;

&lt;p&gt;A click can mean “open details” or “delete customer.” A submit button can mean “save draft” or “publish publicly.” The same UI action can be harmless in one app and irreversible in another.&lt;/p&gt;

&lt;p&gt;So browser permissioning needs to understand more than command syntax.&lt;/p&gt;

&lt;p&gt;It needs to understand the authority boundary around the session and the risk tier of the action.&lt;/p&gt;

&lt;h2&gt;
  
  
  The useful model: scope before, gates during, receipts after
&lt;/h2&gt;

&lt;p&gt;For browser agents, the control model should be simple enough to explain and strict enough to matter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scope before execution
&lt;/h3&gt;

&lt;p&gt;Before the agent acts, define the job.&lt;/p&gt;

&lt;p&gt;Which browser session is available? Which sites are in scope? Which tabs or workflows can it touch? Is it reading, drafting, updating, publishing, spending, or deleting?&lt;/p&gt;

&lt;p&gt;The agent should not get “the browser.”&lt;/p&gt;

&lt;p&gt;It should get a bounded delegation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gates during execution
&lt;/h3&gt;

&lt;p&gt;During the run, the system should notice when the agent is about to cross a higher-risk boundary.&lt;/p&gt;

&lt;p&gt;Reading a CRM page may be fine. Updating a field may need a log. Emailing the customer may need approval. Issuing a refund should probably need a stronger gate. Deleting the account should be outside the job entirely unless explicitly granted.&lt;/p&gt;

&lt;p&gt;The point is not to interrupt every click.&lt;/p&gt;

&lt;p&gt;The point is to put friction where authority changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Receipts after action
&lt;/h3&gt;

&lt;p&gt;After the agent acts, it should leave evidence.&lt;/p&gt;

&lt;p&gt;Not just “done.”&lt;/p&gt;

&lt;p&gt;A useful receipt includes the action class, the delegated session or account context, the approval boundary, the final verified state, and enough audit trail for a human to inspect what happened.&lt;/p&gt;

&lt;p&gt;This is how browser agents move from demos to operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where BrowserMan fits
&lt;/h2&gt;

&lt;p&gt;BrowserMan is built around a specific category bet:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;the browser session is authority, and users should be able to delegate that authority carefully.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;BrowserMan connects agents to a user’s real Chrome session. Cookies and credentials stay in the user’s browser. Agents can run elsewhere. Access can be scoped, audited, approved, and revoked.&lt;/p&gt;

&lt;p&gt;That is different from simply launching another browser for the agent.&lt;/p&gt;

&lt;p&gt;Cloud browser infrastructure is useful when the agent needs a reliable remote execution environment. Browser frameworks are useful when developers need better control primitives. Browser automation tools are useful when a task can be scripted end-to-end.&lt;/p&gt;

&lt;p&gt;BrowserMan’s lane is delegated real-browser authority: the agent needs to work in the same logged-in web environment the user already uses, but the user should not have to hand over the whole house.&lt;/p&gt;

&lt;p&gt;The practical promise is not “the agent can click.”&lt;/p&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use the real Chrome session when that is where the work lives,&lt;/li&gt;
&lt;li&gt;keep cookies local,&lt;/li&gt;
&lt;li&gt;delegate a job instead of sharing credentials,&lt;/li&gt;
&lt;li&gt;scope what the agent can touch,&lt;/li&gt;
&lt;li&gt;gate risky actions,&lt;/li&gt;
&lt;li&gt;log what happened,&lt;/li&gt;
&lt;li&gt;revoke access when the job is over.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the permission model as the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  The category will compete on trust, not just clicks
&lt;/h2&gt;

&lt;p&gt;The browser-agent market is moving quickly.&lt;/p&gt;

&lt;p&gt;Some products optimize cloud browser scale. Some optimize visual control. Some optimize local desktops. Some optimize persistent agent computers. Some optimize tool-call policy and runtime isolation.&lt;/p&gt;

&lt;p&gt;All of that matters.&lt;/p&gt;

&lt;p&gt;But once the agent touches a signed-in browser, the durable question becomes sharper:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can I safely delegate the authority behind this browser session?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The winners will not only be the systems that click fastest.&lt;/p&gt;

&lt;p&gt;They will be the systems that know when a click is just navigation, when it is a draft, when it is a write, when it is a public action, and when it should stop.&lt;/p&gt;

&lt;p&gt;The demo gets the agent into the browser.&lt;/p&gt;

&lt;p&gt;The permission model decides whether it belongs there.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>security</category>
      <category>automation</category>
    </item>
    <item>
      <title>Enterprise portals are where browser agents become workflows</title>
      <dc:creator>Eli</dc:creator>
      <pubDate>Fri, 08 May 2026 09:10:38 +0000</pubDate>
      <link>https://dev.to/eliofbm/enterprise-portals-are-where-browser-agents-become-workflows-2h9i</link>
      <guid>https://dev.to/eliofbm/enterprise-portals-are-where-browser-agents-become-workflows-2h9i</guid>
      <description>&lt;p&gt;Browser-agent demos are usually about the click.&lt;/p&gt;

&lt;p&gt;The agent sees a page, reasons about it, presses a button, fills a form, and something happens. On a clean demo site, that is enough to feel like the future.&lt;/p&gt;

&lt;p&gt;Enterprise portals are where the future gets less theatrical.&lt;/p&gt;

&lt;p&gt;The page is dense. The table has hidden state. The session may be stale. The form may trigger a real customer update, refund, filing, inventory change, support reply, or vendor action. The agent is no longer just browsing. It is operating inside a logged-in account with consequences.&lt;/p&gt;

&lt;p&gt;That is the point where browser agents stop being a demo and start becoming workflow infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  The demo is clicking. The workflow is everything around the click.
&lt;/h2&gt;

&lt;p&gt;A browser agent that can navigate a website is useful. But the hard production questions live around the action:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Should the agent rediscover this flow every time?&lt;/li&gt;
&lt;li&gt;Is the page read-only, or can it change business state?&lt;/li&gt;
&lt;li&gt;Whose logged-in account is being used?&lt;/li&gt;
&lt;li&gt;What is the agent allowed to touch?&lt;/li&gt;
&lt;li&gt;Where should it stop for approval?&lt;/li&gt;
&lt;li&gt;What proof remains after the work is done?&lt;/li&gt;
&lt;li&gt;What happens if the portal drifts or the action fails halfway?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These questions matter most in the boring places: CRMs, support inboxes, CMS tools, admin dashboards, vendor portals, payment screens, and client portals.&lt;/p&gt;

&lt;p&gt;They are also exactly where a lot of real work lives.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stop rediscovering the same portal every time.
&lt;/h2&gt;

&lt;p&gt;Screenshots and vision loops are good for unknown pages. They let an agent inspect a surface it has never seen before and choose a next step.&lt;/p&gt;

&lt;p&gt;But repeated enterprise workflows should not be rediscovered from scratch every time.&lt;/p&gt;

&lt;p&gt;If the agent runs the same portal task every week, the path should become a saved action or browser skill. That does not mean the workflow becomes brittle automation again. It means the agent does not pay the full reasoning and observation cost for every known step.&lt;/p&gt;

&lt;p&gt;A useful browser layer should support both modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;exploration when the page is new or has drifted;&lt;/li&gt;
&lt;li&gt;saved actions when the path is known and repeated.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is one reason BrowserMan ships prebuilt platform actions alongside general browser tools. The agent can still navigate, read, click, and type, but repeated operations should not require endless page exploration when a more reliable action exists.&lt;/p&gt;

&lt;h2&gt;
  
  
  A logged-in browser session is authority, not just context.
&lt;/h2&gt;

&lt;p&gt;Cookies are not just state. They represent what a person or team can do.&lt;/p&gt;

&lt;p&gt;When an agent uses a logged-in browser session, it inherits some of that authority. That makes the session different from a cloud browser profile, a public page scrape, or a throwaway headless runtime.&lt;/p&gt;

&lt;p&gt;This is the distinction BrowserMan is built around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the agent can run anywhere;&lt;/li&gt;
&lt;li&gt;the user’s real Chrome session stays on the user’s device;&lt;/li&gt;
&lt;li&gt;cookies and credentials stay inside the browser;&lt;/li&gt;
&lt;li&gt;access is delegated instead of shared as a password;&lt;/li&gt;
&lt;li&gt;access can be scoped, audited, approved, and revoked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For authenticated workflows, the question is not only “can the agent use a browser?”&lt;/p&gt;

&lt;p&gt;The better question is: what browser authority did the user delegate, and under what limits?&lt;/p&gt;

&lt;h2&gt;
  
  
  Separate risk classes.
&lt;/h2&gt;

&lt;p&gt;Not every browser action deserves the same treatment.&lt;/p&gt;

&lt;p&gt;Reading a dashboard is not the same as submitting a form. Drafting a customer reply is not the same as sending it. Looking up an order is not the same as issuing a refund. Opening a payment page is not the same as spending money.&lt;/p&gt;

&lt;p&gt;A practical browser-agent system needs risk classes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Read / observe&lt;/strong&gt; — view a page, extract information, summarize state.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Draft / prepare&lt;/strong&gt; — fill a form or compose a reply without submitting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Low-risk internal update&lt;/strong&gt; — change data that is reversible or contained.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;External send / submit&lt;/strong&gt; — send an email, post content, submit a form, trigger a workflow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delete / refund / spend / high-impact action&lt;/strong&gt; — irreversible, financial, public, or customer-visible changes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is where generic “human approval” language gets too vague.&lt;/p&gt;

&lt;p&gt;Approval for every click is unusable. Approval for nothing is reckless. The useful layer is policy: what class of action is this, what evidence is needed, and what should happen next?&lt;/p&gt;

&lt;h2&gt;
  
  
  Approval gates need UX, not just policy.
&lt;/h2&gt;

&lt;p&gt;A gate can make a system safer and still make it unusable.&lt;/p&gt;

&lt;p&gt;If an approval takes ten seconds of human attention and the agent asks twenty times in one session, the workflow is dead. The operator is not supervising the agent anymore. They are being interrupted by it.&lt;/p&gt;

&lt;p&gt;Good approval design needs batching and evidence.&lt;/p&gt;

&lt;p&gt;Instead of twenty tiny prompts, an agent should be able to say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I found 18 records. I drafted 12 updates. Three are uncertain. Seven require external submission. Here is the diff. Approve the safe batch, review the uncertain batch, and block the risky one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The policy modes are not binary:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;deny by default&lt;/strong&gt; for irreversible or high-risk actions without human availability;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;queue&lt;/strong&gt; work that can wait;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;escalate&lt;/strong&gt; urgent work to a human;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pre-approve bounded actions&lt;/strong&gt; when the scope is narrow and the blast radius is small;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;require receipts&lt;/strong&gt; after state-changing actions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is where browser automation becomes operational software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Receipts are the audit trail for browser work.
&lt;/h2&gt;

&lt;p&gt;After an agent acts in a real browser session, the operator should not be left guessing.&lt;/p&gt;

&lt;p&gt;A useful receipt answers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which site and account were used;&lt;/li&gt;
&lt;li&gt;what the agent saw;&lt;/li&gt;
&lt;li&gt;what it changed;&lt;/li&gt;
&lt;li&gt;what evidence supported the action;&lt;/li&gt;
&lt;li&gt;who or what approved it;&lt;/li&gt;
&lt;li&gt;what was submitted, sent, deleted, refunded, or purchased;&lt;/li&gt;
&lt;li&gt;what happened on failure or retry.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For payment and spend flows, the minimum bar is even higher: vendor or endpoint, budget, signer or approver, receipt, and failure behavior.&lt;/p&gt;

&lt;p&gt;A payment page is not another screen. It is a permission boundary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where BrowserMan fits.
&lt;/h2&gt;

&lt;p&gt;BrowserMan is not trying to be the smartest browser agent or the largest cloud browser fleet.&lt;/p&gt;

&lt;p&gt;It is the delegated real-browser authority layer.&lt;/p&gt;

&lt;p&gt;The product is built for the moment when an agent needs to operate in the same web environment a person already uses, without turning that into password sharing or unlimited browser access.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;real Chrome session;&lt;/li&gt;
&lt;li&gt;agents can run anywhere;&lt;/li&gt;
&lt;li&gt;cookies stay local;&lt;/li&gt;
&lt;li&gt;scope before execution;&lt;/li&gt;
&lt;li&gt;gates during execution;&lt;/li&gt;
&lt;li&gt;receipts after;&lt;/li&gt;
&lt;li&gt;revoke when done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enterprise portals are where browser demos go to become workflows.&lt;/p&gt;

&lt;p&gt;The click loop is the easy part. The workflow layer is where the system proves whether it can be trusted.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>agents</category>
      <category>browsers</category>
    </item>
  </channel>
</rss>
