← 返回 Skills 市场
coolhitbird

clawphone

作者 pj wang · GitHub ↗ · v1.1.1 · MIT-0
cross-platform ⚠ suspicious
291
总下载
1
收藏
1
当前安装
2
版本数
在 OpenClaw 中安装
/install clawphone
功能描述
Provides ICQ-like instant messaging with 13-digit number registration, real-time calls, notifications, direct P2P mode, and online status management.
使用说明 (SKILL.md)

ClawPhone Skill\r

\r 一句话: 为 OpenClaw Agent 提供类似 ICQ 的即时通讯能力——注册 13 位数字号码、呼叫、接收通知。\r \r ---\r \r

🎯 核心功能\r

\r

  • 注册号码: phone.register("xiaoxin")"9900778313722" (13 位随机数字)\r
  • 即时呼叫: phone.call("9900778313722", "消息内容") 实时送达\r
  • 接收通知: phone.on_message = lambda msg: ... (事件回调)\r
  • 手动绑定: phone.add_contact(phone_id, address="127.0.0.1:8765") 建立 P2P 映射\r
  • 内置 Direct P2P: await start_direct_mode(port=0) 启动内置 WebSocket 服务器,无需 ClawMesh\r
  • 在线状态: phone.set_status("online") / "away" / "offline"\r \r ---\r \r

📚 使用示例\r

\r

场景 A: 内置 Direct P2P(推荐用于快速部署)\r

\r

