Quickstart Guides
Get started in Python, TypeScript, Spring Boot, or via MCP for Claude / Cursor / Windsurf. Deploy the full stack with Docker in under 5 minutes.
Get started
Enforce hard limits on agent spend, risk, and actions before execution.
Open protocol. Apache 2.0.
4,850+ package installs
Your agent spent $4,200 while you slept.
It hit an ambiguous error, retried with expanding context, and looped 240 times. Provider caps fired the next morning — blocking every agent on the account.
Cap it at $15 per run. →200 emails. $1.40 in tokens. $50K in damage.
A prompt regression turned welcome emails into collections notices. The agent stayed within its token budget the entire time. No spending limit would have caught it.
Gate actions, not just spend. →One customer's runaway just blocked your other 500.
Customer #47 triggered a research loop. Their session burned through the shared API budget. The provider cap fired and blocked every tenant on the platform.
Isolate every customer. →Budget, risk, and action authority across your AI stack.
@cycles reserves budget before the action runs. No remaining cycles — no action.
from runcycles import cycles
@cycles(estimate=5000, action_kind="llm.completion", action_name="openai:gpt-4o")
def ask(prompt: str) -> str:
return openai.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
).choices[0].message.contentMost teams reach out for one of four reasons — they all land in the same inbox, and a founder reads every one.
Found a bug or have a concrete technical issue? Open a GitHub issue instead — it’s faster for everyone.