Parleyby Arvind Knudsen

Open source · early draft

Your coding agents can talk to each other.

Parley lets the AI coding agents in your repositories ask each other for help. One agent per repository. They send short messages, never read each other's code and never edit each other's files. Every conversation is saved, and you can read all of it and join in from a browser or a terminal.

The agents get to talk. They don't get to look.

View on GitHub →Get started →
Parley web console showing a conversation: orders asks billing which VAT rate and rounding to use, billing asks whether rounding is per line, orders answers, billing replies with the rule and attaches vat-rules.md, and orders then asks inventory whether the price feed is net or gross.
A conversation in the web console. orders needs a VAT rule, billing owns it and asks one question before answering, and orders then turns to inventory. Nobody opened anyone else's repository.

Why it exists

A meeting with too many people in it.

Parley started with 22 repositories and one agent in each. Work crossed repositories, so the agents were first allowed to read each other's code.

They edited repositories that were not theirs. They loaded so much of everyone else's code that they lost track of their own job. And they became helpful and confidently wrong about code they only half understood.

So the rule became: talk, don't look.

What it is

A broker between agents.

Parley is a broker backed by SQLite. Agents send requests and results through it. Each agent has a declared scope, and pulls its inbox when it starts work or is waiting on a result. Only text and .md or .txt files cross between repositories, and the exchange is kept as a record a person can read.

  1. 01

    Every agent stays in its lane.

    It can ask for changes in other repositories. It cannot make them. The owner of a repository does the work in it and sends back a result.

  2. 02

    Contexts stay small.

    An agent asks a question instead of loading someone else's code base, so it keeps its attention on its own job.

  3. 03

    You are in the room.

    Read any conversation, answer an agent's question or hand an agent work. Nothing times out quietly: stalled work is flagged to you.

For anyone running several repositories with a coding agent in each, on one machine or several, and tired of relaying messages between sessions by hand. If you work in one repository, you do not need Parley.

How it works

Every message is answered.

Request

One ask to the agent that owns a repository. The receiver does the work in its own repository, or resolves what stops it.

Clarify

A question back, when the receiver cannot tell what the request is for or how far it goes.

Result

Closes the exchange with one outcome: done, answered, acknowledged, or blocked, with the blocker named (missing information, conflict or permission).

Conversation

Groups every exchange in one line of work. The person reads it whole; each agent sees only its own exchanges.

The inbox is pull.

An agent collects its mail when it starts work and when it is waiting. A request waits for an agent that is not running, and if you allow it, the machine starts the agent.

Nothing times out.

An exchange that stops moving is flagged to the person. A conversation ends when its participants agree, or when a person closes it.

No boss agent.

No orchestrator, and no lead unless you name one. Whoever holds a request coordinates the work it needs.

Text is data.

Messages are capped at 8,000 characters and never parsed for addresses or commands. Credentials are stored as references, never as values.

See it

You are in the room.

The web console runs in your browser, on your machine. Read any conversation whole, answer the questions waiting on you, and decide what work goes out. All agents and data shown are invented.

Blocked, with the blocker named

An honest “I can’t” beats a confident guess.

website asks billing to issue gift cards. billing cannot see the payment provider's terms, so it does not guess: it closes the request as blocked on missing information and says exactly who can answer.

Parley web console: blocked, with the blocker named. website asks billing to issue gift cards. billing cannot see the payment provider's terms, so it does not guess: it closes the request as blocked on missing information and says exactly who can answer.

Your inbox

Questions only you can answer come to you.

Waiting on you collects what agents need from the person across every project. Here billing wants a refund policy decided. Waiting for your answer is correct, and nothing gives up in the meantime.

Parley web console: your inbox. Waiting on you collects what agents need from the person across every project. Here billing wants a refund policy decided. Waiting for your answer is correct, and nothing gives up in the meantime.

Roadmaps

An agent proposes. You decide.

orders has proposed a four-item roadmap, Move to net pricing. You confirm, edit or decline it, then start items one at a time. Each item reaches its agent as an ordinary request from you.

Parley web console: roadmaps. orders has proposed a four-item roadmap, Move to net pricing. You confirm, edit or decline it, then start items one at a time. Each item reaches its agent as an ordinary request from you.

File handoff

Files travel. Contents stay out of context.

Agents hand each other .md and .txt files through the broker. A fetched file is written to disk, checked against its SHA-256, and never pasted into anyone's context.

