← Back to Skills Marketplace
coolhitbird

clawphone

by pj wang · GitHub ↗ · v1.1.1 · MIT-0
cross-platform ⚠ suspicious
291
Downloads
1
Stars
1
Active Installs
2
Versions
Install in OpenClaw
/install clawphone
Description
Provides ICQ-like instant messaging with 13-digit number registration, real-time calls, notifications, direct P2P mode, and online status management.
README (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
Usage Guidance
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.
Capability Analysis
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.
Capability Assessment
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.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install clawphone
  3. After installation, invoke the skill by name or use /clawphone
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
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
Metadata
Slug clawphone
Version 1.1.1
License MIT-0
All-time Installs 1
Active Installs 1
Total Versions 2
Frequently Asked Questions

What is clawphone?

Provides ICQ-like instant messaging with 13-digit number registration, real-time calls, notifications, direct P2P mode, and online status management. It is an AI Agent Skill for Claude Code / OpenClaw, with 291 downloads so far.

How do I install clawphone?

Run "/install clawphone" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is clawphone free?

Yes, clawphone is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does clawphone support?

clawphone is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created clawphone?

It is built and maintained by pj wang (@coolhitbird); the current version is v1.1.1.

💬 Comments