{"skill":{"slug":"wake-meup-ai","displayName":"Wake Up","summary":"Schedule personalized AI wake-up phone calls via wake.meup.ai. Use when a user wants to be woken up by a phone call, schedule morning calls, or set up recurr...","description":"---\nname: wake-meup-ai\ndescription: Schedule personalized AI wake-up phone calls via wake.meup.ai. Use when a user wants to be woken up by a phone call, schedule morning calls, or set up recurring wake-up calls. Handles phone verification, call scheduling, voice selection, and x402 USDC payment.\ncompatibility: Requires uv (https://docs.astral.sh/uv/) and a Solana keypair with USDC\nmetadata:\n  version: \"1.3.0\"\n  clawdis:\n    envVars:\n      - name: SOLANA_KEYPAIR_PATH\n        required: true\n        description: Solana keypair JSON for signing x402 USDC payments. Use a dedicated low-value keypair, not your primary wallet.\n    dependencies:\n      - name: uv\n        type: pip\n        version: \">=0.5\"\n        url: https://docs.astral.sh/uv/\n    author: turjanofmiir\n    links:\n      homepage: https://wake.meup.ai\n      documentation: https://wake.meup.ai/openclaw\n---\n\n# wake.meup.ai\n\nAI-powered wake-up phone calls. Schedule a call, pick a voice, and get woken up by an AI that has a real conversation with you. The AI remembers past calls and gets to know the person over time.\n\n## Live API documentation\n\nFor the latest endpoint details, voices, and pricing, fetch `https://wake.meup.ai/` with `Accept: text/markdown`. The server returns a machine-readable capability document instead of the HTML landing page.\n\n## When to use this skill\n\nUse this skill when:\n- The user wants to schedule a wake-up call\n- The user mentions wake.meup.ai\n- The user wants an AI to call them at a specific time\n- The user asks about phone-based alarms or morning routines that involve being called\n\n## Available scripts\n\n- **`scripts/wake-cli.py`** — Reference client with automatic x402 payment handling. Supports `verify` and `schedule` subcommands.\n\n## Step-by-step workflow\n\n### 1. Verify the user's phone ($0.50 USDC)\n\n```\nPOST https://wake.meup.ai/api/v1/verify\nContent-Type: application/json\n\n{\"phone\": \"+15551234567\"}\n```\n\nReturns `{\"status\": \"calling\", \"attempt_id\": \"...\"}` — the user will receive a short phone call to confirm their number.\n\nIf the phone is already verified, returns `{\"verified\": true}` (free, no payment required).\n\n### 2. Poll until verified (free)\n\n```\nGET https://wake.meup.ai/api/v1/verify/attempts/:attempt_id\n```\n\nReturns `{\"verified\": true}` when complete, or `{\"verified\": false, \"status\": \"pending\"}` while in progress.\n\nIf status is `\"expired\"` or `\"rejected\"`, the attempt has ended — prompt the user and retry with a new POST /verify if needed.\n\n**Polling:** Check every 5 seconds. Verification calls typically complete within 30–60 seconds. Attempts expire after 2 minutes.\n\n### 3. Save the contact (free, recommended)\n\nAfter verification, download the vCard and share it with the user so they can save \"Wake Up\" to their contacts:\n\n```\nGET https://wake.meup.ai/api/contact.vcf\n```\n\nReturns a `.vcf` file with the Wake Up display name, phone number, and icon. No authentication or payment required.\n\n**Why this matters:** Wake-up calls come from an unknown number. If the user has Do Not Disturb, Sleep Focus, or call screening enabled, the call may be silenced. Saving the contact lets the user add \"Wake Up\" to their allow list so calls always ring through.\n\n**How to share it:**\n- Download the file and send it directly in the chat (WhatsApp, Telegram, iMessage, Signal, and Slack all render `.vcf` files as tappable \"Add Contact\" cards)\n- Or provide the download URL and tell the user to open it on their phone\n\nAlways offer the contact card after a first-time verification. For returning users who have already saved the contact, skip this step.\n\n### 4. Schedule wake-up calls ($2.00 per call USDC)\n\n```\nPOST https://wake.meup.ai/api/v1/schedule\nContent-Type: application/json\n\n{\"phone\": \"+15551234567\",\n \"times\": [\"2026-04-01T07:00:00Z\"],\n \"voice\": \"ash\",\n \"hints\": \"Brian is a software engineer who loves Clojure. He has a big meeting at 9am.\"}\n```\n\nPhone must be verified first. Multiple times can be scheduled in one request.\n\nReturns:\n```json\n{\"calls\": [{\"id\": \"...\", \"phone\": \"+15551234567\", \"call_time\": \"2026-04-01T07:00:00Z\", \"voice\": \"ash\"}]}\n```\n\n## Fields\n\n- `phone` — E.164 format (e.g. `+15551234567`)\n- `times` — Array of ISO 8601 timestamps (UTC), all must be in the future\n- `voice` — One of: `alloy`, `ash`, `ballad`, `cedar`, `coral`, `echo`, `marin`, `sage`, `shimmer`, `verse`\n- `hints` (optional) — Context about the person and the occasion, passed to the wake-up call AI. The more context you provide, the more personal and relevant the call will be. Include things like the person's name, what they have going on, their personality, or how they'd like to be woken up (e.g. gentle, energetic, motivational). **Truncated to 200 characters** — keep it concise.\n\n## Payment\n\nPaid endpoints use [x402](https://www.x402.org/) Solana USDC. When payment is required, the server returns `402` with a `PAYMENT-REQUIRED` header containing a proposed transaction. Sign it and resubmit with a `PAYMENT-SIGNATURE` header.\n\nRequests that would fail validation (invalid phone, already verified, rate limited, unverified phone for scheduling) return error responses without requiring payment.\n\n### Reference client\n\nA Python reference client using the official x402 SDK is available at `scripts/wake-cli.py`. Run it with `uv`:\n\n```bash\nuv run scripts/wake-cli.py --keypair ~/.config/solana/id.json --phone +15551234567 verify\nuv run scripts/wake-cli.py --keypair ~/.config/solana/id.json --phone +15551234567 \\\n    schedule --time 2026-04-01T07:00:00Z --voice ash --hints \"Big meeting at 9am\"\n```\n\nThe script handles x402 payment negotiation automatically via `x402HttpxClient`.\n\n## Errors\n\n<!-- Keep in sync with capabilities.clj error table -->\nAll errors return `{\"error\": \"...\"}`.\n\n| Status | Meaning |\n|--------|---------|\n| 400 | Malformed JSON |\n| 402 | Payment required (x402) |\n| 403 | Phone not verified |\n| 404 | Attempt not found |\n| 413 | Request body too large |\n| 422 | Invalid input (bad phone, unknown voice, past timestamp, etc.) |\n| 429 | Rate limited |\n| 500 | Server error |\n| 503 | Service temporarily unavailable |\n\n## Common edge cases\n\n- **User gives a local phone number:** Convert to E.164 format before calling the API. Ask the user for their country code if ambiguous.\n- **User says \"tomorrow at 7am\":** Convert to an absolute UTC timestamp. You need the user's timezone to do this correctly — ask if you don't know it.\n- **Verification call not answered:** The attempt will expire after 2 minutes. Prompt the user and initiate a new verification attempt.\n- **User wants multiple calls:** Pass multiple timestamps in the `times` array. Each call costs $2.00 USDC.\n- **User doesn't specify a voice:** Pick one for them. All voices are AI-generated; there is no \"default\" — any choice works.\n- **User has Do Not Disturb or call screening enabled:** Share the vCard from step 3 and instruct them to add \"Wake Up\" to their allowed contacts or favorites so the call rings through.\n\n","topics":["Payment","Schedule"],"tags":{"latest":"1.3.0","x402":"1.3.0","wake up calls":"1.0.0"},"stats":{"comments":0,"downloads":677,"installsAllTime":25,"installsCurrent":0,"stars":0,"versions":4},"createdAt":1773599757542,"updatedAt":1779000375757},"latestVersion":{"version":"1.3.0","createdAt":1773604405323,"changelog":"wake-meup-ai version 1.3.0\n\n- Added clawdis metadata with detailed environment variable and dependency information for improved deployment and clarity.\n- Updated dependency specification for uv to require version 0.5 or higher.\n- Enhanced Solana keypair environment variable description to recommend using a dedicated low-value keypair.\n- No functional or API changes; all workflow, usage, and endpoint details remain unchanged.","license":"MIT-0"},"metadata":{"setup":[{"key":"SOLANA_KEYPAIR_PATH","required":true}],"os":null,"systems":null},"owner":{"handle":"brianium","userId":"s171zha1z87gpnnt31m9m8sxjh8503cf","displayName":"Brian Scaturro","image":"https://avatars.githubusercontent.com/u/636651?v=4"},"moderation":null}