Back to Skills
    🦞

    vapi-skill

    Use this skill when you need to manage (assistants), calls, phone

    By @colygon
    View on GitHub
    SKILL.md
    # Vapi (vapi.ai) β€” OpenClaw Skill
    
    Use this skill when you need to manage **Vapi voice agents** (assistants), calls, phone numbers, tools, and webhooks from an OpenClaw agent.
    
    This skill is **API-first** (Vapi REST) and optionally integrates with the **Vapi CLI** for MCP docs / local workflows.
    
    ## What you can do
    
    - Create/update/list **assistants**
    - Start/inspect/end **calls**
    - Manage **phone numbers**
    - Create/manage **tools** (function calling)
    - Configure **webhooks** and inspect events
    
    ## Required secrets
    
    Set one of:
    
    - `VAPI_API_KEY` (recommended) β€” Vapi dashboard API key.
    
    ### How to provide the key (recommended)
    
    - Store as a Gateway secret/env var (preferred), or
    - Export in your shell before running helper scripts.
    
    Never paste the key into public logs.
    
    ## Endpoints
    
    Base URL:
    
    - `https://api.vapi.ai`
    
    Auth:
    
    - `Authorization: Bearer $VAPI_API_KEY`
    
    API reference:
    
    - https://api.vapi.ai/api (Swagger)
    
    ## Tooling options
    
    This skill supports **both** approaches; you can decide later per deployment.
    
    - Set `VAPI_MODE=api` to prefer REST (default)
    - Set `VAPI_MODE=cli` to prefer the Vapi CLI (interactive)
    
    ### Option A β€” REST via helper script (works everywhere)
    
    This repo includes a tiny Node helper:
    
    - `skills/vapi/bin/vapi-api.mjs`
    
    Examples:
    
    ```bash
    # list assistants
    VAPI_API_KEY=... node skills/vapi/bin/vapi-api.mjs assistants:list
    
    # create assistant
    VAPI_API_KEY=... node skills/vapi/bin/vapi-api.mjs assistants:create \
      --name "Claw Con Concierge" \
      --modelProvider openai --model gpt-4o-mini \
      --voiceProvider 11labs --voiceId rachel
    
    # start an outbound call (example shape; see swagger for required fields)
    VAPI_API_KEY=... node skills/vapi/bin/vapi-api.mjs calls:create \
      --assistantId asst_xxx \
      --to "+14155551234" \
      --from "+14155559876"
    ```
    
    ### Option B β€” Vapi CLI (good for interactive ops)
    
    If `VAPI_MODE=cli`, prefer using the CLI for management tasks and fall back to REST if the CLI isn’t installed.
    
    Docs:
    - https://docs.vapi.ai/cli
    - https://github.com/VapiAI/cli
    
    Install:
    
    ```bash
    curl -sSL https://vapi.ai/install.sh | bash
    vapi login
    ```
    
    ### Option C β€” MCP docs server for your IDE
    
    This improves IDE assistance (Cursor/Windsurf/VSCode):
    - https://docs.vapi.ai/cli/mcp
    
    ```bash
    vapi mcp setup
    ```
    
    ## Agent usage guidance
    
    When the user asks for Vapi changes:
    
    1. Clarify **scope**: assistants vs phone numbers vs webhooks vs tool calls.
    2. Prefer **read-only** queries first (list/get) before destructive changes.
    3. When creating an assistant, ask for:
       - assistant name
       - model provider/model
       - voice provider/voice id
       - tools/function calling needs
       - webhook URL (if using server events)
    4. When initiating calls, confirm:
       - to/from numbers
       - assistantId
       - compliance constraints (recording, consent)
    
    ## Files in this skill
    
    - `skills/vapi/SKILL.md` β€” this file
    - `skills/vapi/bin/vapi-api.mjs` β€” minimal REST helper
    
    ## Sources
    
    - Vapi docs intro: https://docs.vapi.ai/quickstart/introduction
    - Vapi CLI: https://github.com/VapiAI/cli
    - Vapi MCP: https://docs.vapi.ai/cli/mcp
    - Vapi API (Swagger): https://api.vapi.ai/api
    - Example server (Node): https://github.com/VapiAI/example-server-javascript-node
    - OpenClaw: https://github.com/openclaw/openclaw