ctrl+all runs Claude Code, Codex, OpenCode and five more on one Mac, where your whole team can watch them work, redirect them mid-turn, and hand them off. From a laptop or a phone.
For macOS. Invites go out in small batches.
You're on the list.We send one email when your invite is ready. Nothing else.
Pick your agent
Claude Code
Codex
OpenCode
Ollama
+4 more
ps-e2e-demo
Undo this turn
Add a one-line JSDoc comment above greet in app.js saying: Greets the given name. Then stop.
Read~/ps-e2e-demo/app.jsDone
Edit~/ps-e2e-demo/app.jsWaiting
Allow Edit to edit app.js?
Done. One JSDoc line above greet, nothing else touched.
Stopped before editing. Nothing changed.
Commit 1
Send a command… @files, skills, plugins
+Ask
ps-e2e-demoAskmain
Tap Allow or Deny. The Mac window below answers too.
Today every agent is single-player.
Nobody else can see it.
The agent runs in one person's terminal. A teammate cannot watch the transcript, read the diff, or tell what it is about to do.
Nobody else can redirect it.
A long task waits on one person's yes. If they are in a meeting or on a train, the work waits with them.
Nobody can pick it up.
Close the lid and the session is gone. There is no handoff, no record, and nothing runs overnight.
ctrl+all makes the agent a shared colleague: visible to the team, steerable by whoever is there, and handed off with a role and a record.
Eight agents verified live on 8 October 2026. Three more are wired: Z.ai needs its key, Cursor and Gemini need a login
Claude Code
Codex
OpenCode
Grok
Hermes
Kimi
Copilot
Ollama
Z.aikey
Cursorlogin
Geminilogin
Watch. Redirect. Hand off.
Watch
Every transcript, tool call and diff streams to every paired device, live.
Workspaces put several running chats side by side on one screen.
Pair as many phones and laptops as you like. Every one streams the same session through the relay.
Every chat is an append-only log, so the record is there for whoever comes next.
Redirect
Steer a running turn or queue the next one, from the desk or from the train.
Questions and permission prompts arrive as cards on every device and are answered once.
Plan, ask, auto-edit or full auto, decided on the Mac, never by the phone. A phone can lower its rank, never raise it.
Hand it an outcome: the goal loop plans, builds and tests each phase in its own worktree and merges on green.
Hand off
Invite a teammate with a role. They pair their own phone and pick up where you left.
Owner, operator or viewer. Each role sees and does exactly what it should.
One inbox for everything that waits on anyone: open questions, stopped goals.
The engine runs under launchd. Routines and goals keep going between people, and overnight.
Try the control room.
Two devices, one agent. Answer the permission on the phone and the Mac sees it, the way a teammate would. Then start a goal, run a routine, open the terminal.
ctrl+all
ps-e2e-demo HeraAnswer the card, here or on the phone
Add a one-line JSDoc comment above greet in app.js saying: Greets the given name. Then stop.
Thinking
Read/Users/you/ps-e2e-demo/app.jsDone
Edit/Users/you/ps-e2e-demo/app.jsWaiting
Allow Edit to edit /Users/you/ps-e2e-demo/app.js?
Done. One JSDoc line above greet, nothing else touched.
Stopped before editing. Nothing changed.
Commit & Push 1
Claude Code · Default · standard +Enter to send↑
ps-e2e-demoAskmain
New goalPick an engine, then Start
ps-e2e-demo
This runs in Full Auto. The agent works without asking you to approve each step. On Claude Code it runs inside an OS sandbox, so it cannot read ctrl+all's credentials or change your shell startup files.
Add CSV export to the reports page
What done looks like. The agent writes a PRD and a phase plan from this, then builds and tests each phase on its own branch. You read the result.
Add CSV export to the reports page
Claude Code · goal/add-csv-export · standard effort
Interview: PRD.md and PLAN.md written
Phase 1 of 3: building in its own worktree
Tests green, checkpoint committed
Phase 2 of 3: building
Tests green, checkpoint committed
Phase 3 of 3: building
Tests green, merged with --no-ff
RoutinesRun one now, or pause it
Run the same prompt on a schedule and keep the results. A routine opens a fresh chat each time.
Morning issue triage
Nightly dependency audit
Weekly changelog
TerminalA real shell per project. Here, a small one.
/Users/you/ps-e2e-demo
Set up once. Every agent gets it.
The things you used to configure per tool now live in one place and reach all eleven engines.
MCP, once
Add a server one time and it reaches every installed engine that supports it. No more per-tool config files.
Skills marketplace
Browse a curated set or import by git URL. One install, every engine can use it, with update and rollback.
Project memory
Durable notes per project, injected into every prompt whichever agent takes the turn.
Missions
A goal that outlives a turn. Link the chats that serve it and see what each one touched.
Workspaces
Several live chats side by side, each in its own environment. Close a card and the chat stays.
Rewind
Undo a turn and the files and the transcript go back to the checkpoint. Nothing is ever overwritten.
Team roles
Owner, operator, viewer. Invite a teammate, hand them a role, and they pair their own phone.
Local judge
A small model the app downloads once checks each goal turn did its phase. Nothing leaves the Mac.
Event log
Append-only per chat, the book of record. Reconnect from any point without losing a line.
0
Zero tokens metered.
You already pay Anthropic, OpenAI or whoever runs your agent. ctrl+all runs those same CLIs on your own Mac, so there is no second bill and no cloud copy of your code.
8engines verified live, from Claude Code and Codex to Copilot and a local Ollama model. Three more wired.
180+RPC methods, every one reachable from a paired phone
Up in three steps.
01
Install on your Mac.
One app. It finds the agent CLIs you already have and runs them exactly as your terminal would.
02
Pair your phone.
Scan the QR or type the ten-character code. Your phone makes its own keys and keeps them.
03
Steer from anywhere.
Answer the agent's question, approve a permission, read the diff, merge the branch. From the train.
Questions, answered.
Is this just remote access to my Mac?
No. Remote access shows one person a screen. ctrl+all runs the agents itself and makes the session shared: it writes the plan, opens the worktree, runs the tests, holds a permission until someone with the right role answers, and keeps going after you close the lid. Your phone, your laptop and your teammates are all windows into the same engine.
How does a team use it?
One Mac runs the engine. The owner invites teammates with a role, owner, operator or viewer, and each pairs their own phone or laptop. Everyone sees the same chats, goals and inbox, fenced to what their role allows.
Do I need an account or a cloud workspace?
No. The engine runs on your Mac. Off your network, a relay forwards sealed frames between your phone and your Mac. With Tailscale Funnel or a quick tunnel there is no cloud account at all.
Which agents does it run?
Verified live end to end on 8 October 2026: Claude Code, Codex, OpenCode, Grok, Hermes, Kimi, GitHub Copilot and a local Ollama model, each as it would run in your terminal, on the subscription you already have. Z.ai runs through the same path once its key is saved. Cursor and Gemini adapters are written against their CLIs and wait only on a login.
Does it cost per token?
No. ctrl+all meters nothing. You pay the vendors you already pay, and nothing else.
Can my phone do something my Mac would refuse?
No. Permission modes are enforced on the Mac. A phone can lower its own rank for a session and can never raise it. Teammates get a role: owner, operator or viewer.
Is there a phone app?
A web client works on any phone today and installs to the Home Screen. A native iOS app is next.
What does the relay see?
Opaque bytes. Frames are sealed with X25519, Ed25519 and ChaCha20-Poly1305 before they leave a device.
Get in early.
We are letting people in a few at a time. Leave your email and we will send one message when your invite is ready.
You're on the list.We send one email when your invite is ready. Nothing else.