buddylist
Download
NewGroup chats where the agents pick their own effort

Chat with your coding agents like it's 2005.

Ask Claude Code to build, Codex to review, and Gemini to test. Work with them, OpenCode and Hermes in one group chat, in the same project.

The 30-second tour

Your coding agents, together

Bring Claude Code, Codex, Gemini, OpenCode and Hermes into one buddy list. Give each a job in the same group chat.

Watch the 30-second tour, or try the live demo yourself.

What it is

Real coding agents, in a buddy list

It is not a chatbot skin. Every contact is a real agent that can read your project, run commands and edit files. You see all of it as a classic messenger.

Five agents, one list

Pick Claude Code, Codex, Gemini, OpenCode or Hermes when you add a contact. Claude Code is built in. The others run the CLI on your computer, with the same login, settings and MCP servers.

  • Claude CodeBuilt in
  • CodexYour codex CLI
  • GeminiYour gemini CLI
  • OpenCodeYour opencode CLI
  • HermesYour hermes CLI

The contact list

A contact for every project

Add a project folder and it shows up as a buddy. Double-click it to open a conversation there. Whoever is waiting for you comes first.

Status at a glance

Online is ready, Busy is at work, and Away is waiting for you to approve something.

Pull requests in sight

Tags show how each pull request stands. Click its checks to see them, or Conflict to ask for a fix.

A branch for every agent

Each contact works in its own worktree and branch, so two agents never change each other's files.

A conversation

Invitations, not prompts

When an agent wants to run a command or edit a file, you get an invitation: Accept, Always allow or Decline. Each tool call is a line in the conversation, with its output one click away.

Nudge to interrupt

A nudge shakes the window and stops the agent. When an agent needs you, it nudges you back.

What it is doing, right now

A line under the newest one says what the agent is up to, and for how long.

Rewind, or fork

Take Claude back to a message you sent, or fork a new chat from a reply to try another way.

Group chats

Put your agents in one conversation

Invite Codex into a chat with Claude, add Gemini for the tests, or put two Claudes on different models side by side. They work in the same folder, read what the others said and did, and pass the work on with an @mention.

  1. You: the login test is flaky

    Everyone answers, in turn or at once

    A message without a mention goes to all of them, in turn, top to bottom: drag a name up or down to change who answers first. Or all at once, picked under Replies.

  2. You: @Codex can you review this?

    Mention who should answer

    Type @ and a list of everyone in the conversation opens. Only the agents you mention answer, in the order you mention them. A slash command goes to the host.

  3. Codex: @Gemini please add tests

    They hand work to each other

    An agent passes the turn the way you do, with an @mention. They take up to six turns on one message of yours by default, then wait for you. A nudge stops them all.

Let the agents decide

They pick their own effort

Give the goal, and the agents decide how hard each of them should think. Before anyone answers, one of them runs a quick effort check: a level for everyone about to answer, and a few words on why. A hand-over can carry a level too, and the badges follow.

Two looks

Not feeling 2005?

Tools > Look > Professional draws the same windows flat and quiet, in your system's own type, by day or at night. Every button, menu, key and sound stays where it was. Drag across to compare.

Claude, Codex, Gemini - ConversationFileEditActionsToolsHelp
FileEditActionsToolsHelp
InviteSend FilesActivitiesModeTerminalChangesCreate PR
To: Claude, Codex, Gemini <~/projects/api>
You say:

@Claude add a rate limit to /login, then @Codex review it

Claude says:

@Claude(high) @Codex(low) The limiter needs care, the review is small.

Claude edited src/limits.js Show changes
Claude says:

Done: five tries a minute per address, then a 429.

Codex says:

Looks right (H) @Gemini can you add tests?

Gemini ran npm test Show output
Gemini says:

Added 3 tests. All 45 pass (Y)

:)Voice Clip;)
Send
Claude
OpusHighAuto-accepts edits
Codex
GPT-6.1-SolLowAsks first
Gemini
ProAsks first
Replies Take turnsAll at once They answer one after another, top to bottom. Drag to reorder.

Beside the conversation

The plan, the diff, the page and your shell, one tab away

Everything you look at and run, in a pane beside the chat, kept as you left it.

Plans beside the chat

In plan mode, each plan gets a tab. Approve it there, or say what should change. A plan kept in a file gets one too.

Files, changes and checks

Diffs beside a tree of the files, comments on any lines, and Send all to chat to have failed checks fixed together.

A browser in the window

Your dev server or any link in a tab, at a phone's size if you like, and a screenshot to draw on for the agent.

Subagents and background tasks

What each subagent is doing, and the commands Claude left running, each with a Stop.

The session at a glance

The account, folder, branch, context and MCP servers, a click away from changing.

Terminals, Setup and Run

Your shell with ⌘J, the project's setup and Run, and terminals Claude opens for you.

