Compare · camelRun by camelAI
Cloudflare Agents alternative
An AI agent for every user. Your tools stay in your Worker.
camelRun by camelAI is a hosted runtime for AI agents. As with a Durable Object, the same name always reaches the same agent. camelRun runs its loop and keeps its history, files and schedules, and your Cloudflare Worker serves its tools.
- Draft the Q4 roadmapalice
- Fix the flaky billing testbob
- AliceWhat's left for this week?
- Agentasleep
- Alice's message
- model call
- list_todos
- model call
- reply
Cloudflare Workers
Serve AI agent tools from Cloudflare Workers
Your Worker serves every user's tools from one route, and each call arrives signed with the user it's for. Make the agents from any backend: in TypeScript on Workers, or in Python.
import { serveTools } from "@camelai/run/server";
import { tool, schema } from "@camelai/run";
// The application's data: every to-do belongs to one person on one team.
const todos = [
{ id: "t1", owner: "alice", team: "acme", text: "Draft the Q4 roadmap", done: false },
{ id: "t2", owner: "bob", team: "acme", text: "Fix the flaky billing test", done: false },
{ id: "t3", owner: "alice", team: "globex", text: "Another team's to-do", done: false },
];
const tools = {
list_todos: tool({
description: "The current user's to-dos on their team",
input: schema.Object({}, { additionalProperties: false }),
// Who is asking comes from the runtime's signed token, never from the model's arguments.
execute: (_args, { identity }) => todos.filter(todo => todo.owner === identity!.user && todo.team === identity!.context.team),
}),
};
// A fetch handler: Cloudflare Workers, Bun and Deno serve it as is.
export default { fetch: serveTools(tools, { runtime: "https://run.camelai.com", tenant: "acme" }) };- tool_execution_start
- tool_execution_end
[{"id":"t1",
- Your chat route
- createAgentHandler is a standard fetch handler, so your app's Worker can serve each user's chat at /api/agent. Return the agent's key from authorize, and the chat reaches the same todos-alice.
app.post("/api/agent", c => handler(c.req.raw));- Your MCP server
- Built with Cloudflare's createMcpHandler? Check camelRun's signed token with runtimeAuth and keep the server where it is.
runtimeAuth(request, { runtime, tenant })- Your agent's reminders
- Give the definition the schedule built-in, and each user's agent sets its own wake-ups, the way alarms wake a Durable Object.
- Your AI Gateway
- Send each customer's model calls through your Cloudflare AI Gateway, on their own provider key.
Agents SDK to camelRun
How Cloudflare Agents SDK ideas map to camelRun
If you know the Agents SDK, you already know camelRun's shape. Each idea has a place in it, and camelRun runs that part for you.
Our Cloudflare story
We built on Cloudflare first
Our coding agent ran in Durable Objects before camelRun existed. What we built to keep its turns going became the runtime.
- Jul 2026
Our agent moves into Durable Objects
We took our coding agent off VMs and gave each chat thread its own Durable Object. It got cheaper and faster, and its long turns learned to pick up again after a restart.
- Sep 2026
We build camelRun
We built camelRun so a turn carries on through a deploy with nothing to write. camelCode and camelBot run on it now.
- Today
Your agents can run on it too
From a Cloudflare Worker or any other backend.
“I'd still start almost any project on Cloudflare Workers, because they're the fastest way I know to ship something.”
Agents SDK or camelRun for your Workers app
Pick the Agents SDK
Your app lives on Cloudflare, and you want the agent's class, loop, state and WebSockets in a Durable Object you deploy and run.
Pick camelRun
You want each agent's loop, history, files and schedules run for you, with Slack, Discord, Telegram and GitHub built in, while your Worker keeps the tools.
What Cloudflare developers ask about camelRun
What is Cloudflare Agents SDK?
Cloudflare's Agents SDK is an open source TypeScript library (the agents package on npm) for building AI agents on Durable Objects. The same name always reaches the same agent, with its own SQLite storage, WebSocket connections and scheduled tasks, running on Cloudflare.
What does agent sdk do?
An agent SDK gives your code an AI agent's parts: a loop that calls a model and tools, and memory between messages. Cloudflare's Agents SDK runs that loop in your Durable Objects. With camelRun, the runtime runs it and calls the tools in your code.
Can I use camelRun from Cloudflare Workers?
Yes. The TypeScript SDK runs on Cloudflare Workers, as well as Node, Bun and Deno. A Worker can make and run agents, serve their tools with serveTools, and serve each user's chat with createAgentHandler, since both are standard fetch handlers.
Is camelRun a Durable Objects alternative?
For AI agents, yes. As with a Durable Object, the same key always reaches the same agent, from any process. Its history and files live in camelRun, and it sleeps until a message, schedule or channel wakes it. Your Worker serves its tools.
What happens to a running agent when I deploy?
Your deploys leave it alone: the agent runs in camelRun, and tools your Worker serves over HTTP are safe through your deploys.
What does an AI agent per user cost on camelRun?
camelRun is prepaid: $0.01 for each hour an agent spends in a run and $0.10 per GB-month of storage. Tokens on your own provider keys cost nothing extra; on ours, it's the provider's price, no markup on tokens. Idle and sleeping agents cost only storage.
Give each user an AI agent
- ScheduleFriday morning check-in
- AgentMorning, Alice. The Q4 roadmap is still open.
Bring the agent-per-name idea you know from Durable Objects. camelRun runs every agent, and your Worker keeps its tools.
Read https://run.camelai.com/SKILL.md and set up camelRun in this project. Ask me what the agent should do.
Paste into Claude Code, Codex, Cursor or any coding agent. It asks what your agent should do, then builds it.
- camelRunThe hosted runtime for AI agents: keyed agents, tools in your code, channels and schedules.
- ConceptsKeyed agents, runs, events and where tools run.
- SDKsThe TypeScript SDK for Workers, Node, Bun and Deno, and the Python SDK.
- Managed agents comparedA map of the managed agent platforms, from Claude Managed Agents, OpenAI's Agents API and Google's Managed Agents to AWS, Microsoft Foundry, LangSmith, Letta and Temporal, placed by the models each runs and where it runs, with camelRun's comparisons.
- Vercel eve alternativecamelRun next to Vercel eve: define a durable AI agent in agent.yaml or a few lines of code, call it from Vercel, Workers, Bun, Deno, Node or Python, and connect Slack, Discord, Telegram and GitHub.
- Multi-tenant AI agentsGive every user or conversation of your app its own AI agent. Each tool call says whom it is for, browsers read only their own agent, and each customer can bring its own model keys.
- Code mode for AI agentsThe model writes JavaScript that calls the agent's tools, its MCP servers' included, many at once in one step, and searches catalogs of thousands of tools.
- AWS Bedrock AgentCore alternativecamelRun next to AWS Bedrock AgentCore: one meter for agent time instead of a meter for each part, Amazon Bedrock models on your own key, and a new home for Bedrock Agents.
- Background AI agentsAI agents that work while nobody is watching: they wake on a schedule, at times they set themselves, or when your code sends a message, then sleep until the next one.