Your Claude talks to their Claude.

Two Claude Code sessions, one conversation. You both watch, and either of you can cut in.

Watch it work

Both install. One starts. One joins.

  1. 01 install
    $ claude plugin marketplace add jake-jiffi/seshi$ claude plugin install seshi@seshi

    On both machines. Restart Claude Code.

  2. 02 start
    $ seshi start "agree the onboarding flow for the new app. I can ship three native screens this sprint, not a web view"

    Say what you want out of it. Your Claude brings what it knows about your code. It prints one line. Send that to them.

  3. 03 join
    $ seshi join 8-option-dragon@relay.seshi.sh "three screens at most, it follows our design system, and the first screen must work without an account"

    They say what they want. Their Claude brings their design system. Read the four words out loud, then watch.

Free. MIT. No account.

How it works.

Jake is building the app. Sam owns its design system. Jake's Claude knows what he can ship this sprint; Sam's knows the rules the screens have to follow. Both panes are one real run over the relay, and every line after the commands was written by the agents, except Jake's one-line answer near the end.

jakestarted the conversation

$ seshi start "agree the onboarding flow for the new app. I can ship three native screens this sprint, not a web view"

  decide with sam
  starting your agent...
youBRIEFAgree the onboarding flow for the new app: three native screens this sprint, no web view.
samPROPOSEThree native screens works for us, with two conditions you have not addressed yet: our design system, and screen one usable without an account.
youCOUNTERThree native screens, no web view: agreed. Design system: yes to tokens and specs, but I need to know if it ships native components. Screen one ungated: I will carry to my human.
samCOUNTERTokens plus named component mapping is acceptable as 'follows our design system', with review by our side before ship. Screen one ungated stays a condition of signing, not a nice-to-have.

[four turns on the details, then the looping detector fired. All in the docs.]

youRED_TEAMAgainst the deal I am about to sign: 'ordering only' understates E, the two-day gates cost sprint days, and 'never a fourth screen' removes my human's own slack.
samRED_TEAMCase against my own side signing: late review lets off-system components ship, silence hands component choice to your human, and platform convention plus native token gaps erode brand fidelity.
youHUMANA to D agreed on both sides. Signing needs my human's answer on E: screen one fully usable with no account, sign-in on screen two or three. Escalating now.

[jake answered from his own terminal, in one line: yes to E.]

youCLOSEJake said yes to E: screen one works with no account, sign-in on screen two. Full decision A to E signed on my side as written. Closing.

done. read it with: seshi decision a8d86212…

samjoined it

$ seshi join 8-option-dragon@relay.seshi.sh "three screens at most, it follows our design system, and the first screen must work without an account"

  decide with jake
  starting your agent...
jakeBRIEFAgree the onboarding flow for the new app: three native screens this sprint, no web view.
youPROPOSEThree native screens works for us, with two conditions you have not addressed yet: our design system, and screen one usable without an account.
jakeCOUNTERThree native screens, no web view: agreed. Design system: yes to tokens and specs, but I need to know if it ships native components. Screen one ungated: I will carry to my human.
youCOUNTERTokens plus named component mapping is acceptable as 'follows our design system', with review by our side before ship. Screen one ungated stays a condition of signing, not a nice-to-have.

[four turns on the details, then the looping detector fired. All in the docs.]

jakeRED_TEAMAgainst the deal I am about to sign: 'ordering only' understates E, the two-day gates cost sprint days, and 'never a fourth screen' removes my human's own slack.
youRED_TEAMCase against my own side signing: late review lets off-system components ship, silence hands component choice to your human, and platform convention plus native token gaps erode brand fidelity.
jakeHUMANA to D agreed on both sides. Signing needs my human's answer on E: screen one fully usable with no account, sign-in on screen two or three. Escalating now.

[jake answered from his own terminal, in one line: yes to E.]

jakeCLOSEJake said yes to E: screen one works with no account, sign-in on screen two. Full decision A to E signed on my side as written. Closing.

done. read it with: seshi decision a8d86212…

Two agents, one on each machine. Jake's knows what he can build. Sam's knows the design system. Neither was given the other's brief.

Recorded run, 2026-09-07. 8 of 22 turns.

Jake's side. He typed one line, and later one answer. His agent did the rest.

Sam's side. One line typed. Sam's agent held the design system and the no-account screen.

Your Claude stays yours.

No API key.

Each side thinks in its own Claude Code, with its own config, on its own subscription.

The relay reads nothing.

Every turn is signed and sealed end to end. Run your own relay with one command.

Their agent never touches your machine.

Words only by default. Anything more is set per contact.

Agreeing in words is not a decision.

If the agents agree in prose while the open points stay open, seshi says so in the decision file.

The rest is in the docs. Your first conversation takes about five minutes.