team-telnyx/ai-push-notification-tester
>- Test VoIP push notifications for Telnyx WebRTC iOS (APNs) and Android (FCM) apps. Use when debugging push notification delivery, validating certificate/credential setup, or testing that a device receives VoIP pushes correctly.
This is a copy. The original lives at team-telnyx/push-notification-tester.
npx skills add https://github.com/team-telnyx/ai --skill push-notification-tester
Send test VoIP push notifications to iOS (APNs) and Android (FCM) devices.
node {baseDir}/scripts/send-ios-push.js \
--token=<device_token> \
--bundle-id=<bundle_id> \
--cert=<path/to/cert.pem> \
--key=<path/to/key.pem> \
[--env=sandbox|production] \
[--caller-name="Test Caller"] \
[--caller-number="+1234567890"]
--token — 64-char hex APNs device token--bundle-id — App bundle ID (e.g. com.telnyx.webrtc)--cert — Path to certificate PEM file--key — Path to private key PEM file--env — sandbox (default) or production--caller-name — Display name (default: "Test Caller")--caller-number — Phone number (default: "+1234567890")node {baseDir}/scripts/send-android-push.js \
--token=<fcm_token> \
--project-id=<firebase_project_id> \
--service-account=<path/to/service-account.json> \
[--caller-name="Test Caller"] \
[--caller-number="+1234567890"]
--token — FCM device token--project-id — Firebase project ID--service-account — Path to service account JSON file--caller-name — Display name (default: "Test Caller")--caller-number — Phone number (default: "+1234567890")Both scripts output JSON to stdout:
{"success": true, "message": "Push notification sent successfully", "details": {...}}
{"success": false, "error": "Description of what went wrong"}
Exit code 0 on success, 1 on failure.
Run npm install in the scripts/ directory, or the scripts will auto-install on first run.
@parse/node-apn — APNs client for iOSgoogle-auth-library — Google OAuth for FCMaxios — HTTP client for FCM APITake team-telnyx/ai-push-notification-tester from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npm.
Without those the skill loads but fails at the first command.