Agent skill · Audited from source

Phone Calls

skill · vellum-ai/vellum-assistantMIT licenceAudited 14 Oct 2026 · source 19bc86343b63

★ 1,425pushed 1 day ago
✓SAFEGrade B · 89/100 · 14 Oct 2026 · 19bc863
1,425repo stars · whole vellum-ai/vellum-assistant

Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 19bc86343b63 and observed filesystem access and no hard-coded secrets. What it does: Make outgoing phone calls, receive incoming calls, and pull up past call transcripts

Ask an AI about this pageGChatGPTCClaudePPerplexityGeGeminiXGrok
More
Cite

Cite this page

ModelsAtlas. “Phone Calls (vellum-ai/vellum-assistant)”. Retrieved 14 Oct 2026. https://modelsatlas.com/skills/vellum-ai/phone-calls

Trust audit

Audit 0.4.1 · source read 14 Oct 2026

Trust score89/100✓SAFE B
0 critical0 high0 medium9 low0 info

SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 13,985 of 14,816 audited skills.

What the source does

  • FilesystemDeclared3 observations
  • NetworkNone observedNo outbound calls in the source
  • ShellNone observedNo commands run in the source
  • DependenciesPinnedNothing floats
  • SecretsNone foundNo keys in source

Five audit layers

LayerWhat we checkResultFindings
L0 ProvenanceRepo owner, licence, archive status, activityPASS5
L1 Static sourceSecrets, path traversal, supply chain, hidden codePASS4
L2 InstructionsPrompt injection, authority framing, hidden directivesPASS0
L3 InventoryThe files and declarations match the sourcePASS0
L4 SandboxRun in isolation and watch behaviourSKIPPED why0

Gates applied: no behavioural pass.

Findings (9)

LOWFilesystem / pathfs.traversal · tools/call-end.ts:1
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
import { executeCallEnd } from "../../../../tools/calls/call-end.js";
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · tools/call-start.ts:1
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
import { executeCallStart } from "../../../../tools/calls/call-start.js";
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · tools/call-status.ts:1
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
import { executeCallStatus } from "../../../../tools/calls/call-status.js";
Why
No further detail recorded for this rule.
Fix
—
LOWNetwork egressnet.raw_ip · references/TROUBLESHOOTING.md:26
F-04 Network egressCWE-200 · CWE-319Layer L1
- Check that the configured tunnel is still running. For ngrok, use `curl -s http://127.0.0.1:4040/api/tunnels`. For Velay, run `assistant gateway status --json` and confirm it reports a `tunnel` URL
Why
No further detail recorded for this rule.
Fix
—

Audit 0.4.1 · source sha 19bc86343b63 · 14 Oct 2026Report an issue or request a re-scan

Provenance

Who published it, and what the verdict is pinned to

  • Publishervellum-ai GitHub organizationOwner of the repository this skill is read from
  • Source foldervellum-ai/vellum-assistant/assistant/src/config/bundled-skills/phone-callsThe exact folder we audited
  • LicenceMITAs the repository states it
  • Commit pinned for this verdict19bc86343b63A new audit runs when the source changes
  • Repository statusNot archivedLast push 1 day ago
  • Sandboxed runNot runSkills are read, not executed; layer L4 is skipped

What it tells the agent

Full source on GitHub ↗

Its description: Make outgoing phone calls, receive incoming calls, and pull up past call transcripts

---
name: phone-calls
description: "Make outgoing phone calls, receive incoming calls, and pull up past call transcripts"
compatibility: "Designed for Vellum personal assistants"
metadata:
  emoji: "📞"
  vellum:
    display-name: "Phone Calls"
    category: "voice"
    includes:
      - "twilio-setup"
      - "public-ingress"
      - "elevenlabs-voice"
    activation-hints:
      - "Phone calling setup, Twilio config, placing/receiving calls"
      - "Do NOT improvise Twilio setup from general knowledge"
    avoid-when:
      - "Don't confuse with voice-setup (local PTT/mic) or guardian-verify-setup"
---

You are helping the user set up and manage phone calls via Twilio. This skill covers enabling the calls feature, placing outbound calls, receiving inbound calls, and interacting with live calls. Twilio credential storage, phone number provisioning, and public ingress are handled by the **twilio-setup** skill.

## External Identity

When speaking on behalf of your user during calls, refer to yourself as an "assistant" (not "AI assistant"). Use your user's name and pronouns from their user persona file (`users/<slug>.md`). Don't volunteer that you are an AI unless directly asked.

# Overview

The calling system connects both **outbound** and **inbound** voice calls over Twilio Media Streams: the assistant transcribes and synthesizes call audio itself using the STT provider telephony selects (`services.stt.roles.telephony` when set, otherwise `services.stt.provider`) and the TTS provider (`services.tts.provider`, default: ElevenLabs), so working API keys for both are required before calls can connect. After Twilio setup, the assistant prompts the user to choose a voice from a curated list of supported options.

# Initial Setup

Follow the steps below to ensure everything is prepared to make and receive phone calls.

## Step 1: Twilio Setup

