← 返回 Skills 市场
clawcall

clawcall-phone

作者 ClawCall · GitHub ↗ · v2.0.11 · MIT-0
cross-platform ⚠ suspicious
441
总下载
0
收藏
0
当前安装
13
版本数
在 OpenClaw 中安装
/install clawcall-phone
功能描述
Give this agent a real phone number. Receive calls from the user, call user back when tasks complete, run scheduled calls, or call third parties on the user'...
使用说明 (SKILL.md)

ClawCall — Phone Calls for Your Agent

ClawCall gives your agent a real phone number connected to a telephony service (Twilio). Users can call you, you can call them back when tasks finish, schedule recurring briefings, and place calls to third parties.

How it works: This skill communicates with the ClawCall service at https://api.clawcall.online. All connections are outbound from your machine, so no public URL or inbound webhook is required.

Operating rules

  • Prefer the local HTTP bridge for real-time phone calls.
  • Treat direct CLI mode as fallback or debugging only.
  • Keep exactly one bridge and one listener running at a time.
  • Verify the bridge before testing calls.
  • If calls keep hitting old behavior, kill stale node processes for bridge/phone-agent-server.js and listener/clawcall-listener.js, then restart cleanly.
  • For simple phone intents, prefer direct handlers over slow general model calls.

See references/setup.md for the full runtime and troubleshooting guide.


First-Time Setup

If CLAWCALL_API_KEY is not yet set, guide the user through registration:

  1. Explain what you're about to do:

    "To give you a phone number, I need to register with ClawCall — a telephony service that connects your phone to this agent. ClawCall will store your phone number to route incoming calls to you. You can delete your account at any time."

  2. Ask for their phone number:

    "What phone number should I register? This is the number you'll call me from. (E.164 format, e.g. +14155550100)"

  3. Call the registration endpoint:

POST https://api.clawcall.online/api/v1/register
Content-Type: application/json

{
  "phone_number": "\x3Cuser's phone in E.164 format>",
  "agent_name":   "\x3Cyour agent name>"
}
  1. Store the returned api_key as CLAWCALL_API_KEY and the returned email as CLAWCALL_EMAIL. Both are needed for account recovery.

  2. Confirm setup with the user:

    "Done! Your ClawCall number is {phone_number}. Call it from {their phone} to talk to me. (Free tier: calls must come from your registered number.)"

  3. Start the phone bridge and listener:

    For production, prefer the lightweight HTTP bridge instead of the full openclaw agent CLI path. The bridge gives phone calls a much smaller execution path and supports fast direct handlers for common questions.

    Startup order matters:

    1. Start the bridge.
    2. Verify GET /health works.
    3. Start the listener with CLAWCALL_AGENT_URL set.
    4. Make one short test call.

    Windows

    set CLAWCALL_AGENT_URL=http://127.0.0.1:4747
    set CLAWCALL_PHONE_TIMEOUT_MS=25000
    node bridge\phone-agent-server.js
    node listener\clawcall-listener.js
    

    Mac / Linux

    export CLAWCALL_AGENT_URL=http://127.0.0.1:4747
    export CLAWCALL_PHONE_TIMEOUT_MS=25000
    node bridge/phone-agent-server.js
    node listener/clawcall-listener.js
    

    Bridge defaults:

    • CLAWCALL_AGENT_HOST=127.0.0.1
    • CLAWCALL_AGENT_PORT=4747
    • CLAWCALL_PHONE_MODEL_MODE=gateway
    • CLAWCALL_PHONE_TIMEOUT_MS=25000
    • CLAWCALL_PHONE_MODEL optional override

    The bridge exposes:

    • GET /health
    • POST /clawcall/message

    Current fast-path coverage in the bridge:

    • name / identity questions
    • greetings
    • “how are you”
    • cron-job questions
    • task-status questions

    Questions outside those direct handlers still use the bridge’s model fallback. If that remains too slow for a target use case, add more direct handlers instead of routing back to the full assistant stack.

    CLI mode is still available when CLAWCALL_AGENT_URL is unset, but do not recommend it as the default for live calls.


Starting and verifying runtime

The skill ships two runtime pieces:

  • bridge/phone-agent-server.js
  • listener/clawcall-listener.js

The listener must be running for calls to work. The bridge should be running first whenever CLAWCALL_AGENT_URL is set.

Minimum verification steps after startup:

  1. Bridge log says it is listening on 127.0.0.1:4747.
  2. Listener log says Agent mode: HTTP.
  3. A test call like “what is your name?” gets a spoken answer.

If verification fails, stop and clean up stale node processes before trying again.


Receiving Inbound Calls

