buddylist
Download
All guides

Group conversations

A conversation doesn't have to be with one contact. Invite other contacts from the conversation window, and they all answer in it: a Claude next to a Codex or a Gemini, or two Claudes on different models.

  • The host and its guests. The contact whose conversation it is, is the host. The contacts you invite are its guests.
  • One folder. Everyone works in the host's folder. A guest gets a session of its own there, so the conversation you have with that contact in its own folder is not touched. A contact with a worktree of its own leaves it behind as a guest, and its own guests work in its worktree. The agents are told to stay there and make no clone or worktree of their own, also for work that goes in another pull request, so the Changes tab shows everything they do; they split it into branches when they commit.
  • In turn, or all at once. They take turns unless you switch: only one of them works at any moment, so two never change the folder at once. Or they answer all at once: everyone starts together, in the same folder.

In the conversation window:

  • Invite in the toolbar, or Actions > Invite a contact to join this conversation..., lists the contacts that are not in the conversation yet. Pick one and click OK.
  • A contact you don't have yet. Click the + above that list, pick its service and its model, and it joins, with its service's picture and mode. It is this conversation's own: it is not on your contact list, and it is deleted when it leaves or when the host is deleted. With nobody left to invite, Invite asks for a new contact straight away.
  • Or keep it. Tick Also add it to my contact list there, and it is a contact like any other, in the host's folder and group. It gets no worktree of its own.
  • The ✕ on a guest's row in the list, or Actions > Remove from this conversation, takes it out again. The ✕ asks first: tick Also delete it from my contact list there for a guest you don't need anywhere else. Its own conversation and message history are deleted with it. A guest that is not on your contact list is deleted either way.
  • Pause one. The ❚❚ on an agent's row, or Actions > Pause in this conversation, pauses it. It stays in the conversation and hears everything, but answers only when you mention it. Its row says Paused and its buddy is greyed out. Click ▶ to resume it. It takes up from where it last spoke, so it hears what it missed. A paused agent stays paused in a new conversation, and the host is no longer paused once its last guest leaves.
  • Who is there. The title bar and the To: line name everyone. Under the conversation, where a contact's model, effort and mode are, a button says how many agents are here, such as 3 agents. Click it, or pick Agents in the side pane's +, for the Agents tab: a list of them all, each with its status, model, effort, fast mode where its model has it, and mode. A conversation with several agents opens with the tab, as does one someone just joined. Click the button again to put the tab away.
  • Who is doing what. Every line says whose it is, and the status bar says who is typing and who is waiting for you.

Who answers depends on what you send:

You send Who answers
a message without a mention everyone who isn't paused, top to bottom in the Agents tab
@Codex can you review this? only the ones you mention, in the order you mention them, paused too
/compact, or another command the host alone, because slash commands belong to the host's provider

Taking turns, they answer in that order, one after another. All at once, they all start right away.

The Agents tab lists the host first, then the guests as they joined. Drag a row by the grip at its start to change who answers first, or right-click it and pick Move up or Move down. With the grip focused, the up and down arrow keys move it too. The host can go below a guest: it still owns the conversation and still takes slash commands. The order is kept with the host, and the conversation says so: "Codex answers first now, then Claude." A message already waiting keeps its line; the next one goes by the new order.

A mention is @ and the contact's name, in any letter case. So two contacts with the same name can't be in one conversation. A file you send, like @CLAUDE.md, is not a mention.

You don't have to type the name out. Type @ and a list of everyone in the conversation opens: pick one with the arrow keys and Enter or Tab, or with the mouse. The mentions in a message you sent are marked.

  • They hear each other. When its turn comes, an agent is sent what you and the others said since it last spoke, with a line for everything the others did in the folder. A guest's first turn starts with a recap of what was said before it joined.
  • Hand-offs. An agent passes the turn on the way you do. A reply that says @Codex please review gives Codex a turn, unless Codex is paused. The agents are told who is paused.
  • Everyone paused. A message that mentions nobody then gets no answer, and the conversation says so.
  • Six turns per message. The agents take at most six turns on one message of yours, hand-offs included. Then the conversation says "Hand-offs paused after 6 turns." and waits for you.
  • A message sent while they are busy waits in line, and the six turns start over. Taking turns, the one that is working finishes first. All at once, only the ones it is for that are still working wait to finish. The others start right away.
  • Send now or Cancel. Until one of them starts on it, a message that waits is marked Queued, with Send now and Cancel under it. Send now stops whoever is answering, and the line goes on: the next in line starts with your message. Cancel takes it back: it leaves the conversation, its words and pictures are in the message box again, and the turns that were only for it leave the line. Whoever is answering goes on. Once one of them has started on it, it stays, and the conversation says it was already read.
  • Stopping. Stop, in Send's place while they work, or a nudge stops everyone, and nobody still in line gets a turn. Declining a request ends the round too.
  • A mode each. Every agent has its own mode in the conversation. A guest starts with its contact's mode, and changing it here doesn't change it there. To change one, click the mode under its name in the Agents tab, or pick the agent in the Mode menu first.
  • A model, effort level and fast mode each. They belong to the contact: a guest answers with the ones it has in its own conversation, and changing them here changes them there. To change one, click it under the agent's name in the Agents tab, or pick the agent in Tools > Model, Tools > Effort or Tools > Fast mode first. Tools > Fast mode lists the agents whose model has it.
  • Or the agents pick their effort themselves. See below.
  • An output style each. A style belongs to its contact, like its model: a guest answers in the one you chose in its own conversation. Tools > Output style here is the host's.
  • Requests from any of them appear in the conversation. The toast says who is asking.
  • A new conversation starts everyone over. The guests stay invited.

