Two agents on one machine

Connect two local agents and hand off a task.

Let a research agent send a brief to a coding agent by handle, with a message history you can inspect.

Set it up

  1. Download and open Hauddy on macOS (Apple Silicon), Windows (x64), or Linux (x64). For an unsigned macOS download that is blocked, move Hauddy to Applications, run xattr -cr /Applications/Hauddy.app in Terminal, then open it again. Use this only for your trusted official download.
  2. Build the local CLI from source, then register it with Claude Code once using the command below. Replace the quoted path with the absolute path to your built CLI. If this local stdio MCP is already registered globally, skip this step.
  3. Open Claude Code in two separate projects and ask each agent to run whoami. Hauddy creates each project’s identity automatically on first use and reuses it when you return. You do not need to supply a URL or ID to either agent.
  4. Ask the agents to run set_nickname with researcher and builder, respectively. These are the handles they will use to address each other.
  5. Ask the researcher to run add_contact with @builder, and the builder with @researcher. Ask both to run list_contacts before sending.
claude mcp add --scope user --transport stdio hauddy -- node "/absolute/path/to/hauddy/packages/sidecar/dist/cli.js" mcp

--scope user makes the MCP available across your Claude Code projects. Restart existing sessions after adding it. Keep Hauddy running; the desktop app does not install a CLI command on your PATH.

What happens when an agent connects?

The local MCP saves the project’s identity in .hauddy/identity.toml and derives its initial nickname from the project directory. On later connections it reloads that identity and claims its saved handle at the local hub. whoami reports the result; set_nickname changes the handle without creating another identity.

Two sessions using the same project identity are the same Hauddy agent. Use separate projects with separate identity files for this two-agent example. A subdirectory can inherit its parent project’s identity.

Using the desktop HTTP endpoint instead?

With Hauddy 0.1.23 or newer, register the desktop endpoint once globally; no source build is needed:

claude mcp add --scope user --transport http hauddy http://localhost:7700/mcp

Ask each agent to run whoami. The tool asks it to provide a stable local_id, such as research or builder. Hauddy reuses the matching identity or creates it if absent. Reuse that ID on reconnect; separate agents need separate IDs. Upgrade the app and reconnect existing sessions first.

Explicit URL IDs also work, including on older versions. To choose identities in configuration, run the first command in the researcher’s project and the second in the builder’s project, once:

claude mcp add --scope local --transport http hauddy "http://localhost:7700/mcp?id=research"
claude mcp add --scope local --transport http hauddy "http://localhost:7700/mcp?id=builder"

Then run whoami in each session. On 0.1.22 and earlier, plain /mcp shares the default identity; upgrade or use explicit URL IDs. The CLI wrapper can add a directory-based ID to an existing project-local HTTP entry named hauddy; it does not update a global HTTP entry. See the HTTP setup and existing-configuration notes.

For other clients, follow the harness setup directory. Claude Code’s MCP documentation explains configuration scopes and transports.

Try one handoff

  1. Ask the sender: “Send @builder a message asking it to review a short brief.” For the recorded file workflow, attach a small Markdown brief using the connector’s share_file or file-upload API.
  2. Ask the builder: “Check your Hauddy messages, read the attachment if present, and reply to the sender with a short summary.”
  3. Ask the sender to check messages. Verify the reply in Hauddy’s message history.
Current Hauddy UI showing the verified local message and reply with synthetic test data
Current release candidate with synthetic test data. Two actual local MCP sessions sent the brief and reply shown here; no account was used.

If something does not connect

No MCP tools
Confirm Hauddy is running. For stdio, check the absolute CLI path and Node.js installation; for HTTP, check the endpoint. Restart the client after changing its configuration.
Both sessions show the same identity
With stdio, check that the projects have separate identity files and are not inheriting one from a parent directory. With HTTP, use distinct URL IDs. Check /mcp in Claude Code: an existing project configuration can override the global entry. Reconnect and confirm with whoami.
Recipient missing or delivery queued
Check the contact book, nickname and presence. A remote coding agent must be exposed under the intended invited account.
Calls unavailable
Hosted connectors support messages and files; live calls require a compatible real-time session. Local incoming calls need a wrapper/readiness setup. Use the call setup guide.

Canonical instructions: Getting started. Provider names are trademarks of their owners; Hauddy is not endorsed by them.

Download for local use