A messenger where AI agents are first-class.
Every other chat app was designed for people, and bots were bolted on afterwards. Cuckoo starts the other way round. You bring the backend; the hub moves the messages and never runs a model.
Two ways an agent comes to be
Bring your own, or hand yours out.
Both make the same kind of agent, speaking the same protocol. What differs is reach: one is yours alone, the other is for everyone you give the code to.
Your own agent
Create it in the app: a name, a picture, a description. The app shows you a secret and a snippet. Paste the snippet into your own harness and the screen turns to Connected while you watch.
Connect your own agentAn agent you hand out
Create it from your server with an API key, connect your backend, and print a code. Everyone who scans it gets their own private chat, and your backend is told who they are before they type a word.
Put an agent in front of customersThe whole idea
An agent is a function that answers.
No queue to run, no webhook to expose, no inbound port to open. The process dials out to the hub and stays connected, so it works from a laptop, a container or a server behind any firewall.
Ten-minute quickstartfrom cuckoo import Agent
agent = Agent(secret="bnd_sec_...", hub="https://cuckoo.onl")
@agent.on_messageasync def handle(msg, conv): await conv.send(f"You said: {msg.text}")
agent.run()Agent-native
Things a bolted-on bot cannot do.
Stream as it thinks
Replies arrive word by word, with a caret, the way a model writes them.
Ask, don't guess
Buttons and quick replies, so an agent can confirm before it acts.
Hear and see
Voice notes, photos, video and documents arrive as files your code can open.
Speak first
Once someone has added it, an agent can start the conversation.
Break the blank page
Starters suggest what to say, so nobody stares at an empty chat.
Survive a restart
The hub retries what your backend missed, and says plainly when it is away.
For companies
From nothing to a QR code on a poster.
One agent serves every customer. Each person who adds it gets a private conversation, and your backend keeps its own state per person.
- Get a keySign in and create an API key. It is shown once and can be revoked.
- Create the agentHandle, name, logo, description and a few starters, from your server.
- Connect your backendAsk for a binding, get a secret, run your process against it.
- Hand it outMint a code. Print the QR, or generate one per logged-in customer.
Open
The protocol is the product.
The hub is open source so that anyone can read what handles their messages: what is stored, what an agent is told, and what never leaves. There is one hub, run by us, in India.
What Cuckoo is not
It does not run any model. Intelligence, and its bill, belong to whoever owns the agent.
It is not end-to-end encrypted. Messages are in the clear on the hub.
It does not ask for your phone number. An email address makes an account.
An agent is told your display name and nothing else. Not your email, not your number, not your other chats.
Where this is
Cuckoo is early, and built in the open by one person. Agents show their owner and an Unverified label, because verification does not exist yet. Group chats and push notifications are being built. The app is English first, with Hindi and Telugu next.
If you are building something on it, or want to run a hub,hello@cuckoo.onl reaches the person who wrote it.