How to Call Your OpenClaw Bot from Your Phone (Build Your JARVIS)
Give your AI assistant a phone number and call it anytime - just like calling JARVIS.
How to Call Your OpenClaw Bot from Your Phone (Build Your JARVIS)
Give your AI assistant a phone number and call it anytime - just like calling JARVIS.
Why Phone Access Changes Everything
Before: Need computer to interact with your AI
After: Call from anywhere, anytime
Perfect for:
- Driving (hands-free AI assistant)
- Cooking (no dirty keyboard)
- Multitasking (talk while working)
- Quick questions (faster than opening laptop)
- Emergencies (immediate AI access)
The Architecture
How it works:
- ElevenLabs Agents - Handle voice (speech recognition, synthesis, phone integration)
- OpenClaw - Handle brains (tools, memory, skills)
- Twilio - Provide phone number
You call ā Twilio ā ElevenLabs ā OpenClaw ā AI responds with voice
ElevenLabs handles all voice complexity. OpenClaw stays focused on being smart.
Ready to call your AI?
Start Free with ElevenLabs ā
Phone integration built-in ⢠10k free chars/month ⢠No credit card
Prerequisites
You need:
- OpenClaw installed and running
- Node.js 22+
- ngrok installed
- ElevenLabs account
- Twilio account (for phone number)
Costs:
- OpenClaw: Free
- ngrok: Free
- ElevenLabs: Free tier (10k chars/mo)
- Twilio: ~$1/mo for phone number
Total to start: ~$1/mo
Step 1: Configure OpenClaw
OpenClaw needs to expose a chat endpoint for ElevenLabs.
Enable Chat Completions
Edit your config:
openclaw config edit
Or manually edit ~/.openclaw/openclaw.json:
Add this to the gateway section:
{
"gateway": {
"http": {
"endpoints": {
"chatCompletions": {
"enabled": true
}
}
}
}
}
What this does: Exposes /v1/chat/completions endpoint on your gateway port (usually 18789).
Restart OpenClaw
openclaw restart
Verify it's running:
openclaw status
Should show "Running" with port 18789 (or your configured port).
Step 2: Expose OpenClaw with ngrok
ElevenLabs needs to reach your local OpenClaw. ngrok creates a public URL.
Install ngrok
Mac:
brew install ngrok
Other platforms: Download from ngrok.com
Start ngrok Tunnel
ngrok http 18789
(Replace 18789 with your gateway port if different)
You'll see:
Forwarding https://abc123-unique.ngrok.io -> http://localhost:18789
Copy that URL! You need it in the next step.
Keep this terminal open - closing it stops the tunnel.
Pro tip: ngrok free tier works fine. Paid tier ($8/mo) gives you a static subdomain (no changing URLs).
Step 3: Create ElevenLabs Agent
Method A: Manual Setup (Recommended for First Time)
- Go to ElevenLabs Conversational AI
- Click "Create New Agent"
- Pick a voice (or use default)
- Under LLM settings, select "Custom LLM"
Configure Custom LLM:
-
URL:
https://YOUR-NGROK-URL.ngrok.io/v1/chat/completions- Replace
YOUR-NGROK-URLwith your ngrok subdomain - Example:
https://abc123.ngrok.io/v1/chat/completions
- Replace
-
Authentication:
- Type: Bearer token
- Header:
Authorization - Value:
Bearer YOUR_OPENCLAW_TOKEN
Get your OpenClaw token:
cat ~/.openclaw/openclaw.json | grep -A 2 '"token"'
Copy the token value.
Method B: API Setup (Your Coding Agent Can Do This)
If you have a coding agent, paste these instructions:
Step 1: Create secret for OpenClaw token
curl -X POST https://api.elevenlabs.io/v1/convai/secrets \
-H "xi-api-key: YOUR_ELEVENLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "new",
"name": "openclaw_gateway_token",
"value": "YOUR_OPENCLAW_GATEWAY_TOKEN"
}'
This returns a secret_id. Save it.
Step 2: Create the agent
curl -X POST https://api.elevenlabs.io/v1/convai/agents/create \
-H "xi-api-key: YOUR_ELEVENLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"conversation_config": {
"agent": {
"language": "en",
"prompt": {
"llm": "custom-llm",
"prompt": "You are a helpful personal assistant with access to the user'\''s computer and memory.",
"custom_llm": {
"url": "https://YOUR_NGROK_URL.ngrok.io/v1/chat/completions",
"api_key": {"secret_id": "RETURNED_SECRET_ID"}
}
}
}
}
}'
Replace:
YOUR_ELEVENLABS_API_KEY- from ElevenLabs dashboardYOUR_NGROK_URL- your ngrok subdomainRETURNED_SECRET_ID- from step 1
Step 4: Test Voice Agent
Before adding phone number, test it works:
In ElevenLabs dashboard:
- Go to your agent
- Click "Test"
- Speak into your microphone
- Your OpenClaw should respond!
Working? Continue to phone setup.
Not working? Check:
- ngrok is running
- OpenClaw is running
- Custom LLM URL is correct
- Auth token is correct
Step 5: Get Phone Number
Sign Up for Twilio
- Go to Twilio
- Sign up (free trial includes credits)
- Buy a phone number (~$1/mo)
Pick a number:
- Local to your area (easier to remember)
- Or toll-free (looks more professional)
Get Twilio Credentials
From Twilio dashboard, copy:
- Account SID - starts with "AC..."
- Auth Token - click to reveal
You need both for the next step.
Step 6: Connect Phone to ElevenLabs
In your ElevenLabs agent settings:
- Go to Phone section
- Click "Add Phone Integration"
- Select "Twilio"
- Enter:
- Account SID - from Twilio
- Auth Token - from Twilio
- Select your Twilio phone number
- Save
That's it! Your OpenClaw now answers this phone number.
Step 7: Call Your OpenClaw
From any phone, call the Twilio number.
Your OpenClaw answers in AI voice!
Try asking:
- "What's the weather today?"
- "Remind me to call mom tomorrow"
- "How are my coding agents doing?"
- "What's on my calendar?"
Your assistant is now accessible by phone.
š You did it! Call your AI anytime, anywhere.
Want better voices or more minutes? Upgrade to Pro for voice cloning + 3x more chars.
Explore ElevenLabs Pro Features ā
Only $5/mo ⢠Clone your voice ⢠30k chars/month
Advanced: Preserve Context Across Calls
By default, each call starts fresh (separate agent instance).
To keep conversation history across calls:
Add session key to your ElevenLabs Custom LLM config:
Header:
- Key:
x-openclaw-session-key - Value:
phone-session
Now all phone calls share the same agent instance with full memory.
Example:
Call 1: "Remember that I prefer Python"
Call 2: "What language do I prefer?" ā "You prefer Python"
Context persists across calls.
Use Cases
While Driving
"Hey OpenClaw, check if my deployment finished"
"Tell me what's on my calendar for today"
"Remind me to buy milk when I get home"
While Cooking
"Set a timer for 15 minutes"
"What's the recipe for bolognese sauce?"
"Add pasta to my shopping list"
Quick Status Checks
"Are all my servers running?"
"Did the nightly build pass?"
"How many emails do I have?"
Voice Journaling
"Add to my journal: Today I realized..."
"What did I journal about last week?"
Troubleshooting
Issue: Call connects but no voice
Fix:
- Check ElevenLabs agent has voice configured
- Test agent in dashboard first
- Verify Custom LLM URL is correct
Issue: "The number you have dialed is not in service"
Fix:
- Check Twilio number is active
- Verify phone integration in ElevenLabs is saved
- Wait 1-2 minutes for changes to propagate
Issue: Bot can't access my tools/memory
Fix:
- Verify ngrok URL points to correct port
- Check OpenClaw token is correct in ElevenLabs
- Test OpenClaw chat works locally first
Issue: Calls cost too much
Fix:
- Keep calls short (get to the point)
- Use text chat for long conversations
- Upgrade to ElevenLabs Pro for better rates
Cost Breakdown
Monthly costs:
Twilio:
- Phone number: $1/mo
- Incoming calls: $0.0085/min
- 10 min/day ā $2.50/mo
ElevenLabs:
- Free tier: 10k chars (~10 min) free
- Pro ($5/mo): 30k chars (~30 min)
- Overage: $0.30 per 1k chars
Total for light use: ~$3-4/mo
Total for heavy use: ~$8-10/mo
Still cheaper than a phone assistant service.
Best Practices
1. Keep ngrok Running
Calls only work while ngrok is running. Consider:
- Running ngrok as a service
- Or upgrading to ngrok paid ($8/mo) for reliability
2. Set Call Limits
In Twilio, set spending limits to avoid surprises.
3. Test Before Relying On It
Make sure it works reliably before using for critical tasks.
4. Use for High-Value Tasks
Phone calls cost more than text. Use for hands-free scenarios where it adds value.
5. Secure Your Endpoint
Keep your OpenClaw token private. It gives access to your AI.
Upgrade for Production
Using this daily? Upgrade for reliability.
ElevenLabs Pro ($5/mo):
- 30,000 characters/month (ā30 min of calls)
- Clone your own voice (sound like you!)
- Better voice quality & lower latency
- Priority support for urgent issues
ngrok Pro ($8/mo):
- Static subdomain (no URL changes when restarting)
- 99.9% uptime guarantee
- Better for production use
Total: ~$13/mo for production-ready phone AI
Real user:
"I call my OpenClaw 5-10 times daily while commuting. Pro is worth it just for the voice cloning - my clients think it's actually me on the phone!" - Solo developer
Most popular: Start with ElevenLabs Pro ($5/mo), add ngrok Pro later if needed.
Or start free:
Try ElevenLabs Free (10k chars/mo) ā
Next Steps
Now that you can call your OpenClaw:
- Add it to your contacts
- Test while driving (hands-free mode)
- Set up voice reminders
- Experiment with use cases
Related guides:
Start Calling Your AI
Give your OpenClaw a phone number and access it from anywhere.
Why wait? Get started in 5 minutes:
ā
Free 10,000 characters/month (ā10 minutes of calls)
ā
No credit card required to start
ā
Professional AI voices included
ā
Phone integration built-in (works with Twilio)
ā
Upgrade anytime to Pro for voice cloning
Join 1M+ developers using ElevenLabs for AI voice
Get Your Free ElevenLabs Account ā
Takes 2 minutes to sign up. No credit card. Cancel anytime (but you won't want to).
Disclosure: Some links are affiliate links.
Related Articles
Ready to Build Something Amazing?
Discover the best AI coding tools, tutorials, and comparisons. Start building your next project today.
Explore All ToolsCurated by developers ⢠Updated 2026 ⢠No pay-to-rank