Build agents with real TypeScript.
Full control over your agent logic. Write TypeScript tools, test locally, deploy globally. No YAML configs, no vendor lock-in.
A modern developer experience.
Everything you expect from a modern framework. TypeScript, testing, live reload, and one-command deployments.
01
Real TypeScript.
Not YAML or JSON configs. Actual code with full IDE support.
02
Zod validation.
Schema validation built-in. Parameters are type-safe at runtime.
03
Test interactively.
Run any tool with real inputs from the CLI, then chat with the agent in a sandbox — before anything ships.
04
One-command deploy.
Push to production with a single command. We handle the rest.
A small set of primitives. A whole agent.
Skills, tools, jobs, webhooks, MCP servers, and message processors — every piece is a typed class, and every agent ships with the platform APIs built in.
LuaSkill
Group tools with the context that steers them.
new LuaSkill({ name, context, tools })
LuaTool
A typed capability — schema in, work out.
class CheckOrder implements LuaTool { … }
LuaJob
Scheduled work. No conversation required.
schedule: { type: "cron", expression: "0 9 * * *" }
LuaWebhook
HTTP endpoints your agent reacts to.
new LuaWebhook({ name, execute })
LuaMcpServer
Mount MCP servers as native tools.
new LuaMcpServer({ … })
PreProcessor / PostProcessor
Shape every message on the way in and out.
new PreProcessor({ priority, execute })
Batteries included — platform APIs on every agent:
await Data.search("movies", "mind-bending thriller", 10, 0.7)
Write the tool once. Ship it everywhere.
Channels are the front doors to your agent. Connect one and the rest are configuration, not code.
Start from a working agent.
Open examples you can clone, edit, and deploy — support desks to WhatsApp OTP flows.
Start building today.
Comprehensive documentation, examples, and community support to help you ship faster.
Ready to start building?
Get from zero to your first deployed agent in under 5 minutes.