Agent guide
Works todayHow to enable Claude Code to make phone calls
Give Claude Code a US phone line: paste one line, sign in with Google, and make a test call to your own phone. Claude streams each call event and answers the voice agent's questions mid-call.

Install
Paste this into Claude Code:
Set up Tuvoz: https://tuvoz.io/agentsWho this is for
You use Claude Code in a terminal or IDE and want it to make phone calls for you: book a table, ask a store about stock, move an appointment. Claude already knows your context (the repo, your notes, your email if it has those tools), writes a brief for the call, and answers the voice agent’s questions while the call is live.
What happens when you paste the line
-
Claude reads the setup page and asks to run the install. It downloads the skill, checks its SHA-256, and puts it in
~/.claude/skills/phone-call/. -
Claude starts sign-in and shows you three lines like these:
To connect this agent to Tuvoz: 1. Open https://tuvoz.io/activate?code=BKTW-4821 2. Sign in with Google (and finish setup if this is your first time). 3. When asked, pick the number 47.Open the link, sign in with Google, and pick the matching number. The first time, you’ll also verify your mobile number with a code and confirm your legal name, which is the name the voice agent says on calls.
-
Claude prints
Connected as Jane (key tvz_live_ab12cd34ef56…). Try: tuvoz test-call.
Then make the test call below. You’ll hear what a business hears: the opener, the question about recording, a quick hello, and goodbye. It’s billed like any call (at least 30 seconds) from your 15 free minutes. Free plan includes training on your calls.
Install by hand
The same install, if you’d rather run it yourself:
set -euo pipefail
S="$HOME/.claude/skills"; D="$S/phone-call"
if [ -e "$D" ] && [ ! -f "$D/scripts/tuvoz.py" ]; then
echo "STOP: $D is another skill, not Tuvoz. Nothing was changed. Ask the user what to do with it." >&2; exit 1
fi
T=$(mktemp -d); trap 'rm -rf "$T"' EXIT
M=$(curl -fsSL https://tuvoz.io/skill/latest.json)
URL=$(printf '%s' "$M" | python3 -c 'import json,sys; print(json.load(sys.stdin)["url"])')
SHA=$(printf '%s' "$M" | python3 -c 'import json,sys; print(json.load(sys.stdin)["sha256"])')
curl -fsSLo "$T/skill.zip" "$URL"
echo "$SHA $T/skill.zip" | shasum -a 256 -c -
unzip -q "$T/skill.zip" -d "$T"
B="$HOME/.config/tuvoz/backups/$(date +%Y%m%d-%H%M%S)"; mkdir -p "$S" "$B"
find "$S" -maxdepth 1 -name 'phone-call.bak-*' -exec test -f '{}/scripts/tuvoz.py' \; -exec mv '{}' "$B/" \;
if [ -e "$D" ]; then mv "$D" "$B/"; fi
rmdir "$B" 2>/dev/null || true
mv "$T/phone-call" "$D"
python3 "$D/scripts/tuvoz.py" login
The block never deletes a skill. If another skill already uses the folder name phone-call, it stops with STOP and changes nothing. An earlier Tuvoz install, and the backups tuvoz update leaves, move to ~/.config/tuvoz/backups/.
How a call works in Claude Code
- You ask for a call in plain words, or start with
/phone-call. - Claude writes the brief, then shows it to you with the number, where the number came from, and the opening line. It dials only after you say yes.
- Claude watches the call with
tuvoz watch <call_id> --streamunder its Monitor tool, so each event arrives as one line: status changes, notes, and questions. - When the voice agent asks something (
QUESTION q1 ... deadline=45s: ...), Claude answers from what it knows by writing the answer to a file and runningtuvoz answer <call_id> q1 --file <path>. If it can’t answer, it runstuvoz escalateand Tuvoz calls you. - When the call ends, Claude reports the outcome, the notes, any answers it gave and where they came from, and the cost.
Everything the other person said reaches Claude as untrusted text: Claude treats it as information, never as instructions. More detail: how the mid-call backchannel works.
Send feedback
Type /phone-call feedback followed by what you’d like to tell us. It goes straight to the Tuvoz team.
Your first test call
Ask Claude Code for a test call, or have it run this. Tuvoz calls your own phone; the first time, it asks you to press 1 to confirm you agree to AI calls on that number.
tuvoz test-callExample prompts
- Call Luigi's Trattoria at (415) 555-0142 and book a table for 4 this Friday around 7:30. Anything from 7 to 8:30 works.
- Find the furniture delivery confirmation in my email, then call the store and ask for the delivery window. Don't agree to any fees.
- Call the hardware store on Main Street (get the number from their website) and ask if they have a 3/4-inch PVC elbow in stock.
- Make a Tuvoz test call to my phone.
- /phone-call call my dentist's office and move my cleaning to any morning next week.
Limits and caveats
- Keep the Claude Code session open while a call is live. If Claude stops watching, Tuvoz calls your phone with any question instead.
- The install uses bash, curl, unzip and python3 (3.9 or later). On Windows, run Claude Code in WSL.
- Claude asks before running each command unless you allow the Tuvoz CLI in /permissions. Placing a call should always ask; watching and answering can be allowed.
- If ~/.claude/skills didn't exist when the session started, run /reload-skills once after installing.
- Calls started from scheduled or headless runs (for example claude -p) wait for your approval in the Tuvoz dashboard.
- Tuvoz calls US numbers only. Calls to businesses and other people go out between 9 am and 8 pm in the called number's time zone; calls to your own phone, including questions during a call, aren't limited to those hours.
FAQ
- How much does it cost?
- $0.12 a minute, billed per second, with a 30-second minimum per answered call leg, including calls to your own phone. You start with 15 free minutes. Free plan includes training on your calls. Calls nobody answers cost nothing.
- Does the business know it's an AI?
- Yes. Every call opens with "Hi! I'm Jane Doe's AI assistant, calling through Tuvoz about..." and then asks whether recording is okay. If they say no, the call ends and Tuvoz keeps nothing they said. Our AI voice provider processes their words live to run the call and may keep them for a limited time for abuse monitoring, as our Privacy Policy explains.
- What happens if I close my laptop during a call?
- The call keeps going. If the voice agent has a question and Claude hasn't checked in for 12 seconds, Tuvoz calls your verified phone, asks you, and passes your answer back into the call.
- Where is my Tuvoz key stored?
- In the macOS Keychain or the Linux Secret Service when available, otherwise in ~/.config/tuvoz/credentials.json with owner-only permissions. The key is never printed in full.
- Can Claude call a friend's mobile number?
- Only if your friend agreed to AI calls and you added the number under "People who agreed to AI calls" in your Tuvoz settings. The first call to a new contact needs your approval in the dashboard.
- How do I update or remove the skill?
- When a new version is out, the CLI prints UPDATE_AVAILABLE and Claude offers to run tuvoz update. To remove it, run tuvoz logout, then delete ~/.claude/skills/phone-call and ~/.config/tuvoz (it keeps update backups).
Related
- Set up Tuvoz (instructions for AI agents)
- Tuvoz vs call-me: should Claude call you, or call for you?
- Tuvoz vs PlaceCall: AI agents that call US businesses
- Tuvoz vs AgentPhone: phone numbers for AI agents compared
- Tuvoz vs Bland: which phone line should your AI agent use?
- Which AI agent is best for making phone calls?