Every few weeks I hit the same wall. A tool I need to pull data from has no usable API. Seller centers, supplier portals, 3PL dashboards. The data is right there on the screen, but the only way to get it is to log in and click through the UI like a human. So I built Webhands: a computer-use agent that operates those dashboards in a real headless browser, returns clean structured data, and refuses any write action unless I explicitly confirm it.
The problem with agents that click
The moment you hand an agent a real browser session, you have given it the power to do everything the logged-in human can do. That includes the dangerous stuff. Issuing a refund. Confirming a shipment. Canceling an order. Reading a page is safe. Clicking "Issue refund" is not, and the difference between the two is one button.
Most automation frameworks treat every action the same way. A click is a click. That is exactly the design choice I did not want, because a scraping run that quietly mutates production state is not a convenience, it is an incident waiting to happen. I wanted reads to be safe by default and writes to be deliberate, with no way to trip into a mutation by accident.
The core idea: recipes and write-gating






