MA-4829pixel-match

Turn your team’s agent setup into a workspace everyone can use.

Engineers prepare the environment on a Mac you control. Teammates bring work through Slack. Every request stays a real agent session you can open from the Mac, the browser or your phone.

Free. Apple Silicon, macOS 26. Teammates need nothing but Slack.

Free. The iPhone app works with the Mac your team runs Push on.

The Lock Screen of an iPhone running Push. A Live Activity reports your Mac’s agents: 1 needs you, 1 done. Below it, a notification asks you to approve the Bash command npx next build && npx next start -p 3111 for MA-4829.

Below: an interactive reconstruction of the Push window. Browse the work board and Sessions, open work in Terminal, reveal the Dock, and relaunch without losing a session.

Issues

12 issues completed today

Active

448
MA-4837
push-websiteCodex

Extend the current website hero with a pixel-matched reconstruction of the Push macOS issue board inside the existing app mockup. Reproduce the native board hierarchy, toolbar, issue cards, status and agent treatments.

MA-4835
MA-4834
MA-4830
MA-4829
push-websiteCodex

Use the production Push macOS app as the visual reference, capture its key UI states, and refine the interactive landing-page hero.

MA-4828

Review the linked video and capture the useful product lessons.

Completed

1,746
MA-4836
push-websiteCodex

Extend the website hero with a markup-based, pixel-matched macOS Dock that preserves every terminal through quit and relaunch. Use crisp native-style icons and one continuous synthetic-cursor rehearsal.

MA-4833
push-macosClaude

Debug how grid mode affects the iOS terminal stream when several windows shrink and reflow.

MA-4832
push-websiteCodex

Extend the production-matched hero with runtime-logo controls and the app's grid-mode interaction.

MA-4831
push-websiteClaude
MA-4823
push-macosClaude

Prevent one command-click from opening the same inspector target twice in fullscreen Claude sessions.

Archived

284
MA-4804
push-macos

Detect meeting activity without a permission prompt, then offer capture only when it is useful.

MA-4780
push-macos

A deliberately deferred local pass that could propose clearer capture metadata before a session begins.

MA-4761
push-macos

Trim the vocabulary bank back to terms that materially improve speech transcription.

MA-4752
push-macos

Explore tab, tile, and standalone-window modes without losing the folder and session model.

Live HTML reconstruction of Push — browse the work board and Sessions, open work in Terminal, reveal the Dock, and relaunch without losing a tab.

One request, start to finish

A request in Slack becomes a session on your Mac, and comes back answered.

Nothing here is a mock of a feature we plan to build. Each step is what the product does today, with one invented team so no customer’s work is on this page.

A six-step illustration. A designer asks for a change in a Slack channel. It becomes tracked work in Push, in the team’s folder, with the agent the engineer chose. A real Claude Code session opens on the team’s Mac. The agent asks the designer a question, which reaches her in the thread and on her phone. She answers. The result returns to the thread with a pull request, and the board marks the work done.

  1. 1Ask

    Mina asks in Slack and mentions the workspace agent. A 👀 says Push has it.

  2. 2Tracked

    It lands on the team's board as FM-128, from Slack, in the fathom-web folder, with the agent Theo chose for that folder.

  3. 3Working

    A real Claude Code session opens in a real terminal on the team's Mac. Anyone with the right role can open it.

  4. 4Needs a person

    The agent has a question. The tab turns to needs you. The question reaches Mina in the thread and on her phone, not the engineer.

  5. 5Answered

    Mina answers in the thread. The session continues.

  6. 6Result

    The answer returns to the thread with the pull request. The board shows done. Theo can still open the session and read every line.

Who does what

Engineers set it up once. Everyone else just asks.

Push separates the person who prepares the environment from the people who use it, without making anyone else learn the terminal.

the operator

One engineer prepares the environment.

  • Keeps one Mac running Push: on a desk, or a Mac mini in the team's cloud account.
  • Signs in once. That account owns the workspace.
  • Prepares folders, the agents the team already pays for, project instructions, hooks and skills.
  • Connects Slack. Push creates the Slack app; the operator approves the install and pastes the two tokens Slack issues.
  • Decides who may do what, per person, per folder: file work, run work, view terminal, control terminal.
  • Opens any session from the Mac, the browser or the iPhone, and reads the audit of who did what.
$ push slack setup $ push workspace setup check $ push audit export
the teammate

Everyone else brings work the way they already do.

  • Asks in Slack. Nothing to install, no account needed to ask.
  • Gets the answer in the thread, with any files the agent produced.
  • Answers the agent's questions in the thread or on the phone.
  • Follows up in the same thread; the same session continues.
  • Opens the work board in the browser when they want to see more. Viewers and commenters are let in without an approval step.
  • Keeps using the tools they already use. The agent's answer is the only message; no receipts, no footers.

Permissions are lent, never assumed. What someone may do is decided for every message from the roles the owner gave.

Where it runs, what you own

Your Mac runs it. Your team reaches it. We carry the encrypted requests.

