Naoba

A browser your agents share, and your projects don't.

Naoba is a macOS browser that several AI coding agents drive at once. Agents working in the same project share its tabs, its cookies and its logged-in sessions. Agents working in different projects share nothing at all — not a tab, not a cookie, not a login.

Buy Naoba — 5 EUR Download Paid once. macOS on Apple silicon.
Naoba's window: a tree of agents, their tabs and the calls each made, beside the page in front.
Three agents in one project. Each has its own tab; the calls it made are under the tab it made them in.

Why it exists

Most tools hand an agent your own browser.

That is convenient until two agents work on two different things. A login belonging to one project is then visible to an agent working on another, and nothing prevents it. Naoba is a browser of its own: it starts empty, you sign into what you need inside it, and each project keeps what it was given.

Input a page cannot tell from a person's

Clicks and typing arrive as real events, so pages that reject synthetic input work normally.

A network log, and response bodies

The DevTools protocol is there, not approximated. An agent reads what the page actually received.

A whole scenario per call

An agent writes JavaScript — navigate, act, read, return — instead of one round trip per click.

Somewhere to ask for help

When an agent meets a sign-in or a payment, it hands the tab over, says what it needs and waits for you.

What an agent writes

One call carries the whole flow.

Naoba speaks MCP, so any IDE that connects to an MCP server connects to it. The bridge takes the agent's working directory, walks up to the repository root, and that is the project.

await api.navigate('https://example.com/dashboard')
if (await api.getText('h1') === 'Sign in') {
  await api.requestHuman('sign in to the dashboard')
}
return await api.getText('.balance')

The window comes forward with that sentence on it, you sign in, and the call resumes when you mark it done. Naoba never puts itself on screen uninvited.

The boundary

One window, and every project apart inside it.

There is no row of tabs across the top. Down the left is a tree: every agent working in this project, under each agent the tabs it has been in, and under each tab the calls it made there. A tab two agents share appears under both, each seeing its own calls. The projects meet only in that list.

A project is asked about once

The first time an agent working in a folder wants a browser, Naoba asks you. The answer is remembered, and you can take it back.

The port is not open to anything

Naoba writes a token for each run into a file only you can read, and closes any connection that does not present it.

Tabs belong to the agent that opened them

They close when its session ends, so a day of agents starting and finishing does not leave a window full of pages nobody is reading.

When an agent is stuck

It asks you, and waits.

A sign-in, a payment, a checkbox only a person should tick. The agent hands the tab over with a sentence saying what it needs; you do it and press the button, and its call carries on.

The panel asking the person to sign in to the shop, with a button marked I have done it.
The same window in the dark appearance, with an agent waiting for you.

Price

5 EUR
  • Paid once. No subscription, and no second charge.
  • A key that unlocks Naoba on your Mac, and can be moved to another.
  • 14 days to change your mind, for any reason.
  • The source is on GitHub and you may read and build it.

Download the application, open it, and paste the key from your receipt into the settings window. Until it is unlocked Naoba refuses every agent and says so. It is signed and notarized by Apple, so macOS opens it without a warning.

What you need

macOS on Apple silicon, and Node 20 for the bridge.

Point your IDE at the bridge and Naoba starts itself when an agent first asks for a browser.

claude mcp add naoba -- node /Applications/Naoba.app/Contents/Resources/bridge/index.mjs