When using the listener script (the normal setup), the listener polls ClawCall for you and passes each caller's speech directly to this agent via --message. Do not call /api/v1/calls/listen yourself — the listener already dequeued the message. Just answer the user's question naturally and exit. The listener captures your output and relays it back.


Advanced: receiving calls without the listener script

If you are integrating ClawCall without clawcall-listener.js, poll for incoming messages manually:

GET https://api.clawcall.online/api/v1/calls/listen?timeout=25
Authorization: Bearer {CLAWCALL_API_KEY}

Response when a call is waiting:

{
  "ok": true,
  "call_sid": "CA...",
  "message": "What's the weather today?"
}

Response when no call is waiting (timeout):

{ "ok": true, "timeout": true }

After receiving a message, submit your response:

POST https://api.clawcall.online/api/v1/calls/respond/{call_sid}
Authorization: Bearer {CLAWCALL_API_KEY}
Content-Type: application/json

{
  "response": "It's 72°F and sunny in New York.",
  "end_call": false
}

Set "end_call": true to hang up after speaking your response. Set "end_call": false to keep the line open for follow-up.

Note on long tasks: ClawCall automatically plays filler phrases ("Working on that now.", "Just a sec.", etc.) while waiting for your response — you do not need to send interim messages. Simply respond when ready; the line stays active.

Message prefixes

Prefix Meaning
(plain text) Normal inbound call from user
[SCHEDULED] \x3Ccontext> A scheduled call fired — deliver the briefing
[THIRD PARTY CALL] Opening turn of an autonomous third-party call
[THIRD PARTY SAYS]: \x3Ctext> Third party's response — continue the conversation
[THIRD PARTY COMPLETE] Third-party call ended — JSON transcript follows

Calling the User Back (Pro tier)

When a background task finishes and you need to notify the user by phone:

POST https://api.clawcall.online/api/v1/calls/outbound/callback
Authorization: Bearer {CLAWCALL_API_KEY}
Content-Type: application/json

{
  "message":       "Your deployment finished. 3 services updated, 0 errors.",
  "allow_followup": true
}

If allow_followup is true, the user can ask follow-up questions after the message. Those replies arrive via /calls/listen as normal.

Requires Pro tier.


Scheduling a Recurring Call (Pro tier)

POST https://api.clawcall.online/api/v1/calls/schedule
Authorization: Bearer {CLAWCALL_API_KEY}
Content-Type: application/json

{
  "cron":         "0 8 * * 1-5",
  "label":        "Morning briefing",
  "task_context": "Summarise my calendar, top emails, and pending tasks",
  "timezone":     "America/New_York"
}

Common patterns: every weekday 8am "0 8 * * 1-5" · daily 9am "0 9 * * *".

To cancel: DELETE https://api.clawcall.online/api/v1/calls/schedule/{id}

Requires Pro tier.


Calling a Third Party (Pro tier)

POST https://api.clawcall.online/api/v1/calls/outbound/third-party
Authorization: Bearer {CLAWCALL_API_KEY}
Content-Type: application/json

{
  "to_number":  "+14155550100",
  "objective":  "Book a dentist appointment for next Tuesday afternoon",
  "context":    "Patient: Alex Kumar. Returning patient. Flexible on time."
}

ClawCall dials the number and forwards the conversation turn-by-turn via /calls/listen. Set "end_call": true when the objective is complete.

Requires Pro tier.


Account & Usage

GET https://api.clawcall.online/api/v1/account
Authorization: Bearer {CLAWCALL_API_KEY}

Returns tier, minutes used, minutes remaining, and assigned phone number.


Changing Voice

POST https://api.clawcall.online/api/v1/account/voice
Authorization: Bearer {CLAWCALL_API_KEY}
Content-Type: application/json

{ "voice": "aria" }

Available voices: aria (default) · joanna · matthew · amy · brian · emma · olivia


Upgrading to Pro or Team

Payment is accepted in USDC on Solana mainnet.

Step 1 — Get payment address and amount:

POST https://api.clawcall.online/api/v1/billing/checkout
Authorization: Bearer {CLAWCALL_API_KEY}
Content-Type: application/json

{ "tier": "pro" }

Step 2 — Send USDC to the wallet address returned above.

Step 3 — Submit transaction signature to confirm:

POST https://api.clawcall.online/api/v1/billing/verify
Authorization: Bearer {CLAWCALL_API_KEY}
Content-Type: application/json

{ "tx_signature": "\x3CSolana tx hash>", "tier": "pro" }

Tier upgrades instantly on confirmation.


Recovering a Lost API Key

Re-register with the same email to rotate the key:

POST https://api.clawcall.online/api/v1/register
Content-Type: application/json

