My AI Agents Kept Fighting Me for My Own Browser A developer behind the open source browser-agent project described how multiple AI agents sharing a single logged-in Brave browser repeatedly wiped out human work by reloading pages, duplicating tabs and acting on stale page state, a conflict Cursor's forum acknowledged as a known limitation of parallel agents sharing one tab. The update enforces one tab per job, a fresh page read before every action, detection of human captcha or form input, and a broker-level block on mid-job reloads and closes, with stuck agents required to ask the user rather than retry. On the night of October 22 I had AI agents opting me out of data broker and people search sites. They were working in my real Brave, the one I’m logged into everything with, and I was using that same browser right next to them. That was the point. Some of those sites want a captcha or a click only a person can do, so the plan was they do the boring parts and I step in when a human is needed. It didn’t go like that. The agents kept opening a page, filling part of the form, closing it, and opening it again, over and over in front of me. I’d solve a captcha and the page would reload and wipe it. I’d fill out a form and it would reload and wipe that too. One agent opened a confirmation link right on top of a page I had already submitted. And when they were done, the tabs were still sitting there. None of this was one bad bug. It was a few habits stacking up. The agents hop between a hidden copy of a page they work in and a visible copy they show me, and those two copies don’t know about each other. When anything looks off, their fix is to show the page again, and showing it again means loading it again, which wipes whatever I just did. Several agents were acting at the same time. And the big one: they never looked at what the page showed right now before they acted. They acted on what they remembered from a few steps back, so a page I had already finished looked to them like a page that still needed doing. Cursor users ran into the same wall. There’s a thread on their forum, Agents use the same browser tab, which creates a conflict https://forum.cursor.com/t/agents-use-the-same-browser-tab-which-creates-a-conflict/151571 , where one agent opens a page, a second agent navigates the same tab somewhere else, and they keep pulling it back and forth. The reply from Cursor called it a known limitation, said parallel agents use the same browser and end up fighting over the active tab, and suggested having one agent use the browser at a time. That works, but it gives up the thing I actually want. There are plenty of browser agent tools out there. Most of them open a fresh browser with none of your logins, which is useless for anything that needs your accounts. A lot of tools assume the browser belongs to the agent. The rare part is one real browser, logged in, shared safely between a person and several agents at once. I already had an open source project for this, browser-agent https://github.com/nicedreamzapp/browser-agent , and it comes in two parts. The agent does the work: it runs on my own Mac and drives my real Brave. The broker, which lives in the same repo, is what makes it safe to share that browser. It sits on the browser’s debug port and gives each agent its own tab, so agents can’t see or grab each other’s tabs or mine, and it won’t let an agent pull the window in front of me. That night showed the tab rules weren’t enough on their own, so as of this update the two of them work like this. One tab per job. An agent works in one tab from start to finish and never opens a second copy of the same page. If it needs to show me something, it shows me that tab, not a fresh reload of it. Look before every step. Before it clicks or types, the agent reads the page as it is right now, not as it was the last time it checked. Notice when I help. If I solved the captcha or filled in the form, the agent sees that on the page and picks up from there with me instead of starting over. No reload or close in the middle of a job. This one isn’t left to the agent’s good manners. The broker blocks it in code, so a page I’m working in can’t get wiped out from under me. Stuck means ask. If something doesn’t make sense, the agent asks me in one line what’s going on. It doesn’t retry by reopening the page, because that’s exactly what was wrecking my work. And every tab gets closed when the job ends. Hidden work tabs close when the agent lets go of them, and pages it showed me get closed when the task is done, so they don’t pile up across my machines. It’s all on GitHub under the MIT license at nicedreamzapp/browser-agent https://github.com/nicedreamzapp/browser-agent , with the broker in its own folder there. The broker works with the tools you already use too, since it takes over port 9222 and they keep dialing the same port they always did. If you’ve watched two agents fight over a tab, or watched one reload a page you were halfway through, that’s the problem this is for.