Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Self-hosted SMS via Android phone HTTP API. Use when you need to send/receive SMS messages using an Android device as a gateway. Supports popular SMS Gateway...
Self-hosted SMS via Android phone HTTP API. Use when you need to send/receive SMS messages using an Android device as a gateway. Supports popular SMS Gateway...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Self-hosted SMS gateway using an Android phone with HTTP API integration. Full control, no third-party dependencies.
This skill enables sending and receiving SMS messages through an Android phone running an SMS Gateway app. The phone exposes a local HTTP API that this skill uses to send messages and check received messages.
Primary (Original Scripts) SMS Gateway API (โญ Recommended) - https://github.com/itsmeichigo/SMSGateway SMSGate - https://github.com/iamsmgate/smsgate SMS Forwarder - https://github.com/pppscn/SmsForwarder capcom6/android-sms-gateway (New Scripts) SMS Gateway for Android - https://github.com/capcom6/android-sms-gateway โ End-to-end encryption โ Local + Cloud + Private server modes โ Multi-device support โ Webhooks for incoming messages โ Multi-recipient bulk sends
Android phone with SMS capability Install SMS Gateway app on the phone Phone and OpenClaw host on same network (or port forwarding) Configure app with API access enabled
# 1. Install SMS Gateway API app on Android # Download from: https://github.com/itsmeichigo/SMSGateway/releases # 2. Configure the app: # - Enable HTTP API server # - Set API token/password # - Note the phone's IP address and port (default: 8080) # 3. Test connectivity curl http://PHONE_IP:8080/api/v1/status -H "Authorization: Bearer YOUR_TOKEN" # 4. Save configuration to TOOLS.md (see Configuration section)
# Basic send ./scripts/send_sms.sh --to "+1234567890" --message "Hello from OpenClaw" # With config file ./scripts/send_sms.sh --config ~/.openclaw/sms-gateway.json \ --to "+1234567890" \ --message "Alert: Security scan complete" # Via environment variables export SMS_GATEWAY_URL="http://192.168.1.100:8080" export SMS_GATEWAY_TOKEN="your-api-token" ./scripts/send_sms.sh --to "+1234567890" --message "Test message"
# List recent received messages ./scripts/receive_sms.sh --limit 10 # Check for new messages since timestamp ./scripts/receive_sms.sh --since "2026-02-22T00:00:00Z"
# Verify gateway is online ./scripts/check_status.sh
# Send to multiple recipients ./scripts/bulk_sms.sh --recipients "+1234567890,+0987654321" --message "Broadcast message" # From file (one number per line) ./scripts/bulk_sms.sh --recipients-file ./contacts.txt --message "Alert"
export SMS_GATEWAY_URL="http://192.168.1.100:8080" export SMS_GATEWAY_TOKEN="your-api-token" export SMS_GATEWAY_TIMEOUT="30"
Create ~/.openclaw/sms-gateway.json: { "gateway_url": "http://192.168.1.100:8080", "api_token": "your-api-token", "timeout_seconds": 30, "default_sender": "+1234567890", "retry_count": 3 }
All scripts support --url and --token flags: ./scripts/send_sms.sh --url "http://192.168.1.100:8080" --token "token" --to "+1234567890" --message "Hi"
export SMS_GATEWAY_URL="http://192.168.1.100:8080" # Local server # export SMS_GATEWAY_URL="https://api.sms-gate.app/3rdparty/v1" # Cloud export SMS_GATEWAY_USER="your-username" export SMS_GATEWAY_PASS="your-password" export SMS_GATEWAY_TIMEOUT="30"
Create ~/.openclaw/sms-gateway-capcom6.json: { "gateway_url": "http://192.168.1.100:8080", "gateway_user": "your-username", "gateway_pass": "your-password", "server_mode": "local", "timeout_seconds": 30 }
# Send SMS ./scripts/send_sms_capcom6.sh --to "+1234567890" --message "Hello" # Cloud mode ./scripts/send_sms_capcom6.sh --mode cloud --to "+1234567890" --message "Hello" # Register webhook for incoming SMS ./scripts/register_webhook_capcom6.sh --url "https://your-server.com/webhook" # Bulk send (multi-recipient in single API call) ./scripts/bulk_sms_capcom6.sh --multi --recipients "+1234567890,+0987654321" --message "Alert" # Check status ./scripts/check_status_capcom6.sh
See references/api_reference.md for detailed API endpoints for each supported app.
LAN only: Keep gateway on local network when possible Firewall: Restrict access to gateway port HTTPS: Use HTTPS if exposing externally (requires app support) VPN: Use VPN for remote access instead of port forwarding
FeatureBenefitE2E EncryptionMessage content encrypted before API transitPrivate ServerDeploy your own backend (no cloud dependency)Basic AuthStandard HTTP authenticationWebhooksIncoming messages pushed directly from device Recommendation: Use capcom6's private server mode for maximum security: https://docs.sms-gate.app/getting-started/private-server/
Strong tokens: Use random API tokens (32+ chars) Token rotation: Rotate tokens periodically File permissions: chmod 600 ~/.openclaw/sms-gateway.json
Avoid spam: Implement sending limits in your workflows Carrier limits: Respect SMS carrier rate limits (~1 msg/sec) Queue system: Use queue for bulk sends
# Check phone connectivity ping PHONE_IP # Check API endpoint curl -v http://PHONE_IP:8080/api/v1/status # Check app is running (on phone) # - Open SMS Gateway app # - Verify server is started # - Check logs in app
# Verify token curl -v http://PHONE_IP:8080/api/v1/status -H "Authorization: Bearer YOUR_TOKEN" # Check token format (some apps use different auth headers) # See references/api_reference.md for app-specific auth
# Check phone signal # Check SMS balance/plan # Check app logs # Verify recipient number format (include country code)
# Send alert when scan detects issues ./scripts/send_sms.sh --to "+1234567890" \ --message "๐ก๏ธ ALERT: Vulnerability found on 192.168.1.50"
# Send 2FA code (integrate with your auth system) CODE=$(openssl rand -base64 6 | tr -d '/+=' | head -c 6) ./scripts/send_sms.sh --to "$USER_PHONE" \ --message "Your verification code: $CODE"
# Cron job for daily security reminder # crontab -e 0 9 * * * /path/to/send_sms.sh --to "+1234567890" --message "Daily security check: Review logs"
# Nagios/Zabbix alert script #!/bin/bash STATUS=$1 if [ "$STATUS" != "OK" ]; then ./scripts/send_sms.sh --to "+1234567890" --message "MONITOR ALERT: $STATUS" fi
scripts/send_sms.sh - Send single SMS scripts/receive_sms.sh - Fetch received messages scripts/check_status.sh - Check gateway health scripts/bulk_sms.sh - Send to multiple recipients
scripts/send_sms_capcom6.sh - Send single SMS scripts/register_webhook_capcom6.sh - Register webhook for incoming SMS scripts/check_status_capcom6.sh - Check gateway health scripts/bulk_sms_capcom6.sh - Send to multiple recipients (supports multi-recipient API)
API Reference - Detailed API docs for each app SMS Gateway API - Primary supported app SMSGate - Alternative app SMS Forwarder - Alternative with forwarding
Message encoding: Scripts handle UTF-8 for international characters Long messages: Automatically split for messages > 160 chars (GSM) or > 70 chars (Unicode) Delivery reports: Some apps support delivery callbacks (see api_reference.md) Dual SIM: Specify SIM slot if phone has dual SIM (app-dependent)
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.