> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wassist.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Examples

> Runnable webhook receivers, an eve agent and Wassist Apps you can deploy or copy.

Each example is a small, self-contained project you can clone and run. Most have a one-click deploy button.

## Webhooks

Handle every message in your own code. Pair these with [webhook routing](/quickstart/webhook-routing).

<CardGroup cols={2}>
  <Card title="Cloudflare Worker receiver" icon="cloudflare" iconType="brands" href="https://github.com/wassist/sdk/tree/main/examples/webhook-receiver-cloudflare">
    A single-file Worker that verifies signatures with Web Crypto and replies to each routed message with `messages.send`.

    `@wassist/sdk` · Cloudflare Workers · one-click deploy
  </Card>

  <Card title="Vercel eve agent" icon="robot" href="https://github.com/wassist/eve/tree/main/examples/quickstart-whatsapp">
    A minimal [eve](https://github.com/vercel/eve) agent with the `@wassist/eve` channel. It handles signatures, typing indicators and replies for you.

    `@wassist/eve` · Vercel · one-click deploy
  </Card>
</CardGroup>

[![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/wassist/sdk/tree/main/examples/webhook-receiver-cloudflare\&secrets=WASSIST_API_KEY,WASSIST_WEBHOOK_SECRET)
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FWassist%2Feve\&root-directory=examples%2Fquickstart-whatsapp\&project-name=wassist-eve-quickstart\&env=WASSIST_API_KEY,WASSIST_WEBHOOK_SECRET)

After deploying, create a webhook pointing at the deployed URL under **Settings → Developers → Webhooks** (for eve, add `/eve/v1/wassist`). Then route a number to it, or your own sandbox chat.

## Apps (alpha)

MCP servers packaged as [Wassist Apps](/guides/build-an-app). Your agents call their tools, and each tool call arrives with signed Wassist context.

<CardGroup cols={2}>
  <Card title="App MCP server" icon="server" href="https://github.com/wassist/sdk/tree/main/examples/app-mcp-server">
    The smallest Wassist-aware app: an Express server with two loyalty tools (`get_points`, `redeem`). It verifies the context token, works out whether the call came from WhatsApp or a dashboard test, and has a signed setup page.

    `@wassist/sdk/apps` · Express · `auth: none`
  </Card>

  <Card title="Google Calendar Booking" icon="calendar" href="https://github.com/wassist/google-calendar-app">
    A complete, production-style app on Cloudflare Workers. Customers check availability, then book, reschedule and cancel appointments in a business's Google Calendar. It includes a setup page with Google OAuth, and per-customer ownership of bookings.

    `@wassist/sdk/apps` · Cloudflare Workers + KV · setup page
  </Card>
</CardGroup>

To try one, run it behind an HTTPS tunnel, create an app under **Settings → Developers → Apps**, paste the manifest (or set the MCP URL and **Who logs in: Nobody**), then **Sync tools → Publish → Install**:

```bash theme={null}
cp .env.example .env    # WASSIST_CLIENT_ID and WASSIST_CLIENT_SECRET from your app
npm install
npm start
cloudflared tunnel --url http://localhost:3000
```

Then ask your agent something that needs the tool, for example *"How many points do I have?"*. Try it both in **Test Chat** on the agent's page and on the sandbox number.

## Tools

<CardGroup cols={2}>
  <Card title="Wassist CLI" icon="terminal" href="https://github.com/wassist/cli">
    Send and stream WhatsApp messages from your terminal. `wassist messages listen -i` is handy while you build a webhook or tool.
  </Card>

  <Card title="TypeScript SDK" icon="code" href="https://github.com/wassist/sdk">
    Typed client for the REST API, webhook verification and `WassistApp` helpers.
  </Card>
</CardGroup>
