Skip to content

team-telnyx/clawdtalk-client

Repository files navigation

ClawdTalk Client

Give your OpenClaw bot a phone number.

License: MIT Version

Voice calling and SMS messaging for Clawdbot. Talk to your bot by phone or exchange texts. Powered by Telnyx.

What's New in 2.0

  • Approval requests: Voice callers can request bot approval for actions that require confirmation
  • Missions: Configure AI-powered outbound call campaigns for automated outreach
  • Call control ID logging: Track individual call legs with unique control IDs for better debugging

Changelog

See CHANGELOG.md for the full release history.

Architecture

Phone → Telnyx (STT) → ClawdTalk Server → WebSocket → OpenClaw Gateway → Agent → TTS → Phone
          │                                      │
          └── Speech-to-text                     └── Routes to /v1/chat/completions
          │                                      │
          └── Text-to-speech                     └── Bot processes like any message

Features

  • Voice calls: Real-time conversations with your bot via phone
  • SMS messaging: Send and receive text messages
  • Tool integration: Your bot's full capabilities, accessible by voice
  • Approval requests: Get caller confirmation for sensitive actions
  • Missions: Run AI-driven outbound call campaigns
  • Call control IDs: Debug calls with unique leg identifiers

Updating

To update to the latest version, run:

./update.sh

Or just ask your bot to update by pasting the repo URL:

Update clawdtalk to the latest version: https://github.com/team-telnyx/clawdtalk-client

The update script pulls the latest changes and restarts the connection if needed.

Requirements

  • Clawdbot or OpenClaw with gateway running
  • Node.js, bash, jq
  • ClawdTalk account (clawdtalk.com)

Installation

# Clone or download to your skills directory
cd ~/clawd/skills/clawdtalk-client

# Run setup
./setup.sh

# Start the WebSocket connection
./scripts/connect.sh start

The setup script will ask for your API key, configure gateway connection details and tools policy, and create skill-config.json.

Usage

Voice Calls

Start the connection, then call your ClawdTalk number:

./scripts/connect.sh start      # Start (run in background or via cron)
./scripts/connect.sh stop       # Stop
./scripts/connect.sh status     # Check status
./scripts/connect.sh restart    # Restart

Keep it running via crontab:

Note: This keeps a persistent WebSocket connection to clawdtalk.com. Voice transcripts are transmitted in real-time when calls are active.

# Add to crontab (crontab -e):
@reboot cd ~/clawd/skills/clawdtalk-client && ./scripts/connect.sh start

Outbound Calls

Have the bot call you:

./scripts/call.sh                    # Call with default greeting
./scripts/call.sh "Hey, what's up?"  # Custom greeting
./scripts/call.sh status <call_id>   # Check status
./scripts/call.sh end <call_id>      # End call

SMS

./scripts/sms.sh send +15551234567 "Hello from ClawdTalk!"
./scripts/sms.sh send +15551234567 "With image" --media https://example.com/photo.jpg
./scripts/sms.sh list
./scripts/sms.sh list --contact +15551234567
./scripts/sms.sh conversations

Configuration

skill-config.json:

{
  "api_key": "cc_live_xxx",
  "server": "https://clawdtalk.com"
}
Option Description
api_key Your API key from clawdtalk.com
server ClawdTalk server URL (default: https://clawdtalk.com)

Environment Variable Support

Instead of storing credentials in plaintext, use ${ENV_VAR} references:

{
  "api_key": "${CLAWDTALK_API_KEY}",
  "server": "https://clawdtalk.com"
}

Set the variable in one of these locations (checked in order):

  • ~/.openclaw/.env
  • ~/.clawdbot/.env
  • <skill-dir>/.env

Example .env file:

CLAWDTALK_API_KEY=cc_live_xxx

The gateway auth token in openclaw.json/clawdbot.json also supports this:

{
  "gateway": {
    "auth": {
      "token": "${GATEWAY_TOKEN}"
    }
  }
}

Gateway Tools (Required)

The voice assistant uses sessions_send to proxy questions to your Clawdbot. You must allow it on the gateway's /tools/invoke endpoint:

{
  "gateway": {
    "tools": {
      "allow": ["sessions_send"]
    }
  }
}

Without this, the voice assistant will handle calls on its own but won't be able to forward questions to your bot (you'll see sessions_send failed: 404 in the logs).

Run ./scripts/connect.sh status to check if this is configured correctly.

How It Works

Voice: Phone calls connect via Telnyx to the ClawdTalk server. The WebSocket client (ws-client.js) routes transcribed speech to your gateway's /v1/chat/completions endpoint. Your bot processes it like any other message with the same tools and context. The response is converted to speech and played back.

SMS: Messages route through the ClawdTalk API. Inbound messages can trigger your bot via webhooks.

Troubleshooting

Issue Fix
Auth failed Regenerate API key at clawdtalk.com
Empty responses Run ./setup.sh, then clawdbot gateway restart
sessions_send failed: 404 Add sessions_send to gateway.tools.allow in your OpenClaw config (see Gateway Tools above)
Connection drops Check tail -f .connect.log for errors
Debug mode DEBUG=1 ./scripts/connect.sh restart

License

MIT

Links

  • ClawdTalk — Sign up and manage your account
  • Clawdbot — AI assistant framework
  • Telnyx — Voice and messaging infrastructure

About

Voice calling and SMS for Clawdbot

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors