From call
Use when the user wants to make a phone call, leave a voicemail, call a business, reach someone by phone, or navigate a phone menu. Triggered by "/call" followed by a phone number and purpose.
npx claudepluginhub varunr89/claude-marketplace --plugin callThis skill is limited to using the following tools:
Make phone calls that leave voicemails, navigate IVR menus, and warm-transfer live humans to your phone.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Performs token-optimized structural code search using tree-sitter AST parsing to discover symbols, outline files, and unfold code without reading full files.
Make phone calls that leave voicemails, navigate IVR menus, and warm-transfer live humans to your phone.
/call <phone_number> <purpose in natural language>
Examples:
/call 3606765437 ask about enrollment for my 2.5yo daughter
/call 2065551234 schedule a dentist appointment for next week
/call 8005551234 cancel my internet service
call-logs/ in current projectClaude Code (brain, makes all decisions)
+ Pipecat Server (sandboxed voice worker, FastAPI + Twilio WebSocket)
+ Twilio (telephony, AMD, DTMF, call transfer)
+ Azure OpenAI gpt-4o-mini-transcribe (STT, segmented)
+ Azure OpenAI TTS HD (voicemail audio, pre-generated)
Security boundary: Pipecat is a sandboxed low-privilege process. It handles audio only. Claude Code never receives raw call audio -- only text transcripts. This prevents caller prompt injection from reaching Claude Code's privileged tools.
requested → dialing → ringing → answered
│
┌───────────┼───────────┐
▼ ▼ ▼
voicemail ivr_nav human
│ │ │
▼ ▼ ▼
leaving_msg navigating transferring
│ │ │
└───────────┼───────────┘
▼
completed
Terminal reasons: voicemail_left, transferred, no_answer, busy, ivr_failed, call_dropped, transfer_failed, timeout, error
Run the setup script:
${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh
This will:
${CLAUDE_PLUGIN_ROOT}/config.jsonConfig stored at ${CLAUDE_PLUGIN_ROOT}/config.json:
{
"twilio": {
"account_sid": "ACxxxxxxxx",
"auth_token": "xxxxx",
"from_number": "+1XXXXXXXXXX"
},
"azure_openai": {
"endpoint": "https://xxx.openai.azure.com",
"api_key": "xxxxx",
"tts_model": "tts-hd",
"tts_voice": "onyx",
"stt_model": "gpt-4o-mini-transcribe"
},
"transfer_to": "+16083207152",
"ngrok_auth_token": "xxxxx",
"pipecat_port": 8765
}
Saved to <project>/call-logs/YYYY-MM-DD-xxxx<last4>.md:
# Call: (360) ***-5437
**Date:** 2026-03-22 2:34 PM
**Purpose:** Ask about enrollment for 2.5yo
**Outcome:** Voicemail left
**Duration:** 45 seconds
## Transcript
[0:00] IVR: "Thank you for calling..."
[0:08] Agent: Sent DTMF 1 (enrollment)
[0:15] Voicemail: "Please leave a message after the tone"
[0:18] Agent: Played voicemail message
<Say> (robotic but works)Every call produces a log. No call ends silently.
~$0.03-0.05 per call (Twilio minutes + AMD + Azure OpenAI tokens).
The skill logic is in $ARGUMENTS:
${CLAUDE_PLUGIN_ROOT}/config.json