Push is not a hosted service. The server, the terminals, the agents, the files and your agents’ accounts live on a Mac you own. Our relay moves encrypted requests between your team’s devices and that Mac. It runs no agents and holds no terminal state.

Where it runs, in full
what stays on your Mac

Sessions, transcripts, files, configuration, your agents’ credentials. Push never uploads a transcript.

what your account stores

Your identity and a random fingerprint so your devices and teammates can find your Mac. No issues, sessions or transcripts.

what leaves

Your agents talk to your model providers directly, on your keys, with no proxy or markup. Slack carries the messages you send the bot and the answers it posts.

Mac-only today, on Apple Silicon and macOS 26. Windows and Linux are not available.

Underneath: the terminal

Every request is a real agent session in a real terminal.

Push started as the terminal that remembers your agent sessions. It still is. Quit it, relaunch it, every session is where you left it; your tabs group themselves by folder; every running session fits on one screen. The team workspace sits on top of that, not instead of it.

folders

Every request lands in a folder. Every folder is a real tab.

A folder is where one kind of the team's work happens: a repository, an agent, a set of rules. Requests from Slack land in one; the operator opens it like any other tab. The chips come from the Mac's own directories, and each folder remembers the tab you left active. The cursor is clicking real controls; click anywhere to take over.

grid mode

Every running session on one screen.

The whole team's work, live, in one grid. Flip the display mode, pick a session, and land in the tab where it runs. These panes replay real production sessions, sanitized; nothing here is a drawing.

Built like a browser

Held to browser standard, then further.

Browsers never lose your tabs. Terminals always did. Push fixes that, then goes further, because these tabs run agents for a team.

the browser doesPush doesregister
Close it, reopen — the tabs come back.Quit, reopen — the sessions resume. The conversation, not just the window.like a browser, deeper
A tab shows a favicon and a title.A tab shows its agent, its request, its status, and the context it has left.tabs that report
Tab groups you curate by hand.Folder chips from the working directory — grouping you never configure.automatic
A tab can’t need you.A tab can need you — and it finds the person who can answer, in Slack and on the phone.needs you

Claude Code

storage
~/.claude/projects/<cwd>/<id>.jsonl
resume
claude --resume <id>
handled
Auto-resume on relaunch · session-id markers · /clear flips · tab title from haiku

Codex

storage
Codex-internal store
resume
codex -C <cwd> resume <thread>
handled
Per-turn hooks · per-cwd thread filter · clean tab title via overlay

OpenCode

storage
OpenCode-internal store
resume
opencode <cwd>
handled
Plugin push-monitor.js · upstream prefix suppressed · title from info.title event

Hermes

storage
~/.hermes/state.db
resume
hermes --resume <id>
handled
SQLite read-only · hook surface mapped · title from sessions.title row

Claude Code, Codex, OpenCode and Hermes are supported today, each with its own store, its own resume, its own bill. Push ships no model and no agent of its own.

Work, tracked

Todos, sessions, questions, results. Keep Linear.

Every request your team makes becomes a session on one board. The columns follow what actually happened: nobody drags cards, nobody invents a status. Your tracker stays your tracker.

FM-128Billing empty state explains the trialFM-128Billing empty state explains the trialFM-128Billing empty state explains the trial
  1. Todo

    Created from Slack, the phone, the browser or a tab. Creating starts nothing.

  2. Run

    Someone with the right role presses Run. A real terminal opens on your Mac; if it can’t, Push says so instead of running in the dark.

  3. working

    The agent works. Comment on the session and it gets the comment mid-run.

  4. needs you

    A permission or a question. Answer from the Mac, the iPhone or Slack. Not answering waits; it never denies.

  5. done

    The agent completes, or a person does. A follow-up that changes the deliverable reopens it.

Linear

Keep it. Link a ticket to a session; the agent reads it fresh, writes updates and state back, and a comment on the ticket reaches the session working it. Push is not a sync or a mirror of Linear, by design.

GitHub

Your agents use their own tools. Push shows the files changed since the session began and the pull request the agent declared.

Your own systems

Slack, iMessage, Linear and a custom connection with revocable tokens can bring work in. The one thing Push never does is start work on its own: a request starts work only under an identity the owner approved.

Set up

An afternoon for the operator. Nothing for the team.

Five steps, each marked with who does it. The guide underneath has every detail, including what to do when Slack asks an admin to approve the install.

Read the team setup guide
  1. 1you

    Install. Download Push on the Mac that will stay on.

  2. 2you

    Sign in. Your account becomes the owner. Push admits your own devices automatically.

  3. 3Push, then you

    Connect Slack. push slack setup creates the app and uploads the logo. In Slack, approve the install and copy two tokens.

  4. 4you

    Choose who may do what. Map or link each teammate’s Slack account; set permissions per folder. Keep the whole setup as one file in your repo if you like: push workspace setup check, then apply.

  5. 5your team

    Invite the bot to a channel and ask. The first request is whatever your team was about to ask you.

$ push slack setup

The first teams are onboarded by hand, with us. Setup is honest work, not a wizard.

What it isn’t

Made for one job. Honest about the rest.

Not a hosted service.

