EARLY ACCESS · macOS 14+ · APPLE SILICON

The browser that works with the agent you already have.

pline is a calm, native Mac browser built on Chromium. Your coding agent sits beside your tabs, runs on its own login, and does its work where you can see it.

What the replay shows, step by step:

  1. You ask Claude Code to remember that you prefer pnpm over npm in JavaScript projects.
  2. Claude Code calls the memory_add tool, and the call completes.
  3. Claude Code replies that it will use pnpm instead of npm from now on.
  4. The Memory tab shows the new entry, written by Claude Code, with a Forget button and the note “1 memory, stored on this Mac”.
  5. You ask Claude Code to search your pline memory for your package manager preference.
  6. While it works, an amber ring surrounds the page, the tab shows Acting, and a strip reads “Claude Code is working on this tab” with a step count, a timer, Take over and Stop.
  7. Claude Code calls memory_search and answers that your pline memory says you prefer pnpm over npm.
  8. Pressing Control-2 switches the window to the warm Personal Space, then back to Work.

For macOS 14 or later on Apple silicon. No account needed.

Why pline

Why pline

You already chose an agent. Keep it. A new AI browser usually means a new account, a new model and a new place your prompts go. pline ships no model at all. It runs Claude Code, the agent you already have, today, on your own login. Codex, Gemini CLI, Goose and Factory Droid connect from Settings and come next, and each Space keeps its own agent.

And you should see what it does. When the agent works on a tab, pline rings that tab in amber, names the agent, counts its steps and keeps Stop one click away. The tabs it opens wait in their own group until the task ends, and Take over hands any of them back to you.

Spaces

Every Space changes the whole room.

Each Space keeps its own tabs and its own colour, and the window shifts with it when you press ⌃1 (Control-1) to ⌃9 (Control-9). Pinned tabs live in folders. Today’s tabs tidy themselves away after 12 hours, and ⇧⌘T (Shift-Command-T) brings back the last one. Quit, relaunch, and it is all where you left it.

pline’s Work Space: a deep slate-blue window with the sidebar of tabs on the left, the Wikipedia article on typography in the middle, and the agent panel on the right with Claude Code ready.
The same page in the Personal Space, where the whole window turns a warm plum brown.
The same page in the Studio Space, which is light: a pale blue sidebar and agent panel around the page.

Captures of the same page in three Spaces, 3 Nov 2026.

Search and ask stay apart.

Press ⌘T (Command-T). The top row goes to the web, the second row goes to your agent, and a search never ends up as a prompt by accident.

Bring your agent

Your agent. Your login. Your Mac.

pline starts the agent you already use in the terminal and talks to it over the Agent Client Protocol. The agent answers with the login it already has. pline never asks for it, never stores it and never passes it anywhere. Open the panel with ⌥⌘P (Option-Command-P), and every message tells the agent which page and Space you are on.

Each Space keeps its own agent. Switch from the agent menu in the chat box or with ⌥⌘A (Option-Command-A), and the earlier messages stay above a “Switched to …” line, while the new agent starts fresh. The model menu lists the models your agent offers, and / (slash) brings up the agent’s own commands next to pline’s.

Claude Code

Tested end to end. Settings › Agents installs its ACP adapter into pline’s own folder. When claude is on your PATH the adapter runs it, so your own Claude Code login applies. This is the agent we use in pline every day.

Codex

Connects from Settings, live testing next. Settings › Agents installs its ACP adapter, opens Terminal for codex login and tests the connection. We have not run full tasks with it yet, so we are not calling it supported.

Gemini CLI

Connects from Settings, live testing next. Same status as Codex. pline uses your own gemini when it speaks ACP, and installs its own copy when it does not.

Goose

Connects from Settings, live testing next. Same status as Codex. Goose’s own installer puts it in pline’s folder, and goose configure sets up its provider.

Factory Droid

Listed in Settings, live testing next. pline finds droid and can run Factory’s installer, which puts it in ~/.local/bin. Same status as Codex.

Agent names are trademarks of their owners. pline is not affiliated with or endorsed by them.

