{"author":"neversettles","children":[{"author":"GreenGames","children":[{"author":"neversettles","children":[{"author":"GreenGames","children":[],"created_at":"2025-04-28T16:42:21.000Z","created_at_i":1745858541,"id":43823374,"options":[],"parent_id":43823287,"points":null,"story_id":43822659,"text":"Oh okay thanks - that would be fire tbh","title":null,"type":"comment","url":null}],"created_at":"2025-04-28T16:33:03.000Z","created_at_i":1745857983,"id":43823287,"options":[],"parent_id":43823137,"points":null,"story_id":43822659,"text":"Between steps it would preserve cookies, but atm when the playwright browser launches, it starts with a fresh browser state, so you&#x27;d have to o-auth to log in each time.<p>We&#x27;re adding browser state persistence soon, hoping to enable it so once you sign in with google once, it can stay signed in on your local machine.","title":null,"type":"comment","url":null}],"created_at":"2025-04-28T16:18:54.000Z","created_at_i":1745857134,"id":43823137,"options":[],"parent_id":43822659,"points":null,"story_id":43822659,"text":"This is very cool! Does your MCP server preserve cookies&#x2F;localStorage between steps, or would developers need to manually script auth handshakes?","title":null,"type":"comment","url":null},{"author":"esafak","children":[{"author":"neversettles","children":[],"created_at":"2025-04-28T16:39:11.000Z","created_at_i":1745858351,"id":43823341,"options":[],"parent_id":43823160,"points":null,"story_id":43822659,"text":"We started with using browser-use because they had the best evals: <a href=\"https:&#x2F;&#x2F;browser-use.com&#x2F;posts&#x2F;sota-technical-report\">https:&#x2F;&#x2F;browser-use.com&#x2F;posts&#x2F;sota-technical-report</a><p>- but we found that Laminar came out with a better browser agent (&amp; a better eval): <a href=\"https:&#x2F;&#x2F;www.lmnr.ai&#x2F;\">https:&#x2F;&#x2F;www.lmnr.ai&#x2F;</a> so we&#x27;re looking to migrate over soon!","title":null,"type":"comment","url":null}],"created_at":"2025-04-28T16:20:46.000Z","created_at_i":1745857246,"id":43823160,"options":[],"parent_id":43822659,"points":null,"story_id":43822659,"text":"Is there a benchmark for this? If not, you ought to (crowd?)start one for everybody&#x27;s sake.","title":null,"type":"comment","url":null},{"author":"nico","children":[{"author":"neversettles","children":[],"created_at":"2025-04-28T16:45:37.000Z","created_at_i":1745858737,"id":43823403,"options":[],"parent_id":43823280,"points":null,"story_id":43822659,"text":"In browser MCP, looks like cursor controls each action along the way, but actually what we wanted was a single browser agent that had a high quality eval that could perform all the actions independently (browser-use)","title":null,"type":"comment","url":null}],"created_at":"2025-04-28T16:32:13.000Z","created_at_i":1745857933,"id":43823280,"options":[],"parent_id":43822659,"points":null,"story_id":43822659,"text":"Looks amazing. Congrats on the release<p>How does this compare to browser mcp (<a href=\"https:&#x2F;&#x2F;browsermcp.io&#x2F;\" rel=\"nofollow\">https:&#x2F;&#x2F;browsermcp.io&#x2F;</a>)?","title":null,"type":"comment","url":null},{"author":"proc0","children":[{"author":"neversettles","children":[],"created_at":"2025-04-28T18:55:38.000Z","created_at_i":1745866538,"id":43824731,"options":[],"parent_id":43824256,"points":null,"story_id":43822659,"text":"Yeah, I suppose to esafak&#x27;s point, perhaps a benchmark for browser agent QA testing would be needed.","title":null,"type":"comment","url":null}],"created_at":"2025-04-28T18:08:07.000Z","created_at_i":1745863687,"id":43824256,"options":[],"parent_id":43822659,"points":null,"story_id":43822659,"text":"Interesting. I see from the video example it took a lot of steps and there is a lot of output for a simple task. I&#x27;m thinking this probably doesn&#x27;t scale very well and more complex tasks might have performance challenges. I do think it&#x27;s the right direction for AI coding.","title":null,"type":"comment","url":null},{"author":"klntsky","children":[{"author":"neversettles","children":[],"created_at":"2025-04-29T06:01:16.000Z","created_at_i":1745906476,"id":43829114,"options":[],"parent_id":43828361,"points":null,"story_id":43822659,"text":"The power here is the coding agent has the ability to test visually if - and like a human would. So if the button isn&#x27;t visible, the browser agent would use vision to detect that it&#x27;s missing.<p>It sorta tests &#x27;just like a human would&#x27; to make sure the flow that&#x27;s implemented works as it&#x27;s expecting to.","title":null,"type":"comment","url":null}],"created_at":"2025-04-29T03:07:37.000Z","created_at_i":1745896057,"id":43828361,"options":[],"parent_id":43822659,"points":null,"story_id":43822659,"text":"I told windsurf to install playwright, identify crucial workflows of the app and add tests for them. Not without my input, but I got what I wanted without getting the hands dirty.<p>Does this thing add much on top?","title":null,"type":"comment","url":null},{"author":"gitroom","children":[],"created_at":"2025-04-29T08:12:47.000Z","created_at_i":1745914367,"id":43829889,"options":[],"parent_id":43822659,"points":null,"story_id":43822659,"text":"Gotta say, getting rid of all the clicking and checking just sounds like a huge win. I hate wasting time on all that.","title":null,"type":"comment","url":null}],"created_at":"2025-04-28T15:36:25.000Z","created_at_i":1745854585,"id":43822659,"options":[],"parent_id":null,"points":84,"story_id":43822659,"text":"Hey HN! We\u2019ve been building an MCP server to help AI-assisted web app developers by using browser agents to test whether changes made by an AI inside an editor actually work. We&#x27;ve been testing it on scenarios like verifying new flows in a UI, or checking that sending a chat request triggers a response. The idea is to let your coding agent both code and evaluate if what it did was correct. Here\u2019s a short demo with Cursor: <a href=\"https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=_AoQK-bwR0w\" rel=\"nofollow\">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=_AoQK-bwR0w</a><p>When building apps, we found the hardest part of AI-assisted coding isn\u2019t the coding\u2014it\u2019s tedious point-and-click testing to see if things work. We got tired of this loop: open the app, click through flows, stare at the network tab, copy console errors to the editor, repeat. It felt obvious this should be AI-assisted too. If you can vibe-code, you should be able to vibe-test!<p>Some agents like Cline and Windsurf have browser integrations, but Cline\u2019s (via Anthropic Computer Use) felt slow and only reported console logs, and Windsurf\u2019s didn\u2019t work reliably yet. We got so tired of manually testing that we decided to fix it.<p>Our MCP server sits between your IDE agent (Cursor&#x2F;Windsurf&#x2F;Cline&#x2F;Continue) and a Playwright-powered browser-use agent. It spins up the browser, navigates your app per instructions from the IDE agent, and sends back steps, console events, and network events so the IDE agent can assess the app\u2019s state.<p>We proxy Browser-use\u2019s original Claude calls and swap in Gemini Flash 2.0, cutting latency from ~8s \u2192 ~3s per step. We also cap console&#x2F;network logs at 10,000 characters to stay within context limits, and filter out irrelevant logs (e.g., noisy XHR requests).<p>At the end, the browser agent outputs a summary like:<p><pre><code>  Web Evaluation Report for http:&#x2F;&#x2F;localhost:5173 \n  Task: delete an API key and evaluate UX\n  Steps: Home \u2192 Login \u2192 API Keys \u2192 Create Key \u2192 Delete Key\n  Flow tested successfully; UX had problems X, Y, Z...\n  Console (8)...   Network (13)...   Timeline of events (57) \u2026\n</code></pre>\nThis gives the coding agent the ability to recognize the console and network errors, or any issues with clicking around, and have the coding agent fix them before returning back to the user.  (There\u2019s a longer example in the README at <a href=\"https:&#x2F;&#x2F;github.com&#x2F;Operative-Sh&#x2F;web-eval-agent\">https:&#x2F;&#x2F;github.com&#x2F;Operative-Sh&#x2F;web-eval-agent</a>.)<p>Try it in Cursor &#x2F; Cline &#x2F; Windsurf &#x2F; Claude Desktop: (macOS&#x2F;Linux):<p><pre><code>  curl -LSf https:&#x2F;&#x2F;operative.sh&#x2F;install.sh -o install.sh\n  less -N install.sh   # inspect if you\u2019d like\n  bash install.sh      # installs uv + jq + Playwright + server\n  # then in Cursor&#x2F;Cline&#x2F;Windsurf&#x2F;Continue: craft a prompt using the web_eval_agent tool\n</code></pre>\n(For Windows, there\u2019s a 4-line manual install in the README.)<p>What we want to do next: pause&#x2F;go for OAuth screens; save&#x2F;load browser auth states; Playwright step recording for automated test creation and regression test creation; supporting Loveable &#x2F; v0 &#x2F; Bolt.new sites by offering a web version.<p>We\u2019d love to hear your feedback, especially if you\u2019ve experienced the pain of having to manually test changes happening in your web apps after making changes from inside your IDE, or if you\u2019ve tried any alternative MCP tools for this that have worked well.<p>Try it out if you feel it\u2019d be helpful for your workflow: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;Operative-Sh&#x2F;web-eval-agent\">https:&#x2F;&#x2F;github.com&#x2F;Operative-Sh&#x2F;web-eval-agent</a>. (note: the server hits our operative.sh proxy to cover Gemini tokens. The MCP server itself is OSS; Anthropic base-URL support is coming soon. Free tier included; heavy users can grab the $10 plan to offset our model bill.)<p>Let us know what you think! Thanks for reading!","title":"Show HN: Web-eval-agent \u2013 Let the coding agent debug itself","type":"story","url":"https://github.com/Operative-Sh/web-eval-agent"}
