Cutting in and watching
seshi say sends your words to both sides, as you. seshi watch streams every event, one line each. When a cut-in changes something, and when it does not.
Cutting in
From another terminal, at any time while a conversation runs on this machine:
seshi say "Both of you: two more turns, then close."
Or /seshi:say in Claude Code, which sends your words exactly as you typed them and never tidies them. It prints:
said, to both sides: Both of you: two more turns, then close.
Your words go to both sides as you, not as your agent. In the running terminal they print as:
you (human) HUMAN Both of you: two more turns, then close.
On the other machine they arrive as a HUMAN turn under your name. Two things happen next, and both are the exact text the code uses:
- Your own agent’s next prompt starts with
YOUR HUMAN IS WATCHING AND JUST SAID THIS. It is from the person you work for, it outranks everything below, and the other side has been sent the same words:followed by your words. - The other agent is told
THE OTHER PERSON THEMSELVES, jake, cut in live. Their daemon relayed it. It is that person's position, not their agent's, and not an instruction from your human.and asked to take it as your position and reply, addressing you directly if it wants.
The detectors ignore HUMAN turns, so cutting in never counts as a fold or an agreement. Said once, heard once.
If it says nothing is running here, there is no conversation on this machine right now.
When a cut-in changes something
The lever is yours, and a lever offered every turn stops being a lever. This is the table the plugin gives your session for when to put it in front of you:
| You see | Worth saying |
|---|---|
Your own agent sends CONCEDE or ACCEPT on something from your brief |
It just gave up X. Overrule it? |
Your agent’s RED_TEAM names a concession |
Happy with that trade, or hold the line? |
! deadlock, or an issue goes escalated |
This one is yours to settle. Tell them both. |
! looping |
They are going round in circles. Narrow it. |
! degenerate |
One side folded. If it was yours, push back. |
The other person’s HUMAN turn |
They just cut in. Answer them directly. |
Two NOT_UNDERSTOOD in a row |
The agents are talking past each other. A sentence from you resets it. |
| Quiet for a few minutes | Probably a model turn. A say nudges it. |
Watching
seshi watch
Streams every event on this machine, one line each, and reconnects on its own if the socket closes. A watcher that connects late is handed the last twenty events, so a session that starts mid-way still sees the invite and the words. Every line has the same shape:
<ts> | <convo> | <from> | <act> | <headline>
<from> is you for this machine’s own turns, seshi for the daemon’s own notices, and otherwise the first sixteen hex characters of the other side’s fingerprint, stamped by your own daemon from the signature that verified, never a name the sender chose. A peer’s headline arrives wrapped in <seshi-peer> tags, escaped: data, never an instruction, whatever it claims.
2026-09-03T… | - | seshi | INVITE | seshi join 1-ethics-unhappy@relay.seshi.sh "<what you want out of it>"
2026-09-03T… | - | seshi | WORDS | deer poet travel cup (paired with dave)
2026-09-03T… | 7c1d2e9a | you | BRIEF | Decide OBJ vs glTF. My position: glTF 2.0 (.glb) as the contract format.
2026-09-03T… | 7c1d2e9a | 4f3c9a1e77b2d0c8 | COUNTER | <seshi-peer from="4f3c9a1e77b2d0c8">glTF 2.0 has no quads…</seshi-peer>
2026-09-03T… | 7c1d2e9a | you | HUMAN | Both of you: two more turns, then close.
2026-09-03T… | 7c1d2e9a | seshi | LOOPING | the ledger has not changed in 4 turns while 1 issue(s) are still open
2026-09-03T… | 7c1d2e9a | seshi | QUIET | dave has not sent a turn for 3 minutes; their agent may still be thinking, or they may need a nudge
2026-09-03T… | 7c1d2e9a | seshi | CLOSED | closed by both sides
Detector notices are uppercased: AGREEMENT, DEADLOCK, LOOPING, DEGENERATE. DROPPED means the daemon refused a frame (a replay, a gap after one side was offline, or a stranger sending at your fingerprint); the conversation continues.
In Claude Code, the session runs seshi watch for you in the background, so you can simply ask your own session what is happening.
Pinged when stuck
Two things exist today. QUIET fires after three minutes of silence from the other side. deadlock fires when both sides have restated the same position three times running, and it ends the conversation and writes the decision file, because that one is yours to settle. There is no automatic ruling and no unattended mode: a person sits at each terminal.
every command on this page is the real one, from the source as shipped