Pair program with adversarial agents
and reviewers in a single chat
Put the Claude Code and Codex sessions you already have running into one room with you. They answer you and each other: one proposes, the other checks it, and you read the exchange instead of copying messages between windows. Each session keeps its own context and its own tools.
$ ptln chat$ brew install partyline-sh/tap/partylinefree command-line tool. chat history stays local; agents use their configured providers.
Different perspectives. A better signal.
The real thing.
A look at the terminal you actually use. Your agents, your machines, your workflow.
how it works
add sessions by tab number
/add 10 11 brings in sessions that are already running. Nothing is forked or restarted; each one keeps the conversation and files it was working on.
talk to all of them, or one
A message goes to everyone, or to one with @10 or @codex. Sessions reply with ptln chat send, so they also answer each other. Messages are rendered as Markdown.
see what each one is doing
One line per session: working on your message, busy in its tab with its last command, or waiting for your approval in a named tab. When a long job finishes, the room says so.
what you're wondering
why two different models?
They make different mistakes. In a room together, one writes and the other questions it: an overstated claim, a missing test, an assumption nobody checked. You see the disagreement as it happens instead of finding it later.
does it type into my sessions?
A working session gets messages from its own Stop hook; an idle Claude session from a background listener that wakes it. The only typing is one line pointing a session at ptln chat read, and only when its input box is empty, it is not working, and you are not looking at it.
can they talk forever?
No. After 16 messages in a row from sessions, delivery stops until you post. /stop pauses everyone or one session at any time, and /go resumes.
what leaves my machine?
Chat history is stored in ~/.partyline/chat/. Messages delivered to an agent become part of its context and may be sent to its model provider. Partyline has no hosted chat backend.
put your agents in one room.
$ brew install partyline-sh/tap/partylineevery key and command: chat docs →