The pline agent panel in the light Studio Space: the question ‘What page am I looking at? One sentence.’, sent with the Typography article on Wikipedia, and Claude Code’s one-sentence answer naming that article.
A real answer from Claude Code about the open page, in the pline panel, 3 Nov 2026.
What pline touches
Itempline doespline never does
Your agent’s loginStarts the agent so it can use the login it already hasReads ~/.claude, ~/.codex, ~/.gemini, ~/.config/goose or ~/.factory, or sees what you type when the agent asks you to log in (that happens in Terminal, with the agent’s own login command)
API keys (optional)Keeps a key you paste in the macOS Keychain and hands it only to that agent’s processShows it again, logs it or sends it to pline servers (there are none)
Your promptsPasses them to your agent along with the page and Space you are onLogs prompt or tool contents
You stay in charge

Hand over a tab. Take it back with one click.

While an agent works, you can see exactly where. Stop (⌥⌘. (Option-Command-Period)) ends the run, and Take over hands the tab back to you.

Amber means working.

The tab wears an amber ring and says “Acting”. A strip above the page names the agent, its step and how long it has run.

Its tabs, kept apart.

Tabs the agent opens are kept in their own muted group until the task ends.

Its questions always reach you.

When your agent asks for permission, the request reaches your screen with the agent’s own choices, even for a task in another Space.

Tasks

Switch Spaces. The work keeps going.

Every prompt becomes a task. Each Space runs one at a time, and different Spaces run side by side, so moving to another Space stops nothing. The Tasks tab shows what is running, for how long, its steps and a preview of the tab, with Open, Stop and Rerun. Use Repeat… to run a prompt daily, on weekdays or every few hours with your own agent.

Schedules run while pline is open. If one was missed while pline was closed, it runs once at launch, as long as it is less than 12 hours late.

The Tasks tab with Work busy: a running Claude Code task checking the first five post links on the Swift.org blog, with its tab preview, its watchr steps and Open, Stop and Repeat… buttons.
Scheduled tasks in pline: a weekend forecast daily at 18:30 in Personal and a list of recent posts on weekdays at 09:00 in Work, above a finished task from the Personal Space with Open, Rerun and Repeat… buttons.
Captures from a pline build with Claude Code, 3 Nov 2026. The schedules were set up for the capture.
Memory

A memory you can read, and forget.

pline gives your agent a small memory for the things you would rather not repeat: preferences, facts, notes about sites. The Memory tab lists every entry and which agent wrote it, and Forget removes it (you can bring it back). You choose whether an agent saves and tells you, asks you first or cannot save at all, and you can turn memory off for any site. It turns away anything that looks like a secret, and it remembers nothing from banking, health, government ID, adult or password-manager sites, or from sign-in and checkout pages.

  • a plain SQLite file on this Mac
  • readable only by your user account
  • never synced
  • encryption at rest: not yet
Drawn from the Memory tab in a live session with Claude Code, 31 Oct 2026.
watchr

Web QA, inside your own tabs.

pline hands your agent watchr, the QA tool from Affinity Labs, and it is on by default. watchr works in the tab you are on, through pline’s local DevTools port, so your agent can click through a flow, read the console and network, and bring back screenshots as evidence. pline asks before an agent takes control of a tab, and the run strip says when it is working there.

With Claude Code, pline also switches off other browser tools for that session, so no separate browser window opens. watchr needs uv, and you can turn it off in Settings › Agents.

A running task card in pline: ‘Check that the first five post links on this page open, and tell me if any are broken.’ on the Swift.org blog tab, with its steps listed, including watchr: evaluate_js.
  • watchr: evaluate_js
Everyday browsing

Still a browser first.

Chromium underneath, with careful defaults on top.

Leaving Arc? Bring your Spaces.

Import Arc Spaces with their colours, pinned tabs, folders and favorites, plus bookmarks from Chrome, Brave, Edge, Vivaldi, Dia, Comet, Safari and more. Duplicates are skipped and Undo is right there.