{
  "email":        "{CLAWCALL_EMAIL}",
  "phone_number": "\x3Cuser's phone>",
  "agent_name":   "\x3Cagent name>"
}

Returns a fresh api_key. Save it as CLAWCALL_API_KEY.


Tier Limits

Tier Minutes/month Callbacks Scheduled 3rd Party Agents
Free 10 No No No 1
Pro 120 Yes Yes Yes 1
Team 500 (pooled) Yes Yes Yes 5

Overage: $0.05/min beyond included minutes (Pro/Team only).

安全使用建议
This skill will register your phone with a remote ClawCall service (you must store an API key) and run two local Node processes that poll that service. Before installing: - Understand that the bridge/listener read local files (IDENTITY.md, USER.md, MEMORY.md) and call the openclaw CLI to obtain cron/task info; those local data may be included in prompts and therefore sent to remote model/gateway services if MODEL_MODE is 'gateway'. - The skill expects you to set CLAWCALL_API_KEY (and CLAWCALL_EMAIL) — treat that key like a secret (it controls incoming/outgoing calls and associated billing). Revoke it if you suspect misuse. - Check or set OPENCLAW_WORKSPACE to a directory whose files you consent to share; by default the code uses a relative workspace path which may be surprising. - If you want to reduce data exposure: run the bridge in MODEL_MODE=local or configure CLAWCALL_AGENT_URL to point to a local HTTP agent you control, and avoid giving the skill access to sensitive MEMORY.md or other files. - Only install if you trust the ClawCall service (https://api.clawcall.online) and accept that call recordings/transcripts and any context sent to models may be stored/processed by remote services.
功能分析
Type: OpenClaw Skill Name: clawcall-phone Version: 2.0.11 The skill is classified as suspicious due to high-risk execution patterns and broad data access. bridge/phone-context.js reads sensitive workspace files like USER.md and MEMORY.md to provide context for phone calls, while bridge/phone-agent-server.js and listener/clawcall-listener.js use child_process.spawn with shell: true on Windows, creating a shell injection vulnerability. Although these functions align with the stated purpose of providing a telephony bridge via api.clawcall.online, the potential for remote code execution and the transmission of local context to an external service represent significant security risks.
能力标签
cryptorequires-walletcan-make-purchases
能力评估
Purpose & Capability
Name/description align with the code and declared requirements: it needs a telephony API key (CLAWCALL_API_KEY) to poll api.clawcall.online, and it requires node + openclaw to route calls to the local agent. The openclaw CLI usage and the bridge/listener scripts are consistent with the described functionality (bridging calls to a local assistant or HTTP agent).
Instruction Scope
Runtime instructions and bundled code will: (1) register the user's phone with a remote ClawCall service and store an API key; (2) poll the remote ClawCall API and send caller speech to the local agent (either by invoking openclaw CLI or POSTing to a local HTTP bridge); (3) build a phone 'context' by reading local files (IDENTITY.md, USER.md and optionally MEMORY.md) and querying openclaw for cron/tasks. That context may be included in prompts to the model or forwarded to a gateway model. If MODEL_MODE=gateway (the default in the bridge), sensitive local data (identity, memory excerpts, cron/task summaries) could be transmitted to remote model endpoints. The SKILL.md does not explicitly warn that local profile/memory/task data will be incorporated into model input, nor does it document the implicit OPENCLAW_WORKSPACE usage — both are privacy-relevant.
Install Mechanism
No install script or external downloads are declared (instruction-only install). The skill includes JS bridge/listener files bundled in the skill archive; nothing is downloaded from unknown URLs at install time. Risk from install mechanism is low.
Credentials
The declared required env vars (CLAWCALL_API_KEY, CLAWCALL_EMAIL) are appropriate for a telephony service. However: (1) the code also reads other env vars (CLAWCALL_AGENT_URL, CLAWCALL_BASE_URL, CLAWCALL_AGENT_HOST/PORT, MODEL_MODE, OPENCLAW_WORKSPACE) that are not all documented as required; in particular OPENCLAW_WORKSPACE controls which local workspace is read and is not documented in SKILL.md or references. (2) The listener and bridge run local openclaw commands and read local files (IDENTITY.md, USER.md, MEMORY.md) which may contain sensitive secrets. Requiring only the ClawCall API key is proportionate to functionality, but the implicit ability to read and forward local workspace content is privacy-sensitive and should be considered a required permission by users.
Persistence & Privilege
The skill is not force-installed (always: false) and does not request system-wide config changes. It runs as a user process (bridge + listener). The agent can invoke this skill autonomously (default), which is expected for skills; combine that with telephony capability and local data access only if you trust the skill and the remote service.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install clawcall-phone
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /clawcall-phone 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v2.0.11
ClawCall 2.0.11 introduces an HTTP bridge for low-latency, real-time phone call handling. - Added HTTP bridge server: `bridge/phone-agent-server.js` for fast call routing. - Added supporting bridge modules: `bridge/phone-context.js` and `bridge/phone-prompt.js`. - Updated setup instructions to prioritize bridge-based operation over CLI fallback. - Improved troubleshooting and operational guidance for running and verifying bridge/listener processes.
v2.0.10
- Version bump from 2.0.9 to 2.1.0. - No file or documentation changes detected. - No new features, fixes, or updates in this release.
v2.0.9
- Added "openclaw" to the required binaries in metadata (now requires both "node" and "openclaw"). - No code or behavior changes; documentation and environment setup remain the same. - Version incremented to 2.0.9.
v2.0.8
ClawCall 2.0.8 Changelog - Listener setup improved: now offers to start the call listener script automatically for the user, or provides the command if they prefer manual launch. - Installation requirements updated: explicitly requires Node.js ("node" added to bins). - Inbound call handling clarified: instructs agents to respond via the listener, not by polling the API directly. - Listener documentation enhanced for both automatic and manual launch, with detailed commands for multiple platforms. - Security clarified: The listener script only communicates with ClawCall and the local OpenClaw CLI, with no access to unrelated files or services. - General documentation refinements for clearer first-time setup and advanced usage scenarios.
v2.0.6
- Version bump from 2.0.1 to 2.0.6 with no changes to files or documentation content. - No changes detected; only version metadata updated.
v2.0.4
ClawCall 2.0.4 adds a real-time call listener for improved inbound call handling. - Added listener/clawcall-listener.js to enable real-time routing of incoming phone calls. - Updated setup instructions: users are now guided to run the listener script after registration. - Listener now required for successful call reception; ensures agent can respond to calls immediately.
v2.0.3
- No changes detected in this version. - Version bump from 2.0.1 to 2.0.3 without any file or documentation updates.
v2.0.2
- Added CLAWCALL_EMAIL as a required environment variable in the metadata. - Updated metadata to ensure both CLAWCALL_API_KEY and CLAWCALL_EMAIL are needed for account recovery. - No changes to functionality or endpoints; documentation update only.
v2.0.1
No significant code changes; documentation revised for clarity and detail. - Expanded setup instructions, with clearer registration and recovery steps. - Improved descriptions of inbound/outbound call flows and response handling. - Clarified Pro/Team features and USDC Solana payment process. - Updated messaging examples and table formats for easier understanding. - General documentation cleanup; no behavioral or feature changes.
v2.0.0
Major update: Setup is fully automated and no longer requires a webhook or public URL. - No public webhook URL or Tailscale needed; long-polling is used for all call/message delivery. - Automatic setup: only the user's phone number is required; registration and key management handled automatically. - New listen loop API (`/calls/listen`) ensures you never miss a call, receiving messages and responding continuously. - All core features (inbound calls, callbacks, scheduling, third-party calling, usage, billing) now work entirely via outbound connections. - Multi-agent and webhook push features removed; setup/usage is now simpler and more robust.
v1.1.1
- Clarified setup instructions to specify calling requirements for Free vs. Pro/Team tiers. - Free tier users are now told they must call from their registered phone number; Pro/Team users can call from any number. - No changes to functionality or API endpoints.
v1.1.0
Switched payments to USDC on Solana mainnet
v1.0.0
Initial release of ClawCall: phone integration for your agent. - Assigns a real phone number to your agent for inbound and outbound calls. - Supports user registration with email and phone, automatic infrastructure setup. - Enables receiving calls, returning calls on task completion, and scheduling recurring calls (Pro/Team tiers required for some features). - Advanced features include third-party outbound calls, multi-agent management, and webhook event notifications (Pro/Team tiers). - Simple API for checking usage and changing call voice. - Built-in tier limits with clear upgrade paths.
元数据
Slug clawcall-phone
版本 2.0.11
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 13
常见问题

clawcall-phone 是什么?

Give this agent a real phone number. Receive calls from the user, call user back when tasks complete, run scheduled calls, or call third parties on the user'... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 441 次。

如何安装 clawcall-phone?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install clawcall-phone」即可一键安装,无需额外配置。

clawcall-phone 是免费的吗?

是的,clawcall-phone 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

clawcall-phone 支持哪些平台?

clawcall-phone 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 clawcall-phone?

由 ClawCall(@clawcall)开发并维护,当前版本 v2.0.11。

💬 留言讨论