# Coding Agent Skills

> Give your AI coding agent intelligent context about the Zavu API with pre-built skills — works with 40+ agents

Coding Agent Skills provide intelligent, contextual knowledge about the Zavu API directly inside your favorite AI coding agent. Instead of searching docs or copying code snippets, your agent automatically understands channels, message types, webhook patterns, and API conventions — and writes correct code on the first try.

> **Info:**
> Skills provide **context and decision-making intelligence**. To act on the API, the agent uses the [CLI](https://www.zavu.dev/docs/guides/cli/overview): skills tell it *what to do*, the CLI *does it*.

## Supported Agents

Skills work with **40+ AI coding agents**. The following are always included:

  - **Amp**
  - **Cline**
  - **Codex**
  - **Cursor**
  - **Gemini CLI**
  - **GitHub Copilot**
  - **Claude Code**
  - **Kimi Code CLI**
  - **OpenCode**
  - **Warp**

Plus 30+ additional agents including Antigravity, Augment, CodeBuddy, Command Code, Continue, Cortex Code, and more. During installation you can select which agents to install to.

## Install

```bash
npx skills add zavudev/zavu-skills
```

The installer will prompt you to select which agents you want to install the skills to. Your agent will automatically load relevant skills based on what you're building.

## Available Skills

Twelve skills ship in the repo. The agent-building ones come first, because
they are the ones that write code.

  - **Functions**: `defineAgent` and `defineTool`, the deploy loop, triggers, secrets, and how to debug an execution
  - **Voice Agent**: Agents that answer and place calls — voice config, transcripts, tools, human handoff
  - **AI Agent**: The imperative path: configure an agent over the REST API for no-code and dashboard setups
  - **Eve Compat**: Deploy an eve-layout project onto Zavu, or import it straight from GitHub
  - **Send Message**: Channel selection decision tree, every message type (SMS, WhatsApp, Email, Telegram, Instagram, Messenger, Voice), error patterns
  - **Channel Setup**: How accounts, senders and channels relate — what you connect, what bills, and which sender to send from
  - **Webhook Setup**: Webhook configuration, signature verification code (TypeScript + Python), retry policy
  - **WhatsApp Templates**: Template creation, Meta approval workflow, OTP authentication, button types
  - **Broadcast Campaign**: Full broadcast lifecycle — create, add contacts, send, monitor progress, handle review
  - **Contacts Management**: Multi-channel contacts, channel operations, merge suggestions, phone introspection, email validation
  - **Phone Numbers**: Search available numbers, purchase, regulatory requirements, sender assignment
  - **Zavu Rules**: Always-loaded ambient context — SDK ecosystem, auth, conventions, business rules

## How It Works

Skills are markdown files that your coding agent loads automatically based on your task. When you ask it to "send a WhatsApp message" or "set up webhooks", it already knows:

- Which channel to use based on message type and recipient
- The correct TypeScript SDK patterns, and the REST call for any other language
- Business rules like the WhatsApp 24h window and what a new account can send
- Error codes and how to handle them
- API constraints (button limits, pagination patterns, etc.)

### Example: Channel Selection

When you ask your agent to send a message, the `send-message` skill gives it this decision tree:

```
Is recipient an email address?
  → channel = "email"
Is message type non-text (image, video, buttons, etc.)?
  → channel = "whatsapp" (auto-selected)
Need voice call / TTS?
  → channel = "voice"
Want Zavu to pick the channel?
  → channel = "auto" (first channel the sender has configured
    that the recipient's address can receive)
Default?
  → channel = "sms"
```

Your agent uses this logic to pick the right channel without you specifying it.

## Skills + CLI

For the best experience, install the skills and sign the CLI in:

```bash
# Skills: context and intelligence (works with 40+ agents)
npx skills add zavudev/zavu-skills

# CLI: acts on the API. Opens the browser once; in CI, set ZAVUDEV_API_KEY instead
npx zavudev login
```

With both, your coding agent can:

1. **Decide** the right approach using skills (channel selection, template vs. free-form, etc.)
2. **Act** on your account with the CLI: create senders, send messages, deploy functions
3. **Write** production-ready code using correct SDK patterns

The [MCP server](https://www.zavu.dev/docs/tools/mcp-server) is being rebuilt and does not work in its
default configuration today.

## What You Can Build

Once skills are installed, try asking your agent:

```text
"Build a Next.js API route that sends order confirmation via WhatsApp
template, with SMS fallback for users outside the 24h window"
```

```text
"Create an Express server that receives Zavu webhooks, verifies
signatures, and stores inbound messages in Postgres"
```

```text
"Build a campaign manager that reads contacts from a CSV, creates
a broadcast, and monitors delivery progress"
```

```text
"Set up an AI agent with a product FAQ knowledge base that responds
to WhatsApp messages and can look up order status via webhook"
```

```text
"Set up my Zavu project: buy a US phone number, create a sender,
configure webhooks for inbound and delivery events, and create
an order confirmation WhatsApp template"
```

## Skill Details

### Always-Loaded: Zavu Rules

The `zavu-rules` skill loads automatically in every conversation. It provides:

- **SDK init pattern** for TypeScript, and what to use from other languages
- **Authentication** conventions (`ZAVUDEV_API_KEY`, key prefixes `zv_live_`/`zv_test_`)
- **E.164 phone format** and channel enum values
- **Cursor-based pagination** pattern
- **Error handling** with `APIError`
- **Key business rules** (WhatsApp 24h window, sending limits for new accounts, URL verification)

### On-Demand Skills

Other skills load when your agent detects they're relevant to your task:

| Skill | Triggers When You... |
|-------|---------------------|
| `functions` | Build Zavu Functions: `defineAgent`, `defineTool`, `npx zavudev deploy`, debug executions |
| `voice-agent` | Build an agent that answers or places phone calls |
| `ai-agent` | Configure AI agents through the imperative API (no-code / dashboard setups) |
| `eve-compat` | Have an eve-layout project and want it answering on Zavu's channels |
| `send-message` | Build code to send messages via any channel |
| `channel-setup` | Wire up a sender, connect a channel, or figure out which sender to send from |
| `webhook-setup` | Set up webhook endpoints or signature verification |
| `whatsapp-templates` | Create or manage WhatsApp templates |
| `broadcast-campaign` | Work with bulk messaging or campaigns |
| `contacts-management` | Manage contacts, channels, or merge logic |
| `phone-numbers` | Search, purchase, or manage phone numbers |

## Requirements

- Any supported AI coding agent (Cursor, Claude Code, Copilot, Cline, etc.)
- Node.js 18+ (for `npx skills add`)
- Optionally: `ZAVUDEV_API_KEY` environment variable, for the CLI in a non-interactive environment

## Source Code

The skills are open source. Contributions welcome:

  - [GitHub Repository](https://github.com/zavudev/zavu-skills): View source, report issues, or contribute new skills
  - [CLI](https://www.zavu.dev/docs/guides/cli/overview): What the agent runs to act on your account
