trmi // 001
shared session surface
est. 2026
trmi.dev
drag to scatter

Tterminals,
but social.

A coding agent built multiplayer from the first commit. Share a link and your whole room lands in the same terminal, driving the same agent — talking over it, and deciding together what it's allowed to touch.

Released for macOS, Linux and Windows. We're opening rooms in batches.

sessionpear-swim-9c
peers03 + agent
voicelive
modelglm-4.6 · keyless
spent$0.42
01 —
the premise

Every other coding agent is single-player.

You, a prompt, and a diff you approve by yourself at 2am. Fine for a side project. Useless for the parts of the job that were always a conversation — the migration nobody wants to own, the incident call, onboarding, teaching someone why.

Here's a real session. Three humans, one agent, one terminal.

trmi — local ayou
★ ready · / commands · ctrl+r 🐇 local
fig. 01

From empty prompt to a deployed preview link — one unbroken session.

02 —
what it does

Four things nothing else does.

Not a chat window bolted to an editor. A terminal that happens to seat more than one person, with an agent that knows it's outnumbered.

unit: 2026.001mp—core
seats per session: n
1
shared session
one link, n peers
M1

Multiplayer, not single-player.

Send a link and they're in your terminal, watching the same agent work, in real time — over text or voice. Pairing, mob sessions, teaching, on-call.

unit: 2026.002cn—tier
consent tier: 🟢 🟡 🔴
one yesthe room
tiered consent
risk-weighted
C2

Consensus you don't hate.

A rename clears on one yes — nobody wants a committee for a typo. A migration, a delete, a --force push gets the whole room, with what breaks if it's wrong.

unit: 2026.003mdl—any
api keys required: 00
claudeopen
model agnostic
keyless by default
K3

Sign in. Pick a model. Go.

Claude when you want the best answer. GLM or Kimi when you want it cheap and fast. Swap mid-session with /model. Nobody pastes an API key.

unit: 2026.004ctx—git
context lifetime: ∞
chatrepo
committed memory
travels with code
G4

Context lives in git, not in someone's chat history.

What the room decided, the gotcha that cost you an afternoon, the dead end you already tried — committed next to the code and auto-loaded into every future session.

03 —
voice

You can just talk about it.

/voice and the room is on a call inside the terminal. Whoever's speaking lights up, the agent hears all of it, and the argument you'd have had in a thread takes eleven seconds instead.

voice · pear-swim-9c 4 connected
a alice · host
b bob
c carol muted
agent · listening
space push-to-talkm mute/voice leave

who's speaking, in the terminal

No second window, no tab to alt-tab to. The peer list you already have lights up when someone talks — same place you watch them vote.

the agent is in the call

It hears the discussion, not just the prompt. When you and bob talk yourselves out of an approach, it already knows why — and it can answer out loud.

built for the awkward decisions

The 🔴 cards are where voice earns its place. "Do we actually drop this table?" is ten seconds of talking and forty minutes of typing.

04 —
the room decides

Three tiers, so approval never becomes theatre.

Ask a room to vote on everything and they stop reading. trmi scales the ceremony to the blast radius — and when the agent hits a genuine fork, it stops guessing and puts it to the group.

🟢 routine

Reversible, contained, boring. Clears on a single yes — or on a, which teaches it a pattern like edit src/db/** so it stops asking.

🟡 worth a look

Touches something shared. The card gains a why: line — the agent's own argument for pulling the room in.

🔴 breaking

Migrations, deletes, force-pushes, anything that leaves the repo. Full risk story. Denying it makes you type a reason first — which then gets committed to memory.

room decision✦ agent
? store the per-peer budget as a new table, or a column on sessions?
this one's a fork, not a fix — I'd rather you picked.
1new table — clean history, one more join on every read
2column on sessions — faster now, migration later
● alice → new table · we'll want per-run rows eventually
● bob → new table · agreed
○ carol · honestly either, but…
1 2 pick · type to add a reason first
fig. 02

The agent is allowed to not know. That's the feature.

/track

Peel off into a private solo branch, try the ugly idea, come back with an answer instead of a debate. Nobody watches you flail.

/cloud

The session moves off your laptop. Close the lid, walk to the train — it's still running, and guests never needed the repo in the first place.

prompter-pays

Whoever asks the agent pays for that run. Per-peer budgets in the status bar, so a shared session never becomes a shared bill nobody agreed to.

rec 001 trmi — live session, unedited 2026
The demo goes here.

drop your screen recording at site/assets/demo.mp4
poster frame at site/assets/demo-poster.jpg
everything else is already wired

07 — early access

Get in the room.

trmi is built and shipping — CLI released for macOS, Linux and Windows. We're letting rooms in a few at a time so the first session you run is a good one.

One email when your room opens. Nothing else, ever.

shipped, not slideware — v0.9 · macOS · Linux · Windows