§02 · Claude Skill

A skill that knows when to reach for Converlane.

A drop-in plugin Skill following Anthropic's bundle format. Once installed, Claude reads SKILL.md on demand — when the user's intent matches, the skill activates and walks Claude through the right gateway call without you typing a single curl.

What ships in the bundle

skills/vaanivoice/text
skills/vaanivoice/
├── SKILL.md                  ← frontmatter + body
└── references/
    ├── api.md                ← every endpoint, request/response shapes
    ├── examples.md           ← 8 concrete curl recipes
    └── error-codes.md        ← every status the gateway returns

Frontmatter

The activation logic lives in YAML frontmatter at the top of SKILL.md. Claude reads the description field and matches user phrasings against it.

SKILL.md (frontmatter)yaml
---
name: vaanivoice
description: Use Converlane from any Claude session — open WebSocket voice sessions, create LiveKit meeting rooms with or without Vikash, manage API keys, query usage. Activate when the user asks to place a call, build a voice agent, schedule a meeting, or analyse call data.
---

Install — globally for your user

Terminalbash
mkdir -p ~/.claude/skills
cp -R skills/vaanivoice ~/.claude/skills/

Available in every Claude Code session, regardless of project.

Install — scoped to one project

Terminalbash
mkdir -p .claude/skills
cp -R skills/vaanivoice .claude/skills/

Only loads when Claude is started inside this repo. Use this when the project is a Converlane integration and you want teammates to get the skill automatically.

Phrasings that activate the skill

The description trains Claude on intent. These are the canonical triggers — anything semantically close will also fire.

  • "Open a voice session with my Converlane agent."
  • "Mint a textvoice/voicebot WebSocket so I can plug it into my own UI."
  • "Create a meeting room and bring Vikash in to take notes / ask follow-ups."
  • "Spin up a quick LiveKit room I can share — no AI needed."
  • "Help me wire Converlane into my Node/Python/Next.js app."
  • "Show me my last 30 days of API usage."

What Claude does next

  1. Reads VAANI_API_KEY from env (or asks you where to find it). Never echoes the plaintext back.
  2. Picks the right surface: voice + low-latency UX → textvoice/voicebot; multi-party → meeting (no AI) or meeting-agent (with Vikash).
  3. Calls the gateway with a small JSON body and surfaces the response shape (ws_url + ws_token or room_url + host_token).
  4. Handles the well-known errors — 401 / 402 / 403 / 429 / 502 — without leaking your key.

Don’t use it for

  • Mid-call control — DTMF / interrupt / voice swap happen over the WS protocol once connected.
  • Billing setup — top-ups, autopay enrol, refunds.
  • Onboarding / approval — new accounts need approval before they can mint keys.
  • Outbound PSTN dialling — that surface lives at /api/calls and is gated by Twilio number ownership.
  • Flow editing— flows are managed in the dashboard’s flow-builder.

Source

The bundle lives at skills/vaanivoice/ in the Converlane monorepo. The reference files are plain Markdown — open a PR to extend them.