pingwa

Registre officiel IA et agents

Zero-setup WhatsApp notifications + human-in-the-loop for AI agents — text 'join', send in 60s.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

Remote (streamable-http)
Claude Code
claude mcp add --transport http pingwa 'https://pingwa.dev/mcp'
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "pingwa": {
            "type": "http",
            "url": "https://pingwa.dev/mcp"
        }
    }
}
PYPI package pingwa
Claude Code
claude mcp add pingwa -e 'PINGWA_KEY=<your pingwa_key>' -- uvx pingwa==0.4.1
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "pingwa": {
            "command": "uvx",
            "args": [
                "pingwa==0.4.1"
            ],
            "env": {
                "PINGWA_KEY": "<your pingwa_key>"
            }
        }
    }
}

Variables d'environnement

  • PINGWA_KEY obligatoire secret pingwa API key (send 'join' on WhatsApp to the service number — see https://pingwa.dev)

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. pingwa (client)
  2. Install & use
  3. Webhooks
  4. MCP server
  5. What it sends
  6. License

pingwa (client)

WhatsApp notifications for AI agents and scripts with zero setup — no Meta account, no templates, no dashboard: text "join", get an API key, curl → WhatsApp in 60s. Two-way human-in-the-loop: your agent asks, you tap a button to answer. From your terminal or an MCP client.

This is the open-source (MIT) pingwa client: a CLI, a tiny HTTP client, and an MCP server. It talks to a pingwa backend (the hosted service at https://pingwa.dev, or your own). The backend is separate and private; this client is not.

Install & use

No install needed with uv:

export PINGWA_KEY=pw_your_key          # get one: send "join" on WhatsApp to the service number
uvx pingwa send "build finished ✅"     # notify your own phone
echo "deploy done" | uvx pingwa send -  # from stdin
uvx pingwa ask "Deploy to prod?" --button yes --button no   # wait for a reply from your phone
uvx pingwa replies                      # pull messages your phone sent back (out-of-band steering)
uvx pingwa me                           # plan / quota / reply-window
uvx pingwa keys                         # list active API keys (up to 10 named keys per number)
uvx pingwa keys revoke ci               # revoke one by name (or reply 'revoke ci' on WhatsApp)
uvx pingwa upgrade                      # get a Stripe link to go Pro (no password needed)
uvx pingwa send "x" --json              # raw JSON response

AI agents: don't ask your human to copy-paste a key — drive the registration yourself (POST /v1/registrations; full recipe in llms.txt). The human only taps one WhatsApp link; the key is claimed by you and never travels through the chat. Works for existing accounts too — it mints an additional named key.

Exit codes: 0 ok · 2 missing key · 3 quota exceeded · 1 other. Override the backend with PINGWA_BASE_URL or --base-url.

Webhooks

Prefer PUSH over polling replies? Register HTTPS endpoints and pingwa POSTs every inbound WhatsApp message to them:

uvx pingwa webhooks                                   # list your webhooks
uvx pingwa webhooks add https://your-host/pingwa-hook # returns a signing SECRET, shown ONCE
uvx pingwa webhooks rm https://your-host/pingwa-hook  # by id, or by exact url

add prints a whsec_... secret once — store it now; it never appears again. Each delivery carries an X-Pingwa-Signature: sha256=<hex> header (an HMAC-SHA256 of the raw body under that secret) — verify it and reject anything that fails. Full verification recipe and payload shape: llms.txt. Up to 5 active webhooks per account; to rotate a secret, rm then add again.

MCP server

Same tools on stdio and remote: notify(text), ask(text, buttons?, timeout?), check_replies(since?, wait?), check_status(), upgrade().

Local (stdio) — for Claude Desktop / Claude Code:

{
  "mcpServers": {
    "pingwa": {
      "command": "uvx",
      "args": ["pingwa", "mcp"],
      "env": { "PINGWA_KEY": "pw_your_key" }
    }
  }
}

Remote (Streamable HTTP, no install):

{
  "mcpServers": {
    "pingwa": {
      "url": "https://pingwa.dev/mcp",
      "headers": { "Authorization": "Bearer pw_your_key" }
    }
  }
}

Every error carries an action hint, so an agent knows what to do next.

What it sends

Only your message text and your key, to the pingwa backend you point it at — over HTTPS. Nothing else. The recipient is always your own phone (there is no "to" field). See the service's /privacy.

License

MIT — see LICENSE in the repository root. It covers this client package only (src/pingwa/client/); the pingwa server is separate, private, and not published. See NOTICE for the exact boundary.

Questions fréquentes

Qu'est-ce que pingwa ?

Zero-setup WhatsApp notifications + human-in-the-loop for AI agents — text 'join', send in 60s.

Comment installer pingwa ?

Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http pingwa 'https://pingwa.dev/mcp'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour pingwa ?

Oui. Il attend PINGWA_KEY, à renseigner dans sa configuration.

pingwa est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient pingwa ?

Il est publié par grzgrzgrz3. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.