For Developers

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.

$npm install -g lua-cli
import { LuaTool } from "lua-cli";
import { z } from "zod";

export const getWeather = new LuaTool({
  name: "getWeather",
  description: "Get current weather for a location",
  parameters: z.object({
    city: z.string().describe("City name"),
    units: z.enum(["celsius", "fahrenheit"]).default("celsius"),
  }),
  execute: async ({ city, units }) => {
    const response = await fetch(
      `https://api.weather.com/v1/current?city=${city}&units=${units}`
    );
    return response.json();
  },
});

Modern developer
experience

Everything you expect from a modern framework. TypeScript, testing, live reload, and one-command deployments.

Real TypeScript

Not YAML or JSON configs. Actual code with full IDE support.

// Type-safe tool definitions
export const myTool = new LuaTool<Input, Output>({...})

Zod Validation

Schema validation built-in. Parameters are type-safe at runtime.

parameters: z.object({
  email: z.string().email(),
  age: z.number().min(18)
})

Live Reload

Instant feedback during development. No restart needed.

$ lua dev
✓ Watching for changes...
✓ Agent updated

One-Command Deploy

Push to production with a single command. We handle the rest.

$ lua deploy
✓ Building...
✓ Deploying to production
✓ Live at agent.heylua.ai

Ready to start
building?

Get from zero to your first deployed agent in under 5 minutes.

Start Building
$lua init my-agent
$lua dev
Agent running at localhost:3000