Push runs on a Mac you own. Windows and Linux are not available today. If your team cannot keep a Mac running, this is not for you yet.

Not a replacement for your tracker.

Keep Linear. Push tracks what its agents are doing; a comment on a linked ticket reaches the agent working on it. Push never imports or mirrors your tracker.

Not for one person with one shell.

Two open tabs, any terminal is fine. Push earns its place when many sessions, many people and one machine have to stay in step.

Pricing

Free for the whole team. Nothing to unlock.

The Mac app, the iPhone app, Slack and the browser are free, with no tier above them and no seat meter. The only bills are the ones you already pay your agents.

Everything included

Push

One Mac, everyone’s agents, every surface. Nothing to configure.

Free

  • Unlimited sessions, folders, teammates and agents
  • Slack, the browser and the iPhone app
  • Work tracking, questions and approvals, on every surface
  • The push CLI and the /p skill
  • No monthly recording limit

No subscription, no seat meter. Optional AI-provider charges go to your provider, never through Push.

Download for Mac

Signed and notarized. Updates itself.

What you bring

Your agents, your keys

Push ships no model and no agent of its own.

$0to Push

  • Claude Code, Codex, OpenCode and Hermes on the plans you already have
  • A Mac that stays on
  • An optional OpenRouter key for iPhone transcription, billed by the provider

Push adds no fee, takes no cut and never sits between you and your provider.

Read the pricing page

There is no trial, because there is nothing to unlock.

FAQ

Questions, answered.

Who is Push for?

A small technical team with one person willing to keep a Mac running and set the environment up, and everyone else asking in Slack. Our first team customers are technical founders who set it up, and the designers and product people on their teams who use it without ever opening a terminal.

What does a teammate actually do with it?

Ask in Slack. The agent works in a session on the team's Mac and answers in the thread, with files when it made some. If it has a question, it asks you there or on your phone. You install nothing. A designer on one team has run her design work this way for weeks.

Where does it run, and what do I control?

On a Mac you own: on a desk, or a Mac mini in your cloud account. Server, terminals, agents, files and your agents' accounts stay there. Our relay carries encrypted requests between your team's devices and that Mac; it runs no agents and holds no terminal state. Your prompts still go to your model provider.

Does it run on Linux or a server?

Not today. Push is Mac-only, on Apple Silicon and macOS 26. If your team cannot keep a Mac running, Push is not for you yet.

How does setup actually go?

One afternoon for one person: install, sign in, connect Slack, decide who may do what, invite the bot. Push creates the Slack app for you; you approve the install in Slack and paste the two tokens it issues. The first teams are onboarded by hand, with us. The team setup guide has every step.

So it's Linear for agents? Can we keep Linear?

No, and yes. The tracker got smaller because its user changed: Push's board has three columns that follow what happened, because an agent doesn't negotiate priority or sit in triage. Keep your tracker. Link a Linear ticket to a session and the agent reads it, writes updates and state back, and a comment on the ticket reaches the session working it. Push never imports or mirrors Linear, and a Linear ticket never starts work by itself.

What happens when the agent needs a human?

It stops and asks. The tab turns to needs you, the question goes to the person who can answer it, in the thread and on their phone, and the session continues when they reply. The operator can open the tab at any time.

Which agents are supported?

Claude Code, Codex, OpenCode and Hermes, each on the plan you already have. Push ships no model and no agent of its own.

Is the content of my sessions sent anywhere?

Transcripts stay on the Mac, in each agent's own store; Push never uploads them. Signing in stores your identity and a random fingerprint so your devices and teammates can find your Mac. The relay carries encrypted requests. Slack carries what you send the bot and what it posts back. Your agents send your model provider what they always did.

How is this different from a Slack bot we could write ourselves?

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.

How is this different from Claude Tag or vendor Slack bots?

Those run your work in the vendor's cloud. Push runs the Claude Code or Codex you already pay for, on a machine you control, with your whole environment present: your files, your tools, your MCPs. Inference still goes to the provider.

What if the Mac is asleep?

Requests wait and are delivered when it reconnects; in Slack the bot says it is not connected. Keep the Mac awake with Always On, and keep Push open. Push does not run as a daemon.

Is there a CLI?

Yes, push, bundled with the app, with the /p skill for the agents. push status, push track, push slack setup, push workspace setup check, push audit export. Same verbs for you and your agents; push --help for the rest.

Why a terminal underneath?

Because it shows everything. A chat UI guesses what you want to see and hides the rest. Teammates never need the terminal; Slack is their window. The operator keeps the terminal to see exactly what an agent did.

Is it open source?

Closed-source, signed, notarized binary today. Documentation of the architecture and the integration playbooks is being opened up. No commitment yet on the source itself.

What does it cost?

Nothing. Every current feature is free for every person on your workspace, with no seat meter. Your agents bill you directly. Full pricing.

Push is made by MasslessAI. One team, one product, shipping most days, every release documented, every tradeoff in public, and the inbox is open.

1

Open it tomorrow. Your team’s work is still there.

Free. Signed and notarized. One Mac, everyone’s agents.

macOS 26 · Apple Silicon · Push v1.10.328