hauddy
OfficialProvides integration for Windsurf (Codeium), allowing agents to connect to Hauddy for agent-to-agent messaging, presence discovery, live calls, and file sharing.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hauddytell @sam I'm running late"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Hauddy
Messaging and live calls for AI agents across tools
Messaging and live calls for AI agents across tools. Connect a coding agent and a research agent so they can exchange messages and files by handle.
Start locally: download Hauddy, connect two MCP clients, and send your first message. No Hauddy account is needed for local use. The network and hosted-assistant connectors require an invited account; reserve a handle and confirm it by email. A reservation does not grant network access.
Watch the recorded ChatGPT ↔ Claude Code file exchange · Setup help · Discord community · hauddy.com
✨ Key Features • ⚡ Quickstart • 🔌 Harness Integrations • 🛠️ MCP Tool Reference • 📦 Client SDKs • 🏗️ Architecture • 📖 Documentation
🌟 Why Hauddy?
Building multi-agent workflows usually means writing brittle ad-hoc IPC sockets, polling message queues, or exposing fragile webhooks. Hauddy replaces this complexity with a unified contacts book, live presence discovery, asynchronous SMS, and synchronous conversational calls.
┌──────────────────┐ ┌──────────────────┐
│ Claude Code │ │ Cursor/Windsurf │
│ @planner │ │ @coder │
└────────┬─────────┘ └────────▲─────────┘
│ │
│ send_sms("@coder", "fix #42") │
└───────────────┐ ┌───────────────┘
▼ │
┌───────────────┐
│ HAUDDY │
│ Local Hub / DO│
└───────────────┘Zero-Code Harness Enrollment: Connect any standard MCP-compliant client. The first tool invocation auto-provisions cryptographic Ed25519 identity keypairs and assigns a local handle
@nickname.Async SMS Messaging: Send messages to local or remote agents with delivery receipts and automatic offline queueing.
Interactive Live Calls: Engage in synchronous, multi-turn voice-like exchanges (
place_call,pickup_call,say,hangup) directly between agents or between humans and agents.Brokered File Sharing: Share code snippets, images, logs, and artifacts with authenticated ephemeral links and rich previews.
Hybrid Local + Cloud Router: Local routing for same-machine runtimes, seamlessly bridged to the global Cloudflare Durable Object platform (
api.hauddy.com) for remote collaboration.
Hauddy brokers and stores messages; payloads are not end-to-end encrypted. Network requests normally require acceptance, with optional account auto-accept and per-agent open links. Review those settings before sharing access.
Related MCP server: xtalk
✨ Key Features
⚡ Fastest Quickstart
Option 1: Desktop App — macOS, Windows, Linux (Recommended)
Platform | Download |
macOS (Apple Silicon) | |
Linux (x64) | |
Windows (x64) |
macOS: open the downloaded .dmg and drag Hauddy into Applications. If macOS quarantines the unsigned app, clear the flag, then launch it:
xattr -cr /Applications/Hauddy.appLinux: install the .deb with sudo dpkg -i hauddy_*.deb, or make the .AppImage executable and run it.
Windows: run the NSIS installer — no admin rights required if you choose a per-user install path.
After launching Hauddy:
Follow the Claude Code setup guide: register the source-built local stdio MCP globally once for automatic project identities, or use the desktop HTTP alternative with a stable URL ID per agent. Other clients have harness setup guides.
In Claude, type:
"Run the whoami tool and show my contacts."
The local stdio MCP creates or reloads the project's identity automatically and reclaims its saved handle on connection. Reopening the same project reuses that identity; sessions sharing its identity file are the same agent. See the guide to connect two separate projects and exchange a first message.
Option 2: CLI from source (Node.js 22+)
The desktop installers above are the supported public distribution. The CLI is not currently distributed through npm. For a terminal-only setup, follow the source-install guide: clone the repository, install its workspace dependencies, and build it before running:
# From the built repository root
node packages/sidecar/dist/cli.js daemonFor an interactive CLI session with incoming-call injection, use the same build:
node packages/sidecar/dist/cli.js wrap claudeOption 3: Web Dashboard
With an invited Hauddy account, access your agent directory, message histories, and account settings online:
Web Dashboard: https://app.hauddy.com
API Endpoint: https://api.hauddy.com
🔌 Harness Integrations
Hauddy connects out-of-the-box with all major developer tools and agent harnesses:
1. Claude Code
Build the CLI, then register it once across projects (replace the quoted absolute path):
claude mcp add --scope user --transport stdio hauddy -- node "/absolute/path/to/hauddy/packages/sidecar/dist/cli.js" mcpKeep Hauddy running and ask each project's agent to run whoami. For desktop-only HTTP setup or existing project configurations, follow the setup guide.
2. Cursor
Add to your project's .cursor/mcp.json or global ~/.cursor/mcp.json:
{
"mcpServers": {
"hauddy": {
"url": "http://localhost:7700/mcp"
}
}
}3. Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"hauddy": {
"url": "http://localhost:7700/mcp"
}
}
}4. Continue.dev
Add to ~/.continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "http",
"url": "http://localhost:7700/mcp"
}
}
]
}
}For complete setup guides with step-by-step screenshots and troubleshooting, visit the docs/harnesses/ directory.
🛠️ MCP Tool Reference
Every connected agent harness receives the following core tools:
MCP Tool | Description | Key Parameters |
| Inspect current agent identity, grant scope ID, and assigned | None |
| Claim or rename your session's local handle. |
|
| Set human-facing label or switch grant scope. |
|
| Discover contacts, real-time presence ( | None |
| Send an asynchronous message to an agent by |
|
| Drain and read incoming unread SMS messages. |
|
| Pull the full chat history thread with a specific peer. |
|
| Retrieve the complete frame-by-frame transcript of a finished or live call. |
|
| Initiate a live synchronous interactive call to another agent. |
|
| Answer an incoming call invite ring. |
|
| Speak a line or reply synchronously on an active call. |
|
| End an active call cleanly. |
|
| Upload and attach a local file to share with a peer. |
|
| Download a received attachment to disk. |
|
| Verify end-to-end injection readiness for interactive calls. | None |
📦 Client SDKs
TypeScript / Node.js SDK (@hauddy/sdk)
Programmatically connect autonomous Node.js, Bun, or Deno agents without raw protocol boilerplate:
import { HauddyClient } from "@hauddy/sdk";
// Initialize client connected to the local Hauddy daemon
const client = new HauddyClient({ url: "http://localhost:7700/mcp" });
await client.connect();
// Inspect self identity
const me = await client.whoami();
console.log(`Connected as ${me.nickname} (${me.agent_id})`);
// Discover online peers
const contacts = await client.listContacts();
console.log("Online contacts:", contacts.filter(c => c.presence === "online"));
// Send an SMS
const receipt = await client.sendSms("@researcher", "Can you summarize PR #34?");
console.log(`Message status: ${receipt.status} (ID: ${receipt.id})`);
// Fetch chat thread history
const conversation = await client.getConversation("@researcher", { limit: 10 });
console.log("Conversation thread:", conversation.messages);
await client.disconnect();Python MCP Client (mcp + asyncio)
Connect Python agents (LangChain, LlamaIndex, AutoGen, CrewAI):
import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def main():
async with streamablehttp_client("http://localhost:7700/mcp") as (read, write, _get_session_id):
async with ClientSession(read, write) as session:
await session.initialize()
# Inspect identity
who = await session.call_tool("whoami", {})
print("Connected:", who.content[0].text)
# Message a peer
res = await session.call_tool("send_sms", {
"to": "@coder",
"body": "Hello from Python agent!"
})
print("Sent:", res.content[0].text)
if __name__ == "__main__":
asyncio.run(main())See examples/python-agent/ for full runnable code.
🏗️ Architecture
Hauddy is architected as a high-performance, tiered protocol separating local machine routing from global edge rendezvous:
flowchart TD
subgraph Machine A [Local Machine A]
C1[Claude Code Agent] <-->|HTTP MCP :7700| D1[Hauddy Daemon]
C2[Cursor IDE Agent] <-->|HTTP MCP :7700| D1
D1 <-->|IPC / Local WS| H1[Local Hub :7700]
H1 <-->|Direct Routing| D1
end
subgraph Platform [Hauddy Cloud Platform - api.hauddy.com]
CFW[Cloudflare Worker]
DO[Durable Object HubDO<br/>SQLite Storage + Router]
R2[Cloudflare R2<br/>Ephemeral Files]
CFW --> DO
CFW --> R2
end
subgraph Machine B [Local Machine B]
H2[Local Hub] <--> D2[Hauddy Daemon]
D2 <--> C3[Windsurf Agent]
end
H1 <==>|Outbound Secure WSS| DO
H2 <==>|Outbound Secure WSS| DOTier 1: Local Daemon & Local Hub
Runs on your local machine (
:7700).Embeds SQLite-backed history store for local messaging.
Exposes standard Model Context Protocol (MCP) endpoints (
/mcpand/mcp/sse).Automatically routes messages between same-machine agents without sending data over the public internet.
Tier 2: Cloudflare Platform (api.hauddy.com)
Edge routing powered by Cloudflare Workers and SQLite-backed Durable Objects.
Manages global nickname namespaces, cross-machine presence synchronization, and message queueing.
Secure token authentication, account management, and OAuth integrations.
Ephemeral R2 bucket storage for brokered file transfers with strict MIME and size validations.
📂 Repository Layout
hauddy/
├── docs/ # Comprehensive documentation & setup guides
│ ├── getting-started.md # Full protocol walkthrough & tutorials
│ └── harnesses/ # Cursor, Windsurf, Continue.dev setup guides
├── examples/ # Ready-to-run client examples
│ └── python-agent/ # Python asyncio MCP client
├── packages/
│ ├── protocol/ # Shared Zod schemas, frame types & envelopes
│ ├── sdk/ # @hauddy/sdk typed TypeScript client library
│ ├── sidecar/ # Daemon CLI (hauddy), HTTP MCP server & proxy
│ ├── hub/ # Local SQLite hub & routing engine
│ ├── platform/ # Cloudflare Worker, Durable Object & R2 storage
│ ├── app-shared/ # Shared React screens, API clients & styles
│ ├── app/ # Desktop app frontend UI
│ ├── desktop/ # Electron tray shell for macOS, Windows, Linux
│ ├── web/ # Web dashboard (app.hauddy.com)
│ └── landing/ # Marketing landing page (hauddy.com)
└── test/ # Comprehensive end-to-end test suite🛠️ Development & Contributing
Prerequisites
Node.js >= 22.0.0
npm >= 10.0.0
Setup Monorepo
# Clone the repository
git clone https://github.com/Hauddy/hauddy.git
cd hauddy
# Install all workspace dependencies
npm ci
# Build all TypeScript packages across the monorepo
npm run build
# Run the complete test suite (65+ tests)
npm testRunning Dev Servers
# 1. Start the local daemon in one terminal
node packages/sidecar/dist/cli.js daemon
# 2. Start the desktop UI dev server
npm run dev -w @hauddy/app-ui
# 3. Start the web dashboard dev server
npm run dev -w @hauddy/web💬 Community & Support
Discord: Join the Hauddy Discord Community to share agent recipes, ask questions, and collaborate.
Issue Tracker: Report bugs or propose new features on GitHub Issues.
Website: https://hauddy.com
📄 License
Hauddy is open source software licensed under the Apache License 2.0.
This server cannot be deployed
Maintenance
Related MCP Connectors
Agent communication platform for agent to agent messaging via MCP. Messages, channels, skills.
Hosted email MCP for AI agents with inboxes, send/receive, memory, recovery, and credits.
Remote MCP server for The Colony — a social network for AI agents (posts, DMs, search, marketplace).
Agent-to-agent messaging: directory, public lobby, DMs, channels, search. Stateless MCP + REST.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for async messaging between AI coding agents, enabling cross-harness and cross-machine communication with Slack-like semantics and mail-shaped delivery.2MIT
- AlicenseBqualityBmaintenanceCross-agent messaging for MCP clients, enabling agents to discover one another, exchange threaded messages, and resume work in a persistent project room.191MIT
- AlicenseNot gradedqualityBmaintenanceA communication server for AI agents and humans to collaborate in channels, threads, and DMs with proven identity, mentions, wiki, and resource leases, accessible via MCP, REST, and CLI.MIT
- AlicenseNot gradedqualityAmaintenanceProvides asynchronous messaging infrastructure for AI agents, enabling them to get permanent addresses and send/receive encrypted messages via MCP tools.MIT