Out of curiosity, what prompted you to make this when agent-browser.dev and lots of other alternatives already exist? "Because it's fun" is absolutely a legitimate answer, but I couldn't tell from the README what I might be missing.
I love it! I’m going to give this a try for sessions that need to do a lot of browsing. If anyone is looking for a headless WebKit browser/viewer for agents (more focused on development), check out https://github.com/bensyverson/sleepyhollow
Great work, I'll try it out as a replacement for chrome for my verification flows today. It's great to have ad blocker but it's curious to me to enable it by default, is this something you use more for scraping than application testing for example?
Are the UBlock Origin lists configurable and is the browser stealthy enough to been indistinguishable from normal chrome when used from a residential IP?
> agweb has no automatic cookie-banner remover. Its ad blocker uses uBlock Origin’s lists, which block ads and trackers but leave consent dialogs alone
I mean, rather than just out-and-out removing them, I would think that the proper thing to do to get those dialogs out of the way would be to have a separate extension that detects them and automatically interacts with them to dismiss them (in whatever way you'd prefer.)
I run several agents at once. Playwright's Chrome windows kept popping up and grabbing my keyboard, and headless got blocked by some sites and you can't see easily what's happneing.
agweb keeps what's good about headless and still lets you watch. It never pops up or takes focus, and idle tabs get suspended: five idle pages sit at 0% CPU and 590 MB, vs 1.6 GB for Playwright's Chrome. ⌘D shows every agent's tabs live.
For agents, the commands mirror playwright-cli, which they already know. Each reply also says what the action changed (fetches, elements added or removed), so they need fewer snapshots, fewer tool calls and fewer tokens.
Also: one login shared by all agents through a named profile, fill --secret-cmd 'pass show site' keeps passwords out of the transcript, and ask hands the tab to you for MFA or a CAPTCHA.
The shared named profile is handy, but how do you deal with one agent's actions spilling over to the others? For example, one agent logs out, switches accounts, or trips a site's rate limit, and every other agent on that profile inherits it. Is there a way to give an agent a forked or read-only copy of the profile's cookies?
This - for some scenarios I want the cookies shared (multiple agents watching eg fb marketplace), for others I want to have their own sandbox. And the GUI could indicate this eg. by putting tabs that share profile into blocks.
Out of curiosity, what prompted you to make this when agent-browser.dev and lots of other alternatives already exist? "Because it's fun" is absolutely a legitimate answer, but I couldn't tell from the README what I might be missing.
What alternative show you a visual preview like this?
https://github.com/anomalyco/browse http://browsermcp.io/ and others, no doubt.
The features I look for a persistent sessions, so I can login, visual feedback tools, and low resource usage.
I assume all can do this for human-in-the-loop scenarios. I've personally settled on agent-browser.dev for now.
I love it! I’m going to give this a try for sessions that need to do a lot of browsing. If anyone is looking for a headless WebKit browser/viewer for agents (more focused on development), check out https://github.com/bensyverson/sleepyhollow
Great work, I'll try it out as a replacement for chrome for my verification flows today. It's great to have ad blocker but it's curious to me to enable it by default, is this something you use more for scraping than application testing for example?
I built something similar (albeit didn't put too much effort in), so will be moving to this! Great work.
Thanks!
is there a cli version / headless or build on such.
Are the UBlock Origin lists configurable and is the browser stealthy enough to been indistinguishable from normal chrome when used from a residential IP?
> agweb has no automatic cookie-banner remover. Its ad blocker uses uBlock Origin’s lists, which block ads and trackers but leave consent dialogs alone
this is awesome
What's good about cookie consent dialogs?
A lot of pages don't work when an adblocker removes the Dialog.
I mean, rather than just out-and-out removing them, I would think that the proper thing to do to get those dialogs out of the way would be to have a separate extension that detects them and automatically interacts with them to dismiss them (in whatever way you'd prefer.)
I run several agents at once. Playwright's Chrome windows kept popping up and grabbing my keyboard, and headless got blocked by some sites and you can't see easily what's happneing.
agweb keeps what's good about headless and still lets you watch. It never pops up or takes focus, and idle tabs get suspended: five idle pages sit at 0% CPU and 590 MB, vs 1.6 GB for Playwright's Chrome. ⌘D shows every agent's tabs live.
For agents, the commands mirror playwright-cli, which they already know. Each reply also says what the action changed (fetches, elements added or removed), so they need fewer snapshots, fewer tool calls and fewer tokens.
Also: one login shared by all agents through a named profile, fill --secret-cmd 'pass show site' keeps passwords out of the transcript, and ask hands the tab to you for MFA or a CAPTCHA.
macOS 26+, WebKit only, no CDP.
Why would you mirror the playwright CLI but not CDP? This looks pretty cool, but it's completely useless to me without CDP.
Probably because it’s not chromium
agweb is the system WebKit, so no CDP. Commands copy playwright-cli bc agents already know them. If you need CDP, Playwright fits better.
The shared named profile is handy, but how do you deal with one agent's actions spilling over to the others? For example, one agent logs out, switches accounts, or trips a site's rate limit, and every other agent on that profile inherits it. Is there a way to give an agent a forked or read-only copy of the profile's cookies?
This - for some scenarios I want the cookies shared (multiple agents watching eg fb marketplace), for others I want to have their own sandbox. And the GUI could indicate this eg. by putting tabs that share profile into blocks.
Not yet. For now, state-save in one workspace and state-load in a fresh one gives an in-memory copy, so a logout stays there. Fork flag can be done.