Immediately load the `twilio-setup` skill to begin setup. That skill marks Twilio setup as started before its read-only checks, which gives managed deployments a chance to open the Velay tunnel WebSocket while the user finishes entering credentials and choosing a number. Twilio setup is a prerequisite to all subsequent steps.

## Step 2: Enable Calls

Once Twilio is confirmed to be fully configured, enable calls by updating the config:

```bash
assistant config set calls.enabled true
```

Verify:

```bash
assistant config get calls.enabled
```

## Step 3: Choose a Voice

Voice selection and tuning are handled by the `elevenlabs-voice` skill. Follow the instructions there to pick a curated voice, optionally set up an ElevenLabs API key for advanced selection, or tune voice parameters.

## Step 4: Verify Setup (Test Call)

Before making real calls, offer a quick verification. Suggest a test call to the user's own phone: **"Want to do a quick test call to your phone to make sure everything works? This is a good way to make sure everything works and that you like the way I sound."**

If they agree, ask for their personal phone number and place a test call with a simple task like "Introduce yourself and confirm the call system is working."

## Step 5: Guardian Verification

The final step is for the user to verify themselves so that they are recognized when they call you. It's also a great way for them to hear what you sound like and decide if they want you to use a different voice.

Load the `guardian-verify-setup` skill and follow the instructions for guardian verification over the `phone` channel. This will require the user to provide you with their phone number and then for you to give them a call. Say something like:

> Want to do a quick verification call now so that you can hear what I sound like and also so that I recognize your number when you call me in the future?
> I'll show a 6 digit code here in the chat and when you answer my call, enter it using your phone's keypad.

You can check their verification status with:

```bash
assistant channel-verification-sessions status --channel phone --json
```

After they are verified, ask them what they think of your voice and offer to let them change it. Load up the `elevenlabs-voice` skill and follow the instructions there to see what voices are available and how to update your configured voice. Say something like:

> Great, you're verified! What did you think of my voice? We can update it if you'd like.


# Making Outbound Calls

Use the `call_start` tool to place outbound calls. Every call requires:

- **phone_number**: The number to call in E.164 format (e.g. `+14155551234`)
- **task**: What the call should accomplish - this becomes the AI voice agent's objective
- **context** (optional): Additional background information for the conversation

### Example calls:

**Making a reservation:**

```
call_start phone_number="+14155551234" task="Make a dinner reservation for 2 people tonight at 7pm" context="The user's name is John Smith. Prefer a table by the window if available."
```

**Calling a business:**

```
call_start phone_number="+18005551234" task="Check if they have a specific product in stock" context="Looking for a 65-inch Samsung OLED TV, model QN65S95D. Ask about availability and price."
```

**Following up on an appointment:**

```
call_start phone_number="+12125551234" task="Confirm the dentist appointment scheduled for next Tuesday at 2pm" context="The appointment is under the name Jane Doe, DOB 03/15/1990."
```

### Caller identity in calls

Implicit calls always use the assistant's Twilio number (`assistant_number`). Only specify `caller_identity_mode` when the user explicitly requests a different identity for a specific call.

**Default call (assistant number):**

```
call_start phone_number="+14155551234" task="Check store hours for today"
```

**Call from the user's own number:**

```
call_start phone_number="+14155551234" task="Check store hours for today" caller_identity_mode="user_number"
```

**Decision rule:** Implicit calls (no explicit mode) always use the assistant's Twilio numbe

Excerpt, first 6,001 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.

Install

Pinned to the audited commit 19bc863

Download folder ↗
git clone https://github.com/vellum-ai/vellum-assistant
git -C vellum-assistant checkout 19bc86343b63

The author documents no install command, so this uses the repository directly. Our verdict covers commit 19bc86343b63 only.

Works in

The author has not said which agents this skill supports, and we have not tested it in any.

Audit history

Every audit, every source change

  1. ✓SAFE B 89 / 100

    first audit · source 19bc86343b63

README badge

For maintainers · shows the latest audit

ModelsAtlas: SAFE BMODELSATLASSAFE · B
[![ModelsAtlas: SAFE B](https://modelsatlas.com/skills/vellum-ai/phone-calls/badge.svg)](https://modelsatlas.com/skills/vellum-ai/phone-calls/)

The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.

Add this badge to your README

[![ModelsAtlas: SAFE B](https://modelsatlas.com/skills/vellum-ai/phone-calls/badge.svg)](https://modelsatlas.com/skills/vellum-ai/phone-calls/)

Questions about Phone Calls

What does the Phone Calls skill do?
An AI Assistant that’s easy to setup, does your work 24/7, knows your preferences and gets better over time.
Is Phone Calls safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Phone Calls access on my machine?
The audit observed that it reads or writes files. Each of those is consistent with what it says it does. Secrets in the source: none found.
How current is this page?
The grade is for one exact copy of the source (19bc86343b63), read on 2026-10-14. The repository is watched, and a new audit runs when it changes — this is the first audit.

Sources

Spotted something wrong? Report a correction · Methodology

Keep going in your AI

Opens with this page as the source. We add nothing else to the prompt.