AIDesktop AppMultiplayerShipped Product

Every AI Coding Agent Is Single-Player. We Built One a Team Can Share.

Sush is the two-person studio Suraj and I run from Chennai, and I design its apps. The main one is the Sush harness, a desktop coding agent with a multiplayer mode: a team on the same network can join one live agent session to watch, suggest or drive it, and hand the driver's seat to each other without anyone starting over. We started in 2024; the harness shipped in 2026 and went from v1.0 to v2.2 in sixteen days. Alongside it are Yammer, an on-device dictation app, and Plinth, a design canvas still in private development.

View live demo

The harness and Yammer are free downloads. The multiplayer page has a recorded two-person session.

RoleCo-founder & Product Designer
Year2026
ContextSush · Multiplayer AI Coding Harness · Co-founded Studio · 2026
Sush harness: a Cowork session with the agent's reply and a '2 files changed' card with per-file Undo, beside a file tree, the edited http.ts file and a terminal showing 129 passing tests
01: Problem

The Gap

Business gap

Suraj and I first tried this in 2024, with an AI chatbot called Luna. It did not turn out the way we wanted, and we shelved it. This year we decided to build it again, renamed it Sush, and started over from the design process instead of the code. The gap we kept running into was that every AI coding agent is single-player. One person, on one machine, talks to it. The moment someone else needs to pick the work up, the context is gone: you paste a summary into a chat, they open their own agent, and it starts fresh without any of the conversation, the tool calls or the reasons behind the last ten changes.

User gap

Picture a small team on the same network. I am mid-session with the agent and want to go and grab a coffee. Today I either stop the run or leave it unattended. With Sush I hand the driver's seat to Suraj, he keeps talking to the agent inside the same session, with all of its history, and I take it back when I return. The rest of the team can watch, suggest a message, or talk it through with each other and with the agent. That raises the host's questions at once: who can see my folder, who is typing right now, and can a teammate's message make the agent run something on my computer that I would not have allowed.

3Roles in a shared session
16Days from v1.0 to v2.2
122Installer downloads, harness and Yammer
02: Process

How I worked

Research

Restarting gave us something Luna never had: a shelved product to learn from. Before drawing any screens we went back to the basics, the logo and the user journey, mapping what someone does from opening the app to trusting it with a folder. The first real decision came out of that map. We could tie Sush to one model, which is simpler to design and to build, or support many. We chose many, so people can use whatever model they already pay for or run locally, and that one choice shaped the settings, the model picker on the composer and the keychain-only handling of keys.

Strategy

Two rules shaped the design. The first is that the session, not the person, owns the context, so handing over is a change of driver and never a fresh start. The second is that nothing the agent does should be invisible or permanent by default, which matters more once several people can steer it. In the interface that means each turn ends with a card listing the files it changed, with line counts and an Undo per file. The sandbox state is stated in plain words, including the Windows case where blocking the network needs admin rights, and the app says so rather than implying a protection it lacks. Requests that reach outside the sandbox ask first and say why.

Wireframes

The Cowork layout was settled early: chat on the left, file tree, editor and terminal on the right, so the agent's claim ('129 pass') and the evidence (the terminal saying 129 pass) sit side by side. Multiplayer follows the journey map closely, as a chain of handoffs: invite, knock, admit, assign a role, request control, hand control back. Each handoff is one component: a lobby row with Turn away and Let in, a three-role picker (Watches, Suggests, Drives), a banner that tells you when you are the driver, and a single Give back button.

Iterations

The family grew as we went. Alongside the harness we wanted speech to text, and the dictation app started life as Larp before we renamed it Yammer (the word still turns up in its own Insights screen). Suraj suggested the apps needed a character, and then the character itself: Sush plus an i is Sushi, so the mascot became a nigiri with legs. We kept Sushi as its name because it is what my friends called me in college. The delegation panel is where the trust thinking shows most. A single 'let this person approve actions' toggle would have been simpler, but file edits inside the folder and a command with network access carry very different risk. So it lists six kinds of approval separately. The two that act as the host on their own computer, network commands and connector tools, are set in red and start off. The panel also says out loud that anyone who can steer could ask the agent to repeat what memory holds, which is the kind of sentence a settings screen usually leaves out.

View full screen
Recorded live: one session, two machines, control passed and taken back
The Share live dialog: Live and Encrypted status, separate Link to watch and Link to suggest buttons, Shruti waiting to join with Turn away and Let in, and an End share button in red
View full screen
A link only reaches the lobby. Nobody sees anything until the host lets them in
03: Solution

What we built

