Blog · 14 October 2026

Why I built my own browser agent

I used to let an AI drive my browser most days. Then both of them took it away, so I built my own.

CopperOS is an open-source Chrome extension. You type a task in a side panel and it does it in your own tabs, signed in as you. It's free to try.

Perplexity's Comet came out in July 2025 and was free for everyone by October. OpenAI's ChatGPT Atlas came out that same October. I used them for job applications, going through a list of social accounts, and moving data into Google Sheets.

Then they took it away

Atlas gave Plus users 40 agent messages a month, and answering the agent's own questions counted against that. One user hit the cap in three days applying to jobs. OpenAI shut Atlas down in July, and it stopped working on August 9.

In September, Comet moved "Control browser" behind Computer credits. A new Pro plan gets 4,000 once, with no monthly top-up, and there was no announcement. One review on Trustpilot:

They took away features I PAID for half way through my damn subscription.

My job application loop stopped mid-week.

So I built my own

CopperOS is an open-source browser agent for Chrome. You type a task in a side panel and it reads, clicks, types, scrolls and switches tabs in your own Chrome, already signed in.

  • Cloud: add it to Chrome, sign in with Google, and go. There's a free weekly trial and no API key to set up.
  • Your own computer: run the broker and use any model with tool calling — Ollama locally, or OpenRouter or OpenAI with your own key. The extension finds the broker running and offers to switch. Setup guide.
Terminal
$ git clone https://github.com/Jesse0502/CopperOS.git
$ cd CopperOS/broker
$ npm install
$ npm start

Here's a real run, recorded in my own Chrome.

How it reads a page

Instead of screenshots, it reads the page's accessibility tree, the same thing screen readers use, and gives each element a short ref:

[e11] link "Products"
[e12] textbox "Search" value=""
[e28] button "Sign in"

The model calls click(ref: "e28") and the extension clicks the real element. It never handles pixel coordinates. A snapshot like this is 2 to 5KB. A screenshot is 100KB or more. It only adds a screenshot when the tree isn't enough, like on a canvas.

Things I fixed because I needed them

  • "Apply now" buttons that open a new tab. CopperOS follows the new tab instead of clicking the old button again.
  • Google Sheets draws its grid on a canvas, so it reads the sheet through its CSV export with your login.
  • It asks before it submits anything, or before every click if you want.
  • It works in background tabs without stealing focus, and only closes tabs it opened.
  • "Keep applying until I tell you to stop" loops, even with the panel closed.
  • Claude Code or a script can hand it browser work through MCP or the CLI.

What's still rough

It works in one tab at a time. Chrome shows a "started debugging this browser" bar while it runs. It's only as good as the model behind it.

Try it

If you've been missing browser control since September, give it a go and tell me what breaks. Issues are open.

Jasmeet Singh
Jasmeet Singhjassydev