Skip to main content

WhatsApp notifications + human-in-the-loop for AI agents and scripts — curl to WhatsApp in 60s, no app, no dashboard.

Project description

pingwa (client)

WhatsApp notifications + human-in-the-loop for AI agents and scripts — from your terminal or an MCP client. curl → WhatsApp in 60s, no app, no dashboard.

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 upgrade                      # get a Stripe link to go Pro (no password needed)
uvx pingwa send "x" --json              # raw JSON response

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

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.

Repository

The client is developed in a private monorepo next to the (proprietary) backend; grzgrzgrz3/pingwa-client is its public read-only mirror — the full source of every published pingwa release, synced on release. Issues and PRs are welcome there.

License

MIT — see the LICENSE in the repository root. Covers this client package only.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pingwa-0.2.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pingwa-0.2.0-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file pingwa-0.2.0.tar.gz.

File metadata

  • Download URL: pingwa-0.2.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pingwa-0.2.0.tar.gz
Algorithm Hash digest
SHA256 19c99aa7b4619965d18e92a139d75c68abed976391cee096ee1df8f3eca6d484
MD5 ea1054568aba5003185b591b605dbc65
BLAKE2b-256 7af2263ae761fdb1cd715fb7393d1cd1573539d9c8ceacaacab46694ea481933

See more details on using hashes here.

File details

Details for the file pingwa-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pingwa-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 14.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pingwa-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f4f3aa7f92f797ef4f60180a1bbbc4874a95459f78e6f07968995a644f7e98f
MD5 b2891c2be86f37c26c5f519ae6883bbc
BLAKE2b-256 a67d01a7addbc1d9e95245c5b272a65f6632a647176cd846fec959c12d9fd692

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page