When the agent uses the built-in browser tools (navigate, click, type, screenshot, snapshot, Runtime.evaluate, etc.), each action feels noticeably slow. Simple interactions often take several seconds, and a sequence of a few browser actions can easily add 20–40 seconds of waiting.
I have compared this side-by-side with Claude (Claude Code / Claude with browser tools). The same kind of browser interactions are much faster there.
In addition, I very frequently get approval prompts like this one:
"CDP Runtime.evaluate
The proposed browser automation action does not match the user’s requested Git staging, committing, and pushing workflow."
These prompts appear even when the browser action is clearly related to the current task, or sometimes in contexts where a browser action is unexpected. Having to constantly review and click “Run” or “Skip” adds friction and makes the experience feel less fluid. This does not seem normal.
This is not only about the agent deciding to verify too often. Even when the agent only performs the necessary browser actions, the individual tool calls themselves are slow compared to Claude, and the approval interruptions make it worse.
Steps to Reproduce
Enable Browser Automation (Browser Tab).
Ask the agent to open a simple page, take a snapshot, click an element, and take a screenshot.
Observe the time taken for each tool call.
Notice frequent approval dialogs (especially CDP Runtime.evaluate) that question whether the action matches the user’s intent.
Repeat a similar sequence in Claude → the difference in responsiveness is clear, and there are far fewer (or no) similar interruptions.
Expected Behavior
Browser tool calls should feel reasonably fast and comparable to other modern browser automation tools (including Claude’s).
Approval prompts should only appear when there is a real risk or clear mismatch, not frequently on normal browser actions.
Part of the per-action delay you’re seeing comes from Auto-Review. When Auto-Review is your run mode, every browser action (including snapshots and screenshots) goes through a quick safety check before it runs. That check is also what shows the “does not match the user’s request” prompts when it thinks an action is off-task. I’ll pass this to the team, including the prompts showing up on browser actions that are clearly part of the task.
In the meantime, you can let browser actions skip that check:
Open Cursor Settings → Agents.
Under Auto-Run, find MCP Allowlist.
Add cursor-ide-browser:* to allow all browser tools, or add only the ones you’re comfortable with, e.g. cursor-ide-browser:browser_snapshot, cursor-ide-browser:browser_take_screenshot, cursor-ide-browser:browser_click.
Allowlisted browser actions run right away, with no review and no prompts. Leave browser_cdp off the list if you still want a check on raw page scripts. Auto-Review keeps working for everything else.
If it still feels slow after that, could you share a Request ID from one of those chats?
the difference is clear: browser actions are noticeably faster and the “does not match the user’s request” prompts no longer appear so far. Can’t say it’s a perfect smooth feeling yet, but it improves a lot!
Hey @rognierbenoit, glad it’s working again, and thanks for the Request ID, it was really useful!
In that chat the browser actions went straight through without the extra review step, so the allowlist change is doing its job. The stuck “Took snapshot” step is a separate issue: the browser tab stopped responding and there’s currently no time limit on that wait. Restarting Cursor resets the tab, which is why it cleared up. I’ve passed your example to the team.
If it happens again, stopping the run and restarting Cursor is the quickest way out. If you notice it mostly on a particular kind of page (a local dev server, a very large page, etc.), let us know, since that helps us reproduce it.