The Import pane of pline Settings: Arc (Spaces, pinned tabs, folders, favorites), Chrome and Safari (bookmarks), each with an Import button, a Choose menu for other browsers, and the note ‘Never passwords, cookies, history or extensions.’

Asks before the camera

Camera, microphone, location and notifications start at Don’t Allow, site by site. A link that wants to open another app asks first too.

A pline prompt under the address field asking ‘Allow “meet.jit.si” to use your camera and microphone?’, with Allow and Don’t Allow buttons.

Find in page

Press ⌘F and matches light up as you type.

The pline find bar over a Wikipedia article, with ‘serif’ typed and the match highlighted in the text.
  • Downloads in reach

    Progress, cancel and Show in Finder from the sidebar footer.

  • PDFs open in place

    A built-in viewer, no extra app.

  • Pages that recover

    A crashed page reloads once, then offers Retry.

Captures from a pline build, 3 Nov 2026: a meet.jit.si meeting, a Wikipedia article, and Import with sample browser data.

Privacy

Nothing to sign in to.

pline has no account, no pline server and no sync. What you do stays on your Mac, except what your agent sends to its own provider and what the sites you visit see, which is true of any browser and any agent.

On your Mac

  • pline and its folder
  • Your agent, on its own login
  • The memory file
  • Optional keys, in the Keychain

Your agent’s provider

  • The prompts your agent sends, with its own login

Sites you visit

  • Your page traffic, as in any browser

Installs only: agents come from npm or their makers’ installers, and watchr from PyPI. None of your data goes with them.

pline servers: none

See the full diagram
  • Your agent keeps its own login. pline starts it and never reads its credential folders.

  • Keys stay in the Keychain. An API key you paste is passed only to that agent’s process.

  • Memory lives in one local file. A plain SQLite file only your user account can read. You can see and forget every entry.

  • pline adds no telemetry. Its logs leave out your prompts and tool contents.

Read how pline treats your data

Questions, answered plainly.

Which agents work with pline?

Claude Code works today and has been tested end to end. Codex, Gemini CLI, Goose and Factory Droid can be installed, logged in and connection-tested from Settings › Agents, and we will call them supported once we have run full tasks with each one. Every Space keeps its own agent, and you switch from the chat box.

Do I need a pline account?

No. pline has no sign-in, no pline server and no sync. Your Spaces, tasks and memory live in a folder on your Mac.

Does pline see my AI subscription or login?

No. Your agent uses the login it already has. pline never reads the agent’s credential folders and never stores, shows or passes on a subscription token.

Do I need an API key?

Only if your agent needs one. Under Advanced on an agent’s card in Settings › Agents you can paste a key (Goose keeps its keys in its own setup); it goes into the macOS Keychain, is used only while its switch is on, and is handed only to that agent’s process.

Is the memory encrypted?

No, not yet. It is a plain SQLite file on this Mac that only your user account can read, never synced. It refuses things that look like secrets, and you can forget any entry or all of them. Encryption at rest is planned.

Can I bring my Arc Spaces?

Yes. pline imports Arc Spaces with their colours, pinned tabs, nested folders and favorites, and bookmarks from Chromium-based browsers and Safari. It copies structure only: never cookies, passwords or history.

Does it run Chrome extensions?

Not yet. There is no extension store and no password manager today.

What do I need to run it?

A Mac with Apple silicon on macOS 14 or later, and the agent you want to use. Settings › Agents installs an agent’s pinned package from npm (or its maker’s installer), and if you have no Node.js 20 or later, pline adds its own copy of Node.js for the agents that need it. watchr needs uv, which downloads watchr from PyPI the first time. There is no Windows, Linux or Intel build.

Can an agent in pline be tricked by a web page?

pline does not promise protection from prompt injection. What it does is keep the agent visible, put every permission request it makes in front of you, and let you stop it at any moment, so use it as you would any agent that can browse.

When can I download it?

Now. pline 1.0 is out for Macs with Apple silicon on macOS 14 or later, and it updates itself after you install it.

Bring your agent. We’ll bring the browser.

pline 1.0 is out. Download it, connect the agent you already use, and start working.

Download for Mac

macOS 14 or later · Apple silicon · no account