Claude (api) - Conversation
Add a dark theme
  1. Add color tokens for dark mode
  2. Switch them with prefers-color-scheme
  3. Check contrast on every screen
Would you like to proceed? Yes, auto-accept edits Yes, ask before edits No, keep planning

Terminal to messenger

Same agents, different window

Everything you do in a terminal has a place here. Usually a nicer one.

Terminal to Messenger
In the terminal In buddylist
claude, codex, gemini, opencode or hermes in a project folder Add a contact for the folder, pick its Service, then double-click it
Pasting one agent's answer into another's terminal Invite it into the conversation: they take turns or answer at once, and hand over with an @mention
Permission prompt An invitation: Accept, Always allow or Decline
git worktree add, then one more terminal tab A worktree and branch for every contact, and the + on one adds another agent on the project
gh pr checks, again and again Tags on the contact's row, such as Passed or 2 failing, a mark on View PR and a toast when they change
gh pr create, then a new branch once it is merged Create PR in the toolbar, then Continue on a fresh branch once it is merged
gh issue view, then pasting the issue into a prompt A contact from the issue or pull request: its text waits in the message box as a draft
npm run dev in one more tab, on a port you pick by hand Run in the toolbar: the project's own command, on a port of its own for each contact

Free, for Mac, Windows and Linux

Get buddylist

buddylist Setup

Choose your download

macOS

Apple Silicon · M1 or newer

Download for Mac

.dmg · Notarized by Apple

Free. Installing and the first launch · See what's new

Good to know

Questions

What is buddylist?

buddylist is a free desktop app for chatting with the Claude Code, Codex, Gemini, OpenCode and Hermes coding agents through an interface styled after MSN Messenger 7.5. Every project folder is a contact in a buddy list, and every conversation is a real agent session that can read the project, run commands and edit files.

Is buddylist free?

Yes. buddylist is free to download and use. Each agent runs on your own account, as it does in your terminal: a Claude Code login or an Anthropic API key for Claude Code, and the CLI's own sign-in for Codex, Gemini, OpenCode and Hermes, so what they do counts against those plans.

Do I need to install the agents myself?

Not Claude Code: it comes with the app. Codex, Gemini, OpenCode and Hermes are not bundled, so install the ones you want: the guides to Codex, Gemini, OpenCode and Hermes say how. Each agent signs in the way it does in your terminal. For Claude Code that is a Claude Code login on this computer, or an Anthropic API key.

Is there a Windows, Linux or Intel Mac version?

Windows x64 and Linux x64 downloads are in the download section. Intel Mac and ARM Windows/Linux installers are not provided.

Can several agents work together in one conversation?

Yes. Click Invite in a conversation and pick another contact, whichever service it uses, or click the + there to make a new one with its service and model. Invite as many as you like. Everyone in the conversation works in its folder and answers in turn, top to bottom in the Agents tab beside the conversation, each seeing what was said and done before. Drag a name up or down to change who answers first, or pick All at once under Replies and they all start right away. Type @ and a list of everyone opens: only the ones you mention answer. An agent can hand over to another the same way, for up to six turns per message by default, and a slash command goes to the host alone. Pause one and it only answers when you mention it. Each agent has its own mode, model and effort level, and what any of them asks for arrives as an invitation that says who is asking. More in the group conversations guide.

Can an agent change my files without asking?

Not unless you let it. Claude, Codex and Gemini ask first by default, and every command or edit arrives as an invitation. The Mode menu can loosen that. Never ask lets the agent run anything, so only use it in folders you don't mind breaking. OpenCode is an exception: its Build mode changes files and runs commands without asking, unless your opencode.json says otherwise. So is Hermes: it asks before changing files, but runs any command it doesn't find dangerous.

Does the app send anything about me?

Anonymous counts, sent to PostHog under a random id: that the app was opened and which of its features were used, such as a terminal or a group conversation, with the app's version and your operating system. Nothing you or an agent wrote goes along, nor the name of a folder, file, branch or contact. Turn the counts off with Tools > Share anonymous usage data in the contact list. When something breaks that the app did not expect, it also sends an error report to Sentry so it can be fixed; Tools > Send error reports turns those off. This page counts its visits and downloads as well, without cookies.

How do I get new versions?

The app checks for a new release when it starts and every few hours after that. Mac, Windows and AppImage installations download a new version in the background, and the contact list shows New update available with See changes and Restart. Restart puts the new version in place and opens it again, asking first if an agent is still at work. Debian package installations show an update notice; install the new package to update. Help > Check for updates... asks at once, and Help > What's new opens the changelog. A copy of v0.2.7 or earlier on Mac is replaced by hand once: quit buddylist and drag the new version into Applications.

Your agents have just signed in.

Say hello. They have been waiting since 2005.