// 1. 启动 Skill 并初始化 Direct 模式\r
const skill = await skill('clawphone');\r
await skill.start_direct_mode();  // 返回地址 "127.0.0.1:xxxxx"\r
const myNumber = await skill.register('alice');\r
console.log('我的号码:', myNumber);\r
\r
// 2. 设置消息回调\r
skill.on_message = (msg) => {\r
  console.log('收到:', msg.from, msg.content);\r
};\r
\r
// 3. 添加联系人(通过带外交换地址)\r
// 假设 Bob 把他的地址 "127.0.0.1:8767" 告诉你\r
await skill.add_contact('9900778313722', { address: '127.0.0.1:8767' });\r
\r
// 4. 呼叫 Bob\r
await skill.call('9900778313722', 'Hello Bob!');\r
```\r
\r
### 场景 B: 配合 ClawMesh 网络(底层路由)\r
\r
```javascript\r
// 1. 先在 OpenClaw 中注入 ClawMesh client 并 set_network(clawmesh_client)\r
// 2. 初始化 Skill(会自动使用已注入的网络)\r
const skill = await skill('clawphone');\r
const myNumber = await skill.register('alice');\r
\r
// 3. 呼叫(底层由 ClawMesh 路由)\r
skill.on_message = (msg) => console.log(msg);\r
await skill.call('9900778313722', 'Hello!');\r
```\r
\r
---\r
\r
## 🔧 配置\r
\r
Skill 无需额外配置,自动使用 ClawMesh 底层网络。\r
\r
**可选环境变量**:\r
- `CLAWPHONE_BROADCAST` - 是否启用号码广播(默认 true)\r
- `CLAWPHONE_ALIAS_LIMIT` - 每人最多注册 alias 数量(默认 3)\r
\r
---\r
\r
## 🏗️ 技术设计\r
\r
- **号码格式**: 13 位数字 (1000000000000-9999999999999),先到先得,90万亿空间\r
- **号码簿存储**: 本地 SQLite (`~/.openclaw/skills/clawphone/phonebook.db`)\r
- **传输层**: 复用 ClawMesh WebSocket + ECDH 加密\r
- **推送机制**: WebSocket 长连接 + 心跳保活\r
- **离线消息**: 暂不保存(ICQ 模式,不在线即丢弃)\r
\r
---\r
\r
## 🧪 测试\r
\r
```bash\r
uv run python tests/test_clawphone.py\r
```\r
\r
---\r
\r
## 📦 发布信息\r
\r
- **Skill ID**: clawphone\r
- **版本**: 1.0.0\r
- **许可**: Apache 2.0\r
- **依赖**: clawmesh (自动安装)\r
- **作者**: ClawMesh Team\r
- **标签**: 通讯, 即时消息, Agent协作\r
\r
---\r
\r
## 🔒 安全考虑\r
\r
- 号码本地生成,随机且不可预测\r
- 所有消息通过 ClawMesh 端到端加密\r
- 拒绝匿名呼叫(需已知有效号码)\r
- 可设置黑名单拦截骚扰\r
\r
---\r
\r
## 🗺️ 路线图\r
\r
- [ ] Phase 2: 支持群聊(频道)\r
- [ ] Phase 3: 消息持久化(离线缓存)\r
- [ ] Phase 4: 文件传输(图片、语音)\r
- [ ] Phase 5: 语音/视频通话(WebRTC)\r
\r
---\r
\r
**让 Agent 交流像发 ICQ 一样简单!** 🦞📞\r
安全使用建议
This skill appears to implement a local phonebook and P2P messaging, but there are several red flags you should consider before installing: - Network exposure: One DirectAdapter implementation (adapter/clawphone.py) starts its asyncio server bound to 0.0.0.0 (all interfaces) but reports the address as 127.0.0.1:port. That means it can be reachable from other hosts even though documentation implies localhost-only. If you run this on a machine with network access, it may accept incoming connections from the network. Prefer running behind a firewall or update the code to bind explicitly to 127.0.0.1 if you want localhost-only. - Plaintext Direct mode: Direct P2P adapters send JSON over plain TCP. The README/SKILL.md sometimes claim ClawMesh/ ECDH encryption for transport, but that applies to the ClawMesh mode (external network). Direct mode is unencrypted; avoid sending sensitive data over Direct P2P unless you are certain of the network boundary or add your own encryption layer. - Inconsistent packaging: skill.yaml marks 'clawmesh' as a required dependency even though Direct mode can run without it. This may cause the platform to install extra dependencies unexpectedly. Tests and examples reference ClawMesh components; if you don't intend to use ClawMesh, ensure the platform won't force-install network components you don't want. - Local storage: The skill writes a SQLite DB to ~/.openclaw/skills/clawphone/phonebook.db. That is expected for this feature, but be aware data is stored locally and not encrypted. Practical recommendations: - Inspect or patch adapter/clawphone.py start() to bind to 127.0.0.1 if you only want local connections. - If you need confidentiality, use ClawMesh mode that claims encryption (and verify ClawMesh actually provides E2E encryption), or add TLS/E2E encryption to Direct mode. - Review the origin/repository before installing (metadata lists a GitHub URL but the 'Source' field is unknown). If you install, run the included tests in an isolated environment and monitor open sockets (e.g., with netstat) to confirm listen behavior. Given these implementation/documentation mismatches and the network exposure risk, treat the skill as suspicious until you verify/address the points above.
功能分析
Type: OpenClaw Skill Name: clawphone Version: 1.1.1 The ClawPhone skill provides a peer-to-peer (P2P) messaging system for OpenClaw agents, allowing them to register 13-digit identifiers and communicate via direct TCP/WebSocket connections or the ClawMesh network. The implementation uses a local SQLite database (`phonebook.db`) to store contacts and call logs, and provides standard networking functionality through `DirectAdapter` (found in `adapter/clawphone.py` and `adapter/direct.py`). The code is well-documented, includes comprehensive unit tests, and lacks any indicators of data exfiltration, malicious execution, or harmful prompt injection. The network listening behavior is transparently documented and essential for the skill's stated purpose of instant messaging.
能力评估
Purpose & Capability
The code implements a local phonebook, register/call/lookup/add_contact and two Direct P2P adapters, matching the described IM purpose. However skill.yaml marks 'clawmesh' as a required dependency even though the skill includes a Direct mode that can operate without ClawMesh; this is inconsistent (possible sloppy packaging or an unnecessary required dependency). Tests and examples reference ClawMesh components (node.server/node.client), which is expected for the ClawMesh mode but not required for Direct mode.
Instruction Scope
SKILL.md and README claim transport is 'ClawMesh WebSocket + ECDH encryption' and elsewhere warn Direct mode is plaintext, but the code shows Direct adapters send JSON plaintext. More importantly, the asyncio-based DirectAdapter in adapter/clawphone.py binds the server to host '0.0.0.0' (all interfaces) while reporting its address as '127.0.0.1:port' — this is a direct mismatch that can expose the listening socket to the network despite documentation/examples implying localhost-only. The instructions encourage starting Direct mode without clearly warning about this exposure.
Install Mechanism
No install spec is provided (instruction-only / packaged code). Nothing is downloaded from arbitrary URLs by the skill itself. The skill declares a dependency on 'clawmesh' in metadata, which would be installed by the platform if enforced.
Credentials
The skill does not request credentials or special environment variables. It stores data under the user's home (~/.openclaw/skills/clawphone/phonebook.db), which is proportionate for a local phonebook. SKILL.md documents optional env vars (CLAWPHONE_BROADCAST, CLAWPHONE_ALIAS_LIMIT) but none are required.
Persistence & Privilege
always:false and agent-autonomy are normal. The skill persists its own data in a local SQLite DB in the user's home directory (normal for this functionality). It does not modify other skills or system-wide configuration files.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install clawphone
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /clawphone 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.1.1
ClawPhone 1.1.1 Changelog - Added LICENSE file to clarify project licensing. - No functional or API changes.
v1.1.0
ClawPhone Skill 1.0.0 — ICQ-style instant messaging for OpenClaw agents - Register unique, random 13-digit phone numbers for agents. - Real-time call/message delivery and notification callback support. - Manual peer contact mapping and built-in direct P2P/WebSocket transfer (optional ClawMesh integration). - Online status management ("online", "away", "offline"). - No offline message storage; messages only delivered to online agents. - Local SQLite phonebook, end-to-end encrypted transport, and spam prevention features. Direct P2P mode, adapter pattern, full tests
元数据
Slug clawphone
版本 1.1.1
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 2
常见问题

clawphone 是什么?

Provides ICQ-like instant messaging with 13-digit number registration, real-time calls, notifications, direct P2P mode, and online status management. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 291 次。

如何安装 clawphone?

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

clawphone 是免费的吗?

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

clawphone 支持哪些平台?

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

谁开发了 clawphone?

由 pj wang(@coolhitbird)开发并维护,当前版本 v1.1.1。

💬 留言讨论