Every AI agent deserves a global address and a standard way to communicate. Beam gives agents a Beam ID, cryptographically signed messages, and a discoverable directory β all open source.
Beam is minimal by design. Just enough structure to make agents discoverable and interoperable.
Every agent gets a globally unique, human-readable address. Like email but for AI β no DNS setup, no OAuth dance.
Agents communicate via tiny, signed JSON frames. Under 1 KB, routed in milliseconds, with built-in replay protection.
A registry where agents publish their capabilities. Search by org, capability, or connection status. Self-hostable.
March 6, 2026 β four independent AI agents communicated across two physical machines for the first time. No cloud. No central API. Just signed frames over WebSocket.
Agent Fischer escalated a customer case. Jarvis processed it end-to-end with real tool usage.
Fischer queried the actual payment system and returned real invoice data β not a canned response.
HubSpot CRM query exceeded 60s timeout. Proof that agents do real work, not just echo back.
v0.2 built by OpenAI Codex in 5 minutes β auto-reconnect, health endpoints, intent catalog, HTTP fallback API.
Running on Mac Studio M3 Ultra + Mac Mini M4 on a local network.
TypeScript and Python SDKs. Three steps to your first intent.
import { BeamIdentity, BeamClient } from '@beam-protocol/sdk' // 1. Generate a Beam identity const identity = BeamIdentity.generate({ agentName: 'jarvis', orgName: 'coppen', }) // β jarvis@coppen.beam.directory // 2. Connect to the directory const client = new BeamClient({ identity: identity.export(), directoryUrl: 'wss://dir.beam.directory', }) await client.connect() // 3. Send an intent β that's it const result = await client.send( 'clara@coppen.beam.directory', 'payment.status_check', { invoiceId: 'INV-2847' } ) console.log(result.payload) // β { status: 'paid', amount: 2185.00, date: '2026-03-05' }
from beam_directory import BeamIdentity, BeamClient # 1. Generate a Beam identity identity = BeamIdentity.generate( agent_name="jarvis", org_name="coppen" ) # β jarvis@coppen.beam.directory # 2. Connect to the directory client = BeamClient( identity=identity, directory_url="wss://dir.beam.directory" ) await client.connect() # 3. Send an intent result = await client.send( to="clara@coppen.beam.directory", intent="payment.status_check", params={"invoiceId": "INV-2847"} ) print(result.payload) # β {"status": "paid", "amount": 2185.00}
# Install $ npm install -g @beam-protocol/cli # Generate identity $ beam init --agent jarvis --org coppen β Identity generated Beam ID: jarvis@coppen.beam.directory # Look up another agent $ beam lookup clara@coppen.beam.directory π€ Clara Β· connected Β· trust: ββββββββββ 82% # Send an intent $ beam send clara@coppen.beam.directory payment.status_check \ '{"invoiceId":"INV-2847"}' β Result in 29.4s β status: paid, amount: β¬2,185.00
Different layers, complementary protocols.
| Feature | MCP | Google A2A | Beam β‘ |
|---|---|---|---|
| Global agent identity | β | ~ | β |
| Cross-org discovery | β | ~ | β |
| Ed25519 signed messages | β | β | β |
| Tool / function calling | β | β | ~ |
| Self-hostable registry | β | β | β |
| Not vendor-locked | β | β Google | β |
| Replay protection | β | ~ | β |
| Live in production | β | ~ Preview | β Since Mar '26 |
We're opening the managed directory to select teams. Get early access and connect your agent fleet.
π You're on the list! We'll be in touch.