Terminal
Every request is a real tab. Open it, read it, type into it. Every running session fits on one screen.
Where it runs, what you own
Push is not a hosted service. The server, the terminals, the agents, the files and your agents’ accounts live on a Mac you own: on a desk, or a Mac mini rented in your own cloud account. Our relay moves encrypted requests between your team’s devices and that Mac. It runs no agents and holds no terminal state.
This is the longer read: what runs where, what you control, what depends on services we operate, and what is available today.
Push is a small system with three parts: the clients your team uses, a relay that carries requests, and the Mac that runs the agents. Each part is shaped by what it is allowed to hold.
server sessions, the work board, permissions, the audit log
terminal one real tab for every request
agents Claude Code, Codex, OpenCode and Hermes, on your accounts
files your folders, transcripts, configuration and credentials
Slack carries what you send the bot and what it posts back. The iPhone, the browser and a Mac used as a client reach your Mac through the relay, encrypted. Your Mac runs the agents and stores the work. No part of a session lives anywhere else.
Push runs on one Mac the team keeps on. That Mac runs a small server that keeps the sessions, the work board, the permissions and the audit log; opens a real terminal for every request; and runs your agents in your folders, signed in to your accounts. Teams have put that Mac on a desk and in a rented Mac mini in their own cloud account. Either way it is theirs.
Nothing of this runs anywhere else. There is no Push cloud that executes agents, no copy of your sessions on our side, and no path by which a transcript leaves the Mac. Transcripts stay where your agent put them; Push never uploads one.
Each agent keeps its own store, its own resume and its own bill. Push ships no model and no agent of its own; your agents call your providers directly, on your credentials, with no proxy, no markup and no metering.
Every request is a real tab. Open it, read it, type into it. Every running session fits on one screen.
Todo, running, done. The columns follow what happened; nobody drags cards or invents a status.
Where an agent asks for a permission or an answer. The question goes to the person who can answer it, in Slack and on the phone.
Whatever agents produce, plus anything you open from a terminal pane, and the files changed since a session began.
Claude Code, Codex, OpenCode and Hermes, each with its own store, its own resume and its own bill.
One named owner. Roles accepted under each person's own account. Per folder: file work, run work, view terminal, control terminal.
Who acted, through which door, what was refused. Every action on a team host is recorded, and push audit export writes it out.
Local use needs no account. Sign in only when a phone, a browser or a teammate has to find this Mac.
One named owner per workspace. Roles are accepted under each person’s own account, and permissions are set per folder: file work, run work, view terminal, control terminal. A Slack teammate acts as the member the owner mapped them to, or links their own account. Every action re-checks the sender’s current authority, so revoking a role takes effect immediately.
Your team’s whole Push setup can live as one file in your repo. push workspace setup check names every change before push workspace setup apply makes it. Slack’s tokens are the one step the file cannot carry; those are pasted on the host.
Backups are yours too: an encrypted, portable export of the workspace that you keep wherever you keep backups. There is no managed cloud backup, by design, because there is no cloud copy to back up.
Our relay carries requests between your team’s devices and your Mac. When you sign in on the Mac, your account records a random fingerprint so that your phone, your browser and your teammates can find that Mac across networks. The relay then moves requests to it and answers back.
That’s it. The relay stores no sessions, no transcripts and no files. It runs no agents and holds no terminal state. It also delivers push notifications, so your phone knows when an agent is asking for you.
Your account stores your identity and that fingerprint: no issues, no sessions, no transcripts. Sign-in is Apple, Google or GitHub. Slack is an identity link, so the bot knows which Push member a Slack message belongs to; it is not a way to sign in.
The relay matters because without it your phone, your browser and your teammates cannot reliably find your Mac across networks. With it they can, and none of the work moves off the Mac to make that possible.
Every client reaches the same Mac and the same sessions. What a person may do is decided by the role the owner gave them, not by the device they picked up.
Mention the bot or write in a channel it listens to. The answer comes back in the thread, with files the agent selects. Teammates need no Push account and no install; the owner maps their Slack account onto a member, or they link their own.
A TestFlight beta for iOS 26 and later. Capture by voice anywhere, watch live terminals, answer approvals, and approve a browser that asks for more than viewing.
Open the private link your operator sent and sign in once. Viewers and commenters need no approval; anything more is approved once from the owner's trusted iPhone or Mac. Watch a terminal, or take control with an explicit confirmation.
The operator's seat. Every session is a tab and every running session fits on one screen. push status and push track give you and your agents the same verbs; the /p skill gives the agents the rest.
Teammates who only ask in Slack need no Push account. Opening the board, a terminal or the iPhone app needs one; sign-in is Apple, Google or GitHub, and the first teams are onboarded by hand, with us.
One account, several Macs: your phone and browser list every workspace you can reach and show up to four together. Each Mac is its own host. Push does not sync between hosts and does not move a running session between them.
Keep every client current. The encrypted channel, browser approval from the phone and the newest workspace behavior all follow the version of Push on the Mac and on the device in your hand.
The relay. Any client that is not the Mac itself reaches the Mac through it: the phone, the browser, a second Mac, and the notifications that tell your phone an agent is waiting. It carries encrypted requests and nothing else.
Sign-in and discovery. Your account, the fingerprint that lets your devices and teammates find your Mac, the named workspaces you can reach, and the invitations the owner sends. Admitting a new device to a workspace trusts this service, which is why the owner approves it from a device that is already trusted.
The update feed. The Mac app checks it on launch and while running. Every update is verified by Apple code signing and by our own signature before it installs. This is the one service that purely local use still touches.
Public share links. When someone chooses to publish a file from a session, the shared copy is served from a service we run. Nothing is shared publicly unless a person publishes it.
Your agents talk to your model providers directly, on your keys. Slack carries what you send the bot and what it posts back. We never sit between you and either of them.
An illustration, with the team’s Mac online and Slack connected. Timing depends on your setup.
A designer writes in the team's channel: the pricing page still shows the old hero on the second screen. She mentions the bot.
The request travels, encrypted, to the team's Mac. The relay forwards it and keeps nothing.
Push checks who sent it and what that person may do in this folder. Under the owner’s permissions the request becomes a session: a real terminal tab opens on the Mac, and Claude Code starts in push-website.
The agent reads the request and works. The engineer at his desk sees the tab appear in the grid like any other, and does not have to open it.
The agent wants to delete a file. The tab turns to needs you. The question goes to the Slack thread and to the phone of the person who can answer it.
The engineer glances at his iPhone and taps Approve.
The session continues. Had nobody answered, it would have waited; Push never denies on someone's behalf.
The answer lands in the thread with the screenshot the agent made. On the board the session reads done. The engineer can still open the tab and read every line.
Your Mac runs the agent while Slack and the phone let people follow the work and answer when needed. Keep the Mac awake with Always On and keep Push open: Push does not run as a daemon, and requests for a Mac that is asleep wait until it reconnects.
The designer installed nothing. The engineer could have opened the tab at any moment, and did not have to.
A technical person can wire Slack to Claude Code in an evening; one of our customers did. The hard part is everything after: who asked, which session, what came back, who may do what, and what happens when the Mac restarts. That is what Push is.
Push does not ship a model and does not meter agent hours. It runs the Claude Code or Codex you already pay for, on a machine you control, with the whole environment present: your files, your tools, your MCPs. Inference still goes to the provider. Slack and Apple still carry your messages.
Resuming a session is not ours alone, and neither is reaching an agent from a phone. What the runtimes do not have on their own is the combination: many sessions, many people, many runtimes, one record, on one Mac you own.
A vendor app cannot be neutral. It is not their job to make Codex easy when you are paying for Claude. Push’s job is to be neutral: the place where a request, a session and a result hold the same shape no matter which agent is running underneath.
The terminal is where the operator lives. Behind it: the Slack thread the team already has open, the phone in a pocket, the relay nobody thinks about, and one Mac that turns can you into it’s running into here’s what it did.
The terminal is the front. The Mac you own is the bet.
Choose the surfaces that fit your team, and keep every client current for the encrypted pairing and the newest workspace behavior.
The Mac app: terminals, the work board, questions and approvals, files, permissions and the audit log, on Apple Silicon and macOS 26. Free, signed and notarized.
A TestFlight beta for iOS 26 and later: capture by voice anywhere, watch live terminals, answer approvals, approve a browser. Free, with no subscription or monthly recording quota.
The work client at a private link from your operator. Sign in once and see the controls your role allows; watch terminals and take control with an explicit confirmation.
Mention the bot or write in a channel it listens to; the answer comes back in the thread, with files the agent selects. Teammates need no account and no install.
Same-account discovery. Current paired clients use an end-to-end encrypted channel; older clients fall back to a TLS connection at the relay.
One Mac the team keeps on, with Push open. Always On keeps it running with the lid closed; Push does not run as a daemon, so a closed app is an offline workspace.
Claude Code, Codex, OpenCode or Hermes on the plans you already have. Push ships no model and no agent of its own.
To ask in Slack, no account. To open the board, a terminal or the iPhone app, a Push account signed in with Apple, Google or GitHub.
No API key is required. Apple Intelligence is optional. If you choose OpenRouter processing, requests use your own provider credits.
Available as a public beta through TestFlight. There is no App Store listing yet.
Live on push.computer behind the link your operator sends. The first teams are onboarded by hand, with us.
Not available today. Push is Mac-only.
Free for every teammate. The only bills are the ones you already pay your agents.
One person sets it up in an afternoon; everyone else asks from Slack. The guide has every step, including what to do when Slack asks an admin to approve the install.
Push is a small house on a Mac you own. The terminal is the front door; Slack is the window your team looks through.