[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7ECYYP9RPGRG0A8DNQTQMGS":3,"skill-same:01M7ECYYP9RPGRG0A8DNQTQMGS":49},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":20,"frontMatter":21,"refName":22,"commitSha":23,"skillDirectory":24,"forksCount":13,"repositoryHtmlUrl":25,"repositoryHomepageUrl":6,"ownerHtmlUrl":26,"ownerBlogUrl":6,"ownerDescription":27,"updatedAt":28,"install":29,"resources":42},"01M7ECYYP9RPGRG0A8DNQTQMGS","phone-calls",null,"jonahthan433\u002FCortexOS","jonahthan433","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F211465495?v=4","01M7ECH9HPHGA89DCXHHJBTS3C","jonah.ai","01M7ECH9JCEM45DZMWPT7148S1",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjonahthan433\u002FCortexOS\u002Fblob\u002Fmain\u002Fskills\u002Fimported\u002Fpayments\u002Fphone-calls\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"# phone-calls\n\n# AI Phone Calls with StablePhone\n\nMake AI-powered phone calls, buy phone numbers, and get transcripts via x402 payments at `https:\u002F\u002Fstablephone.dev`.\n\n## Setup\n\nSee [rules\u002Fgetting-started.md](rules\u002Fgetting-started.md) for installation and wallet setup.\n\n## Quick Reference\n\n| Task | Endpoint | Price |\n|------|----------|-------|\n| Make a call | `https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fcall` | $0.54 |\n| Check call status | `GET https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fcall\u002F{call_id}` | Free |\n| Buy phone number | `https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fnumber` | $20.00 |\n| Top up number (30d) | `https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fnumber\u002Ftopup` | $15.00 |\n| List your numbers | `GET https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fnumbers` | Free |\n| iMessage\u002FFaceTime lookup | `https:\u002F\u002Fstablephone.dev\u002Fapi\u002Flookup` | $0.05 |\n| Lookup status | `GET https:\u002F\u002Fstablephone.dev\u002Fapi\u002Flookup\u002Fstatus?token=...` | Free |\n\n## Make a Call\n\n```bash\nnpx agentcash@latest fetch https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fcall -m POST -b '{\n  \"phone_number\": \"+14155551234\",\n  \"task\": \"Call this person and ask if they are available for a meeting tomorrow at 2pm. Be polite and professional.\"\n}'\n```\n\n**Required:**\n- `phone_number` — E.164 format (e.g. `+14155551234`)\n- `task` — instructions for the AI agent (what to say, how to behave)\n\n**Optional:**\n- `from` — outbound caller ID (must be an active StablePhone number)\n- `first_sentence` — specific opening line\n- `voice` — voice preset (see Voice Options below)\n- `max_duration` — max call length in minutes (1-30, default 5)\n- `wait_for_greeting` — wait for recipient to speak first (default false)\n- `record` — record call audio (default true)\n- `model` — `\"base\"` (default, best quality) or `\"turbo\"` (lowest latency)\n- `transfer_phone_number` — number to transfer to if caller requests a human\n- `voicemail_action` — `\"hangup\"` (default), `\"leave_message\"`, or `\"ignore\"`\n- `voicemail_message` — message to leave (required when action is `\"leave_message\"`)\n- `metadata` — custom key-value data to attach\n\n## Check Call Status\n\nPoll until `completed` is true:\n\n```bash\nnpx agentcash@latest fetch https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fcall\u002F{call_id}\n```\n\n**Response fields:**\n- `status` — call status\n- `completed` — boolean, true when call is done\n- `answered_by` — `\"human\"`, `\"voicemail\"`, or `\"no_answer\"`\n- `call_length` — duration in seconds\n- `summary` — AI-generated call summary\n- `transcript` — full text transcript\n- `transcripts` — array of timestamped transcript segments\n- `recording_url` — URL to call recording\n- `price` — actual cost\n\nPoll every 5-10 seconds. Calls typically complete in 1-5 minutes depending on `max_duration`.\n\n## Voice Options\n\n| Voice | Description |\n|-------|-------------|\n| `nat` | American female (default) |\n| `josh` | Articulate American male |\n| `maya` | Young American female, soft |\n| `june` | American female |\n| `paige` | Calm, soft-tone female |\n| `derek` | Soft and engaging male |\n| `florian` | German male |\n\n## Buy a Phone Number\n\nBuy a number to use as outbound caller ID:\n\n```bash\nnpx agentcash@latest fetch https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fnumber -m POST -b '{\"area_code\": \"415\", \"country_code\": \"US\"}'\n```\n\n**Optional:**\n- `area_code` — 3-digit US\u002FCA area code (random if omitted)\n- `country_code` — `\"US\"` (default) or `\"CA\"`\n\nNumbers expire after 30 days. Top up to extend.\n\n## Top Up a Number\n\n```bash\nnpx agentcash@latest fetch https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fnumber\u002Ftopup -m POST -b '{\"phone_number\": \"+14155551234\"}'\n```\n\nExtends by 30 days from current expiry. Top-ups stack. Anyone can top up any number.\n\n## List Your Numbers\n\nUses SIWX auth (wallet from auth header):\n\n```bash\nnpx agentcash@latest fetch https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fnumbers\n```\n\n## iMessage\u002FFaceTime Lookup\n\nCheck if a phone number has iMessage or FaceTime. The lookup is async (30-90 seconds).\n\n**Step 1: Start the lookup (paid, $0.05)**\n\n```bash\nnpx agentcash@latest fetch https:\u002F\u002Fstablephone.dev\u002Fapi\u002Flookup -m POST -b '{\"phone_number\": \"+14155551234\"}'\n```\n\nReturns 202 with `{\"token\": \"jwt...\"}`.\n\n**Step 2: Poll for results (SIWX, free)**\n\n```bash\nnpx agentcash@latest fetch \"https:\u002F\u002Fstablephone.dev\u002Fapi\u002Flookup\u002Fstatus?token=JWT_TOKEN\"\n```\n\nPoll every 3-5 seconds until `status` is `\"complete\"`.\n\n**Response when complete:**\n```json\n{\n  \"status\": \"complete\",\n  \"phone_number\": \"+1...\",\n  \"imessage\": \"available|unavailable|unknown\",\n  \"facetime\": \"available|unavailable|unknown|pending\",\n  \"carrier\": {\"carrier\": \"...\", \"number_type\": \"...\"},\n  \"country\": {\"name\": \"...\", \"iso2\": \"...\", \"flag\": \"...\"}\n}\n```\n\n**Notes:**\n- `\"unknown\"` means the number exists but status can't be determined (likely landline\u002FVoIP)\n- Token expires after 60 minutes\n- Same number within ~1 hour reuses cached result\n\n## Workflows\n\n### Quick Call\n\n- [ ] (Optional) Check balance: `npx agentcash@latest balance`\n- [ ] Make call with task instructions\n- [ ] Poll status until completed\n- [ ] Review transcript and summary\n\n```bash\nnpx agentcash@latest fetch https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fcall -m POST -b '{\n  \"phone_number\": \"+14155551234\",\n  \"task\": \"Ask if the business is open on weekends and what their hours are.\"\n}'\n```\n\n### Leave a Voicemail\n\n```bash\nnpx agentcash@latest fetch https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fcall -m POST -b '{\n  \"phone_number\": \"+14155551234\",\n  \"task\": \"Leave a voicemail about the appointment.\",\n  \"voicemail_action\": \"leave_message\",\n  \"voicemail_message\": \"Hi, this is a reminder about your appointment tomorrow at 3pm. Please call back to confirm.\"\n}'\n```\n\nFor natural voicemail delivery, use `\"voicemail_action\": \"ignore\"` which bypasses detection and lets the AI speak naturally into the voicemail system.\n\n### Call with Transfer\n\n```bash\nnpx agentcash@latest fetch https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fcall -m POST -b '{\n  \"phone_number\": \"+14155551234\",\n  \"task\": \"Qualify this lead. Ask about their budget and timeline. If they are interested, offer to transfer to a sales rep.\",\n  \"transfer_phone_number\": \"+14155559999\",\n  \"voice\": \"josh\",\n  \"max_duration\": 10\n}'\n```\n\n### Set Up Dedicated Number\n\n- [ ] Buy a phone number ($20)\n- [ ] Use it as caller ID for outbound calls\n- [ ] Top up before expiry ($15\u002F30 days)\n\n```bash\nnpx agentcash@latest fetch https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fnumber -m POST -b '{\"area_code\": \"212\", \"country_code\": \"US\"}'\n```\n\nThen use it as `from`:\n\n```bash\nnpx agentcash@latest fetch https:\u002F\u002Fstablephone.dev\u002Fapi\u002Fcall -m POST -b '{\n  \"phone_number\": \"+14155551234\",\n  \"from\": \"+12125551234\",\n  \"task\": \"Confirm the reservation for Friday at 7pm.\"\n}'\n```\n\n## Cost Estimation\n\n| Task | Cost |\n|------|------|\n| Single call | $0.54 |\n| Call + dedicated number | $20.54 |\n| Monthly number maintenance | $15.00 |\n| 10 calls\u002Fmonth + number | $20.00 + $5.40 = $25.40 first month |\n",{},"main","38b32c99e7ed0b8e215d638e92cfa452c1ec3079","skills\u002Fimported\u002Fpayments\u002Fphone-calls","https:\u002F\u002Fgithub.com\u002Fjonahthan433\u002FCortexOS","https:\u002F\u002Fgithub.com\u002Fjonahthan433","AI Consultant","2026-10-24 05:13:39",{"source":7,"skillName":5,"commands":30,"prompt":40,"zipAvailable":41},[31,34,37],{"tool":32,"command":33},"npx","npx skills add jonahthan433\u002FCortexOS --skill phone-calls",{"tool":35,"command":36},"bunx","bunx skills add jonahthan433\u002FCortexOS --skill phone-calls",{"tool":38,"command":39},"pnpm","pnpm dlx skills add jonahthan433\u002FCortexOS --skill phone-calls","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjonahthan433\u002FCortexOS\u002Fblob\u002Fmain\u002Fskills\u002Fimported\u002Fpayments\u002Fphone-calls\u002FSKILL.md",true,[43],{"path":44,"resourceType":45,"resourceTypeDesc":46,"sizeBytes":47,"sourceHtmlUrl":48},"skill.json","REFERENCE","参考文档",623,"https:\u002F\u002Fgithub.com\u002Fjonahthan433\u002FCortexOS\u002Fblob\u002Fmain\u002Fskills\u002Fimported\u002Fpayments\u002Fphone-calls\u002Fskill.json",[50,56,62,68,74,80],{"skillNo":51,"name":52,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":53,"categories":54,"keywords":55,"publishedAt":18},"01M7EDQZDQX3Q8Y7GCQX6KN9V7","opportunity-brief","https:\u002F\u002Fgithub.com\u002Fjonahthan433\u002FCortexOS\u002Fblob\u002Fmain\u002Fskills\u002Fsales\u002Fopportunity-brief\u002FSKILL.md",[],[],{"skillNo":57,"name":58,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":18},"01M7EDQYA0V9Y99VKBREJJ3MRT","morning-intel","https:\u002F\u002Fgithub.com\u002Fjonahthan433\u002FCortexOS\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Fmorning-intel\u002FSKILL.md",[],[],{"skillNo":63,"name":64,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":18},"01M7EDQVX1JVY0B6PDHKKGM19G","decision-brief","https:\u002F\u002Fgithub.com\u002Fjonahthan433\u002FCortexOS\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Fdecision-brief\u002FSKILL.md",[],[],{"skillNo":69,"name":70,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":18},"01M7EDQV1GENZAC2SZSD8KZ3GM","weekly-review","https:\u002F\u002Fgithub.com\u002Fjonahthan433\u002FCortexOS\u002Fblob\u002Fmain\u002Fskills\u002Fproductivity\u002Fweekly-review\u002FSKILL.md",[],[],{"skillNo":75,"name":76,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":18},"01M7EDQT2KETJ1Y3CGVN9EKW2J","system-health","https:\u002F\u002Fgithub.com\u002Fjonahthan433\u002FCortexOS\u002Fblob\u002Fmain\u002Fskills\u002Fops\u002Fsystem-health\u002FSKILL.md",[],[],{"skillNo":81,"name":82,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":18},"01M7EDQQN2JK3XPWMS1M4T0F3K","backup-restore","https:\u002F\u002Fgithub.com\u002Fjonahthan433\u002FCortexOS\u002Fblob\u002Fmain\u002Fskills\u002Fops\u002Fbackup-restore\u002FSKILL.md",[],[]]