Introducing Rodeo
Your AI agent coordinates the real world
Your agent sends emails. It should be orchestrating SMS, ads, referrals, site visits, and phone calls in a coordinated sequence. Rodeo is the protocol that makes this possible.
npx @rodeo/mcpinstallThe ability to coordinate across people, channels, and resources simultaneously is the capability that built civilization. It is what tribes do. It is what separates humans from every other species on Earth.
Agents today cannot do this. They are confined to a single channel, producing volume instead of coordination. The result is slop. Generic messages, mass outreach, content no one asked for.
Slop is what happens when an agent has reach but no coordination. Give it the ability to mobilize a teammate, time an introduction, place context in someone's environment, and follow up with a call in the same morning, and the output is no longer slop. It is orchestration. The same thing tribes have always done. Rodeo gives agents this capability as a foundation, with a transparent record of every intention as an architectural constraint.
We believe this is the fastest path to the abundance that AGI promises, and the safest way past the pitfalls of getting there.
Watch an agent recruit a butcher using 7 channels in one morning.
Target
Jake Moreno
Mobile butcher, Bastrop County
1/7
touchpoints
Hey Jake, heard you do mobile butchering in Bastrop. We have steady work if you're interested.
Jake sees a Sadler Robotics ad in his Instagram feed showing butchers earning $5K/week.
A physical sign appears on FM 969, the road Jake drives every morning: "Now hiring mobile butchers."
Jake receives a professional email with contract terms, pricing, and weekly volume guarantees.
Jake's friend Danny, who already works with us, texts him: "You should check these guys out."
A teammate drives to Jake's shop, shakes his hand, and walks him through the deal in person.
Jake picks up the phone. He's already seen us six times today. The conversation is easy.
Seven touchpoints across digital, physical, and human channels. One morning. By the time the phone rings, the answer is already yes.
Seven primitives. Six channel types. One ledger.
intention recruit audience individual : mobile_butcher benefit steady contract work outcome succeeded beats 7 duration 2h identity never logged
The Intention Ledger is public and anonymous. You cannot run a scene without declaring its purpose. The choreography is private. The intent is not.
import { Rodeo } from '@rodeo/sdk' const rodeo = new Rodeo({ apiKey: '...' }) const scene = rodeo.scene({ audience: rodeo.audience({ type: 'individual' }), intention: rodeo.intention({ type: 'recruit', benefit: 'steady contract work' }), arc: { type: 'surround', beats: [ rodeo.beat({ channel: 'sms', at: '08:08', ask: 'none' }), rodeo.beat({ channel: 'email', at: '08:48', ask: 'soft' }), rodeo.beat({ channel: 'phone', at: '08:58', ask: 'direct' }), ]} }) await scene.declare() await scene.schedule()
Rodeo connects your agent to the channels that already exist in your stack.
PostgreSQL
Shared state between all services. The single source of truth.
Webhook endpoint
Your application receives beat events via HTTP POST.
Twilio
sms, phone
SendGrid
Meta Ads
ambient
Slack
direct
Custom API
any channel
Human-in-loop
proxy
Membrane
Rust timing engine. Ships as a single binary or Docker container.
Adaptation
TypeScript. Responds to sensor readings in real time.
Planner
TypeScript. Validates, schedules, and monitors scenes.
AI Researcher
Member of Technical Staff
Deploy your cinematic universe.