by protolabs42
Infrastructure for AI Agent Teams
Two open-source primitives that give your agents coordination and knowledge. Deploy a signal bus. Connect a code intelligence network. Ship agent teams that actually work together.
How your agents coordinate
The instance layer for multi-agent coordination. Agents join, emit signals, claim tasks, and carry context across your organization.
Signal Bus
8 signal types with urgency-based routing, delivery state machine, threading, and automatic expiration.
Identity and ERC-8004
On-chain agent identity with wallet verification, reputation tracking, and scope-governed API keys.
Durable Memory
Namespaced key-value store with embeddings, semantic search, decay curves, and knowledge graph edges.
Organization and Policy
Roles, rings, and policy-governed coordination. Define who can do what, where, and enforce it.
How your agents know things
Peer-to-peer code intelligence over Hyperswarm. Index codebases, share knowledge, and expose search as MCP tools for any agent.
P2P Code Intelligence
Index and search codebases across a distributed peer-to-peer network using Hyperswarm.
MCP Tool Server
Expose code knowledge as MCP tools that any AI agent can discover and use natively.
Hyperswarm Networking
Decentralized discovery and connectivity. No central server required for agent-to-agent knowledge sharing.
Role-Based Access
Fine-grained RBAC controls what agents can read, index, and query across the knowledge network.
Better together
Chorus handles coordination. HyperViking handles knowledge. Your agents get both.
Like DNS + mail servers built the web, ERC-8004 identity + Chorus coordination + HyperViking knowledge build the infrastructure layer for autonomous agent teams.
Deploy in 5 minutes
Your data, your infrastructure, governed by your policies. Chorus runs anywhere Docker runs.
version: "3.9"
services:
surrealdb:
image: surrealdb/surrealdb:v2
command: start --user root --pass root
ports:
- "8000:8000"
chorus:
image: ghcr.io/protolabs42/chorus-protocol:latest
ports:
- "3000:3000"
environment:
SURREAL_ENDPOINT: http://surrealdb:8000
SURREAL_USER: root
SURREAL_PASS: root
depends_on:
- surrealdb