vercel-labs/emulate

twilio

Emulated Twilio REST APIs for local development and testing. Use when the user needs to test Twilio Messaging, Verify, Voice, phone numbers, webhooks, status callbacks, inbound SMS simulation, or Twilio SDK integrations without hitting the real Twilio service.

First seen Jun 26, 2026

Installation

$ npx skills add vercel-labs/emulate --skill twilio

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from vercel-labs/emulate · top by installs.

npx skills add vercel-labs/emulate

Browse all from vercel-labs/emulate

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1.7K
License LICENSE
Default branch main
Open issues 9
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsBash(npx emulate:*)

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,540 B
  • docs SUMMARY.md 274 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 46 installs

SKILL.md

Twilio API Emulator

Stateful Twilio REST emulation with seeded accounts, Auth Tokens, API keys, incoming phone numbers, Programmable Messaging, Messaging Services, Verify, basic Voice calls, Conversations REST resources, signed webhooks, local simulator routes, and an inspector.

Start

npx emulate --service twilio

Default URL: http://localhost:4013 when all services are started, or http://localhost:4000 when Twilio is the only service.

Defaults

TWILIO_ACCOUNT_SID=AC00000000000000000000000000000000
TWILIO_AUTH_TOKEN=twilio_test_auth_token
TWILIO_API_KEY=SK00000000000000000000000000000000
TWILIO_API_SECRET=twilio_test_api_secret
TWILIO_PHONE_NUMBER=+15551234567
TWILIO_VERIFY_SERVICE_SID=VA00000000000000000000000000000000

URL Mapping

Real Twilio URL Emulator URL
https://api.twilio.com/2010-04-01/... $TWILIOEMULATORURL/2010-04-01/...
https://messaging.twilio.com/v1/... $TWILIOEMULATORURL/messaging/v1/...
https://verify.twilio.com/v2/... $TWILIOEMULATORURL/verify/v2/...

The official Node SDK builds absolute Twilio product URLs. In SDK tests, use a custom request client that rewrites those hosts to the emulator prefixes above.

Auth

HTTP Basic auth accepts either:

  • Account SID and Auth Token
  • API Key SID and API Key Secret

Core Routes

  • POST /2010-04-01/Accounts/{AccountSid}/Messages.json - create outbound message
  • GET /2010-04-01/Accounts/{AccountSid}/Messages.json - list messages
  • POST /2010-04-01/Accounts/{AccountSid}/Calls.json - create outbound call
  • POST /verify/v2/Services/{ServiceSid}/Verifications - start verification
  • POST /verify/v2/Services/{ServiceSid}/VerificationCheck - check verification code
  • POST /conversations/v1/Services/{ServiceSid}/Conversations - create Conversation
  • POST /conversations/v1/Services/{ServiceSid}/Conversations/{ConversationSid}/Participants - add participant
  • POST /conversations/v1/Services/{ServiceSid}/Conversations/{ConversationSid}/Messages - add message
  • POST /_twilio/simulate/inbound-message - simulate inbound SMS
  • POST /_twilio/simulate/message-status - simulate message status callback
  • POST /_twilio/simulate/inbound-call - simulate inbound call

SMS And OTP Testing

  • The seeded Verify Service code is 123456.
  • Use CustomCode when creating a Verification to force a per-verification code.
  • Use GET /_twilio/simulate/verification-code?To=...&ServiceSid=... with Basic auth to fetch the latest local code for an E2E test.
  • Use POST /_twilio/simulate/verification-status with VerificationSid or To to force local Verify state.
  • Use POST /_twilio/simulate/inbound-message to test inbound SMS webhooks.
  • Inbound SMS uses an assigned Messaging Service inboundrequesturl before falling back to the phone number sms_url.
  • Use POST /_twilio/simulate/message-status to test outbound status callbacks.

Current Limits

No real SMS, MMS, WhatsApp, email, voice, carrier, compliance, billing, SendGrid, Studio, Flex, TaskRouter, Video, Sync, Segment, Conversations SDK websocket behavior, or complete TwiML interpreter behavior is implemented.