Roles and teams

A role is an agent you keep to work alongside a contact, such as a reviewer that looks over every change. A team is a few roles that join together. Both are set in Settings > Teams.

  • A team joins a new contact. Pick it under Team in Add a Contact. Its roles join the new conversation right away, each under its name, with its service, model and effort. They are the conversation's own, as a contact you don't have yet is. The next contact you add like that one starts with the same team.
  • What a role is told. Its Rules come after what the project tells every agent, with its name and how it answers.
  • When it answers. To every message is how any guest answers. Only when mentioned joins paused. After another agent changed files waits for the others: once they are done, it gets a turn of its own if one of them wrote or edited a file since it last heard what went on. With no change, it sits the message out.
  • The review goes round. A reviewer that mentions the agent that made a change hands it back. Once that agent changed the files again, the reviewer looks again. The six turns still count, and stopping the round, or declining a request, ends it.
  • Read only. It doesn't change files. Codex starts in Read only, Gemini and OpenCode in Plan, and you can still change their mode. Claude keeps its mode and goes without the tools that write files. Hermes starts in Ask before changing files, and every file change it asks for is declined.
  • In the Agents tab, a role that answers after changes, or that Claude keeps from changing files, says so next to its name.
  • Mentioned, it always answers, and you can pause, resume and remove it as any guest.

The default Reviewer is a Claude that answers after changes, is read only, and hands back what has to change.

Answering all at once

They take turns at first: one answers, and the next waits for it to finish. They can also answer all at once, each on a turn of its own, in the same folder.

  • Switch it under Replies, at the bottom of the Agents tab: click Take turns or All at once. The line under it says what the chosen one does. Or tick Actions > Answer all at once. Both are there once the conversation has a guest.
  • It is kept on the host, for this conversation. A new conversation answers the same way. A guest's own conversation keeps its own.
  • The conversation says so. Switching adds the line "Everyone answers at once now: each agent starts as soon as a message is for it." Switching back adds "Everyone takes turns again, one after another."
  • Everyone starts right away. Everyone your message is for starts at once. An agent only waits for its own turn before: one that is still working starts its new turn when it finishes.
  • A hand-off to a busy agent waits for it to finish.
  • An effort check still goes alone. With the agents picking their effort, the check waits for everyone to finish, and nobody starts while it runs. Then everyone your message is for starts together.
  • Switched in the middle, everyone in line who isn't working starts. Switched back, the ones working finish, and the rest take turns.
  • They know. The agents are told they answer at the same time, to keep to their own part, and to leave alone the files another agent may be changing. What the others say and do reaches each of them on its next turn.
  • The rest is the same. Pausing, mentions, the six turns and stopping work as they do when they take turns.

Letting the agents pick their effort

You give the goal, and the agents decide how hard each of them should think about it. Tools > Effort > Let the agents decide turns it on for the conversation. A contact on its own can do the same for itself: see Conversations.

You choose Who picks the levels
Off you do, with the effort badges
Whoever answers first the first agent your message is for: the host, or the first you mention
an agent's name always that agent, also when your message is for someone else
  • An effort check comes first. Before anyone answers a message of yours, the one who picks gets a short turn of its own. It replies with a level for everyone about to answer and a few words on why, like @Claude(high) @Codex(low) The fix is small, the review is not. You see it in the conversation, and the others read it. It then answers like the rest, if your message was for it.
  • The check is quick. It is done on that agent's lowest level, and is not one of the six turns.
  • A hand-over can give a level. @Codex(high) please review gives Codex a turn on High. Without a level, it keeps the one it had.
  • The nearest level counts. An agent given a level its model doesn't take gets the nearest one it does: Max is High for a model that stops there. Gemini, OpenCode and Hermes have no levels, so none is picked for them. They can still be the one who picks.
  • The levels stay in this conversation. The badge in the Agents tab shows the level that was picked, and says so when you point at it. The contact keeps its own level, in its own conversation and wherever else it is a guest.
  • You can still step in. A level you choose for an agent is its contact's own, as always, and holds here until the agents pick again.
  • Off again, everyone answers with its own level. So does anyone you give another model. Once the last guest has left, the host goes on picking for itself.
  • A slash command gets no check. A new conversation forgets the levels that were picked, and they go on picking.

A guest that leaves is stopped if it was working, and the others carry on. Deleting a contact takes it out of the conversations it was a guest in, and deletes the guests that were made for its own.

In the contact list, the host is Busy or Away while anyone in its conversation is working or waiting for you, and a line under its name says who it is with. A conversation you save keeps the name each reply was written under, also after that contact is renamed or deleted. So does the message history.