1
Install the CLI and sign in
Install Sign in with your email: the first command sends you a six-digit code, the second saves a renewable user session on this machine.
lua-cli globally.2
Create a project
lua init creates an agent on the platform and a TypeScript project bound to it. Pass the agent name and an organization ID (lua agents lists yours); without flags, lua init asks for both.Output
src/index.ts with a LuaAgent and a persona template, lua.skill.yaml holding the agent ID (the CLI owns this file), and package.json with dependencies installed. The project structure page lists the rest.3
Add a weather tool
A tool is a class with a name, a description, a zod input schema, and an A skill groups tools and carries the Register the skill on the agent and replace the persona template with one sentence; only what the agent references is compiled.
execute function. This one geocodes the city, then reads Open-Meteo’s current weather; no API key is needed.src/skills/tools/GetWeatherTool.ts
context the model reads to decide when to call them.src/skills/weather.skill.ts
src/index.ts
4
Test the tool
lua test runs the tool’s execute function with the input you pass; no model is involved, so the output is exactly what the tool returns. --name is the tool name.Output
5
Chat in the sandbox
lua chat -e sandbox compiles your code and uploads it as sandbox versions the platform runs, so the model can call your tool without a release. The first run after you add a skill registers it on the server and may answer without it (Skipping skill weather - no skillId found in lua.skill.yaml); run the command again. -t starts a fresh thread so earlier test conversations don’t leak into this one.Output
6
Release it
lua push all uploads a version of the skill, which changes nothing for end users, and of the persona, which is served at once; lua version create snapshots the agent; lua version promote makes that snapshot live. promote accepts 1 or v1.Output
Output
Ask the production agent the same question. It should answer with the current temperature, which shows the promoted version is live and calling your tool.
Output
Next steps
Build a support agent
Continue this project: two data-backed tools, a persona, knowledge, a webhook, a job, and the web widget.
Connect a channel
Put the agent on the web widget, WhatsApp, Slack, email, or a phone number.
Add knowledge
Upload documents and turn on Knowledge Search, with no release needed.
About agents
What an agent contains and how the compiler turns your project into one.
CLI reference
Every command, flag, exit code, and where credentials come from.

