whatsapp-messaging

Minimal plugin that lets Claude Code message you on the Whatsapp.

Installation
CLI
npx skills add https://github.com/asharibali/whatsapp-me --skill whatsapp-messaging

Install this skill with the CLI and start using the SKILL.md workflow in your workspace.

Last updated 4/22/2026

WhatsApp-Me

A Claude Code plugin that lets Claude message you on WhatsApp. Get notified on your phone when Claude finishes tasks, runs into errors, or needs your input.

WhatsApp-Me

Features

  • πŸ“± Two-way messaging - Claude can send messages AND wait for your replies
  • βœ… Task completion alerts - Know when work is done
  • ❌ Error notifications - Get alerted when something goes wrong
  • πŸ€” Questions via WhatsApp - Answer Claude's questions from your phone

How It Works

Claude Code                    WhatsApp-Me MCP Server (local)
    β”‚                                    β”‚
    β”‚  "I finished the task..."          β”‚
    β–Ό                                    β–Ό
Plugin ────stdio──────────────────► MCP Server
                                         β”‚
                                         β”œβ”€β–Ί ngrok tunnel
                                         β”‚
                                         β–Ό
                                   WhatsApp Cloud API (Meta)
                                         β”‚
                                         β–Ό
                                   πŸ“± Your Phone buzzes
                                   You reply via WhatsApp
                                   Text returns to Claude

Quick Start

Step 1: Create Required Accounts

You need two free accounts:

Account Sign up
Meta Developer developers.facebook.com
ngrok ngrok.com

Step 2: Set Up WhatsApp API

πŸ“‹ Click to expand WhatsApp setup

2.1 Create Meta App

  1. Go to Meta Developer Console
  2. Click Create App β†’ Select Other (This is important to see the Business option)
  3. Select Business as the app type β†’ Click Next
  4. Name your app (e.g., "Message-Me") β†’ Click Create App

2.2 Add WhatsApp Product

  1. In your app dashboard, scroll down to WhatsApp β†’ Click Set up
  2. You will be redirected to the API Setup page in the sidebar

2.3 Get Your Credentials

From the API Setup page:

  • Note your Phone Number ID (under "From" field)
  • Important: The token on this page is Temporary (expires in 24 hours). For a permanent setup, follow the steps below.

2.4 Generate Permanent Access Token

To avoid updating your token every 24 hours, create a System User:

  1. Go to Meta Business Settings
  2. Select Users > System Users β†’ Click Add β†’ Name it "Claude-Bot" β†’ Role: Admin
  3. Click Assign Assets β†’ Select Apps β†’ Select your App β†’ Enable Full Control β†’ Save
  4. Select the user again β†’ Click Generate New Token
  5. Select your App β†’ Check whatsapp_business_messaging and whatsapp_business_management
  6. Set Expiration to Never (or the longest available) β†’ Click Generate
  7. Copy this token immediately (it will only be shown once)

2.4 Get App Secret

  1. Go to Settings β†’ Basic
  2. Find App Secret β†’ Click Show β†’ Copy it

2.5 Add Your Phone Number

  1. In API Setup, enter your WhatsApp number in the "To" field
  2. Format: +15551234567 (country code, no spaces)
  3. Click Send Code β†’ Enter the code you receive on WhatsApp

Step 3: Get ngrok Token

πŸ“‹ Click to expand ngrok setup
  1. Sign up at ngrok.com
  2. Go to Your Authtoken
  3. Copy your authtoken

Step 4: Set Environment Variables

Open ~/.claude/settings.json and add your credentials.

Windows (PowerShell):

notepad "$env:USERPROFILE\.claude\settings.json"

macOS/Linux:

nano ~/.claude/settings.json

Add the following to the env object:

{
  "env": {
    "WHATSAPPME_PHONE_NUMBER_ID": "your_phone_number_id",
    "WHATSAPPME_ACCESS_TOKEN": "your_access_token",
    "WHATSAPPME_APP_SECRET": "your_app_secret",
    "WHATSAPPME_VERIFY_TOKEN": "any_random_string_you_make_up",
    "WHATSAPPME_USER_PHONE_NUMBER": "+15551234567",
    "WHATSAPPME_NGROK_AUTHTOKEN": "your_ngrok_authtoken",
    "WHATSAPPME_PORT": "3333"
  }
}
ℹ️ What each variable does
Variable Description
WHATSAPPME_PHONE_NUMBER_ID Your Meta WhatsApp sender ID
WHATSAPPME_ACCESS_TOKEN API token to send messages (expires in 24h)
WHATSAPPME_APP_SECRET Used to verify webhook signatures
WHATSAPPME_VERIFY_TOKEN Your custom string to verify webhook setup
WHATSAPPME_USER_PHONE_NUMBER Your phone number to receive messages
WHATSAPPME_NGROK_AUTHTOKEN Authenticates your ngrok tunnel
WHATSAPPME_PORT The local port the server runs on (default: 3333)

Step 5: Install Plugin

In Claude Code terminal, run:

/plugin marketplace add AsharibAli/whatsapp-me
/plugin install whatsappme@whatsappme

Step 6: Get Your Webhook URL & Verify Token

Start Claude Code, and Ask Claude:

What's my webhook URL and verify token?

Copy this webhook url and verify token

Step 7: Configure Webhook

Register your tunnel URL in Meta to receive messages:

  1. In your Meta App sidebar, go to WhatsApp β†’ Configuration
  2. Under Webhook, click Edit
  3. Enter your details from the get_setup_info tool:
    • Callback URL: https://your-ngrok-url/webhook
    • Verify Token: Same as your WHATSAPPME_VERIFY_TOKEN
  4. Click Verify and Save
  5. Crucial: Under Webhook fields, find messages β†’ Click Subscribe

Usage

Once configured, Claude will communicate via WhatsApp:

You (terminal): "Create a REST API with authentication"

Claude: [creates files]
πŸ“± WhatsApp: "βœ… Created REST API. What would you like next?"
πŸ“± You: "Add tests"

Claude: [adds tests]
πŸ“± WhatsApp: "βœ… Added tests. What's next?"
πŸ“± You: "That's all!"

Claude: [stops]

Troubleshooting

Webhook verification fails
  • Check ngrok is running (look for the URL in terminal)
  • Verify token must match exactly (case-sensitive)
  • URL must end with /webhook
  • Test: curl https://your-ngrok-url/health
Messages not sending
  • Access token expires after 24 hours - generate a new one
  • Phone number must be verified in Meta console
  • Check API quota in Meta dashboard
Messages not receiving
  • Check "messages" is subscribed in Webhook fields
  • Verify WHATSAPPME_APP_SECRET matches Meta app secret
  • Check server logs for signature mismatch errors
ngrok disconnects
  • Free tier has 2-hour session limit
  • Restart the plugin to get new tunnel
  • Consider ngrok paid plan for stable URLs

Development

git clone https://github.com/AsharibAli/whatsapp-me.git
cd whatsapp-me && cd server

bun install
bun run dev

Inspiration

This plugin was inspired by Call Me

Support

If you find this plugin useful, please consider star this repository.

Build with ❀️ by Asharib Ali