Multiplayer is the centre of the harness. The host picks Share live from a session's menu and sends a link to watch or a link to suggest. Teams point everyone at a relay, which can run on one machine on the local network or anywhere else the team chooses, and every share is end-to-end encrypted with the key in the link, so the relay only sees ciphertext. Guests wait in a lobby until the host lets them in, then watch, suggest or drive. Only one person drives at a time, their messages join the run labelled with their name, and the host takes control back with one click. Comments sit beside the session and never reach the agent, and a viewer with no app installed can open the link in a browser. Underneath, the harness is a desktop chat app for Windows, macOS and Linux that becomes a coding agent when you grant it a folder. Commands run in the OS sandbox (Seatbelt, bubblewrap, or a restricted token on Windows), and files are checkpointed before every edit, so a turn or a single file can be undone in one click.

Shruti's view of Suraj's session: her message labelled with her name, the agent's test run, a 'You're driving' banner with Give back to Suraj, and Suraj's file open on the right
View full screen
The handover: Shruti drives Suraj's session with all of its history, and Give back returns it in one click
AI integration

The agent works with whichever model the user brings: Anthropic, OpenAI, Bedrock, Azure, OpenRouter, Groq, or a local model through Ollama or LM Studio. Keys go to the OS keychain and never reach the app's web view. The same principle carries into the other two apps. Yammer types what you say into whatever field has the cursor, transcribing with Whisper on the device, and its optional cleanup pass sends only text, never audio, and falls back to the raw transcript if the model times out. In Plinth, Sushi's edits arrive as a preview on the canvas with Discard and Apply, and one undo reverts the whole turn.

Design system

One shell across three apps: a left rail for navigation and sessions, a quiet near-white working surface, and a muted teal for the primary action. Red is used only for the two things that are hard to take back, ending a share and the risky approvals. Each app gets its own accent so they read as siblings rather than copies: Yammer is warm terracotta, with an Insights page built on a 26-week activity heatmap and a pixel display numeral. Sushi is a 16 by 11 pixel sprite drawn in code from eight colours, with no image files, so the same character renders sharp on the composer, the Yammer dictation pill and the website. It has seven moods, and with reduced motion on it stands still while everything else keeps working.

Sush harness: a Cowork session with the agent's reply and a '2 files changed' card with per-file Undo, beside a file tree, the edited http.ts file and a terminal showing 129 passing tests
View full screen
The claim and the evidence on one screen: the reply says the tests pass, the terminal beside it shows them passing
The delegation panel: 'Shruti may approve' with toggles for file changes, sandboxed commands, opening sites and undoing changes, and two red items, network commands and connector tools, switched off
View full screen
Six kinds of approval, handed over one at a time. The two that act as you are red and start off
A turn's changed-files card expanded into a diff of http.ts, with Undo per file and Undo all
View full screen
Every turn ends in a diff, and every file in it can be put back on its own
04: Impact

What changed

Results

The harness and Yammer are open source on GitHub. The harness shipped v1.0 on 10 October 2026 and v2.2 sixteen days later, and v2.3 followed on 2 November. As of 3 November, GitHub counts 38 installer downloads of the harness across six releases and 84 of Yammer across seven, the first of which still ships under the name Larp. We have applied to Y Combinator with Sush. My component library is listed on the Sush apps page as the studio's fourth product. Plinth, which opens Figma, Sketch and Penpot files and keeps a relayout of 5,000 auto-layout layers under 8 ms per edit in its release test, lives in a private repository until it is ready.

Yammer Insights: 3,981 words said out loud, 139 words per minute, an eight-day streak, a 26-week activity heatmap and an AI cleanup ring
View full screen
Yammer, the dictation app: a sibling with its own accent, and every number computed on the device
Plinth: a pricing page on the canvas with Sushi's edit previewed under a Discard and Apply bar, and the Ask Sushi panel explaining what it changed
View full screen
Plinth, in progress: the assistant's edit is a preview until you press Apply

Learnings

Making an agent multiplayer is mostly a trust problem, and trust comes from small, boring surfaces: a lobby, a banner that says who is driving, a changed-files card, a Give back button in the same place every time. The impressive part of the product is the model, and it is the part I designed least. The second lesson came from Luna. Shelving a product is not wasted work if the restart begins with the journey instead of the code.

Next steps

Plinth is the next release: an AI design platform where people can lay out mockups and wireframes, with Sushi or the harness editing alongside them. On the harness, the download page still links only the Windows installer, so macOS and Linux need the same one-click path.

All screens
Use arrows to navigate · Click to expand01 / 08
Shruti's view of Suraj's session: her message labelled with her name, the agent's test run, a 'You're driving' banner with Give back to Suraj, and Suraj's file open on the right
View full screen ↗
The handover: Shruti drives Suraj's session with all of its history, and Give back returns it in one click
Hover to pause auto-advance