Skip to main content

Zavu Functions

Zavu Functions let you run TypeScript in our cloud and wire it directly to your WhatsApp/SMS/Email senders. You write the code locally, run npx zavudev deploy, and seconds later your agent is live with tools backed by real business logic.
That’s the entire integration. One file. npx zavudev deploy. Done.

When to use Functions

AI agent with real actions

Customer asks something, the LLM decides which tool to call, your code runs, real data goes back as the answer.

Custom webhooks

Receive inbound from Stripe, GitHub, your own systems, then forward as a WhatsApp message.

Scheduled jobs

Daily report digests, reminder broadcasts, cleanup tasks.

Event-driven automation

React to message.inbound, broadcast.status_changed, etc. with custom logic without managing webhook receivers yourself.

How it relates to AI Agents

Zavu has two complementary ways to build agents: Functions can fully manage an AI Agent: the defineAgent call creates and keeps the agent config in sync with your code. Once your function declares defineAgent, the agent is “managed by the function” — the dashboard surfaces this and disables manual edits to prevent drift.

Mental model

  • Fully managed runtime. Each function runs in Zavu’s serverless cloud. No consoles to log into — npx zavudev deploy handles bundling, dependencies, and publishing.
  • Internal invocation. When the agent calls a tool, we use signed internal invocations — your function is not publicly exposed. No HTTP, no HMAC secrets to rotate, no DDoS surface.
  • Native event binding. Functions can also subscribe to Zavu events (message.inbound, broadcast.status_changed, etc) via triggers.
  • Auto-provisioned credentials. Every function gets a scoped ZAVUDEV_API_KEY in its environment so it can call our SDK without you handling key distribution.

Quick tour

Want your AI coding agent (Claude Code, Cursor, Copilot…) to write the function for you? Install Zavu’s Coding Agent Skills — the functions skill teaches it defineAgent, defineTool, npx zavudev deploy, and the full debug flow.
1

Install the CLI

2

Login (one time)

Opens your browser, lets you pick a project. The API key is saved to ~/.zavu/credentials.json and used by every later command.
3

Scaffold a function

Creates index.ts with defineAgent + defineTool boilerplate.
4

Set secrets

The agent will run on this WhatsApp sender. Get the ID from npx zavudev senders list.
5

Deploy

Bundle, upload, agent + tools synced to your sender.
6

Try it

Send a WhatsApp to the sender’s number. The agent answers, calls your tool handlers, returns real data.

Continue

Quickstart

Full step-by-step from zero to live agent in 10 minutes.

CLI reference

Every zavu command, flag by flag.

Define an agent

defineAgent API, providers, prompts, models.

Define tools

defineTool API, schemas, handlers, error handling.

Secrets

Environment variables encrypted at rest.

Triggers

Listen to Zavu events from your function.

Runtime versions

How pinning works, when to upgrade.

Examples

Complete restaurant booking agent, walked through.