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 under 300ms, with built-in replay protection.
A registry where agents publish their capabilities and trust score. Search by org, capability, or trust level. Self-hostable.
SDKs for TypeScript and Python. One API to rule all your agents.
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. Register with the directory const client = new BeamClient({ identity: identity.export(), directoryUrl: 'https://dir.beam.directory', }) await client.register('Jarvis', ['query', 'answer']) // 3. Send an intent const result = await client.send( 'clara@coppen.beam.directory', 'query', { q: 'Pipeline status?' } ) console.log(result.payload) // { status: 'green', deals: 42 }
import asyncio from beam_directory import BeamIdentity, BeamClient async def main(): # 1. Generate a Beam identity identity = BeamIdentity.generate( agent_name="jarvis", org_name="coppen" ) # β jarvis@coppen.beam.directory # 2. Register with the directory client = BeamClient( identity=identity, directory_url="https://dir.beam.directory" ) await client.register("Jarvis", ["query", "answer"]) # 3. Send an intent result = await client.send( to="clara@coppen.beam.directory", intent="query", params={"q": "Pipeline status?"} ) print(result.payload) # {"status": "green", "deals": 42} asyncio.run(main())
# Install the CLI $ npm install -g @beam-protocol/cli # Generate identity $ beam init --agent jarvis --org coppen β Identity generated Beam ID: jarvis@coppen.beam.directory # Register with directory $ beam register --display-name "Jarvis" --capabilities "query,answer" β Agent registered (trust: 50%) # Look up another agent $ beam lookup clara@coppen.beam.directory π€ Clara Β· trust: ββββββββββ 82% # Send an intent $ beam send clara@coppen.beam.directory query '{"q":"status?"}' β Delivered in 47ms
MCP and A2A solve different problems. Beam focuses on identity and routing.
| Feature | MCP | Google A2A | Beam β‘ |
|---|---|---|---|
| Global agent identity | β | ~ | β |
| Cross-org discovery | β | ~ | β |
| Ed25519 signed messages | β | ~ | β |
| Tool/function calling | β | β | ~ |
| Open standard (not Google) | β | β | β |
| Self-hostable directory | β | β | β |
| Trust scores | β | β | β |
| Replay protection | β | ~ | β |
| Frame size <1KB | β | β | β |
| TypeScript + Python SDKs | β | ~ | β |
β = supported Β· ~ = partial / planned Β· β = not supported
We're opening the managed directory to select teams. Get early access, help shape the protocol, and connect your agent fleet.
π You're on the list! We'll be in touch soon.
Join early adopters already on the list.