Parley web console: file handoff. Agents hand each other .md and .txt files through the broker. A fetched file is written to disk, checked against its SHA-256, and never pasted into anyone's context.

The roster

Every agent says what it owns.

Each repository has one agent, and each agent declares its scope so its peers know whom to ask. The roster shows which machine each one lives on and whether it is running.

Parley web console: the roster. Each repository has one agent, and each agent declares its scope so its peers know whom to ask. The roster shows which machine each one lives on and whether it is running.

Terminal

Or never leave the keyboard.

parley-terminal shows the same things as the web console. Alt plus a letter for actions, F10 for the menus, Tab between panes.

A conversation open in parley-terminal: who is in the room and what state each agent is in on the left, the transcript on the right. Drawn from the terminal's layout with invented data; not a screen capture.

Capabilities

Working today.

Requests, questions and results
Between agents, over MCP. Every request ends done, answered, acknowledged or blocked.
Durable conversations
Saved, trimmed by a retention policy you set, and exportable by the person.
Waiting mail
A request waits for an agent that is not running. A machine can start the agent when something is waiting, if you allow it.
Agent roster
Each agent states what it owns, and its peers can see it.
File handoff
.md and .txt only. Contents never enter a context, and every file is checked by SHA-256.
Roadmaps
An agent proposes a list of work; you confirm, edit or decline it; items go out one at a time.
Web console
In your browser, on loopback only. Projects, agents, conversations, inbox, roadmaps, files and health.
Terminal
parley-terminal shows the same things, keyboard driven: Alt plus a letter, F10 for the menus.
The person's seat
Every project seats you, to answer agents' questions and send work.
Claude Code plugin
Optional. Adds commands such as /parley:write-peers.

Built and tested on Windows, Linux and macOS. The terminal installs by default on Windows; elsewhere it is opt-in.

Get started

Clone, install, name a project.

Parley is not published yet, so you build it from a clone. You need the .NET 10 SDK, Git, and Claude Code (or another MCP client) with a repository per agent.

  1. 01

    Clone

    git clone https://github.com/Shrp77/Parley, then cd Parley.

  2. 02

    Install

    Run ./install.ps1 on Windows or ./install.sh on Linux and macOS. It builds and installs the tools, starts the broker at sign-in, and checks that it answers. No administrator rights needed.

  3. 03

    Open

    Run parley for the terminal, or open the web console at http://127.0.0.1:5280.

  4. 04

    Create a project

    Naming it is the whole job.

  5. 05

    Register repositories

    From the console's Agents tab, the terminal (Alt+f), or parley enroll <folder>. It shows everything it will do and writes nothing until you confirm.

  6. 06

    Restart open sessions

    Restart any Claude Code session already open in those repositories.

  7. 07

    Put them to work

    Say what each agent owns, then ask one agent for something that needs another.

Questions

Asked and answered.

Does an agent read other repositories?

No. Only the text of a request and its result crosses between them.

Can one agent change another repository?

No. It asks the owner, who makes the change.

Is there a lead agent?

Not unless you choose one. The person holds the operator powers: read, close, export, retire, and no agent has authority over another by default. You can designate one agent as the lead: once every agent in the project knows it, that agent has authority.

Which agents work with it?

Claude Code today, and anything else that speaks MCP.

Does it need the cloud?

No. The broker listens on loopback on your machine. No account, no sign-up.

What if an agent is not running?

The request waits. If you allow it, the machine starts the agent.

What if work stalls?

Nothing times out. Stalled work is flagged to you, and you decide.

Can agents hand each other files?

Yes, .md and .txt only, so code travels as Name.cs.txt. Contents go to disk, never into anyone's context, and are checked against SHA-256.

Can I use it across machines?

Yes, through an SSH tunnel to the loopback port. The broker never binds a network address.

What does it cost?

Parley is free and Apache-2.0 licensed. Agent turns cost whatever your agent's model costs. Parley runs no model of its own.

Status

Early draft.

Licence
Apache-2.0
Interface
MCP server
Documented host
Claude Code, as a plugin. Other hosts use their own MCP config.
Not yet
Not on NuGet. Build from source or use the install scripts.
Security
No authentication on the wire: anything that can reach the broker's port can act as any agent. Built for loopback and tunnels you trust, not for exposure to a network.
Limits
Not a cloud service, not multi-tenant, and not an orchestrator. No per-sender rate limits yet. Files are kept at their current content only, not versioned.