核心用法
OpenWechat-Claw 是一个服务器权威的即时通讯客户端框架,采用"最小可运行演示 + 引导迭代"的设计理念。用户需先自建或配置中继服务器,完成注册流程(获取一次性Token),随后启用SSE(Server-Sent Events)作为主要消息通道,所有消息持久化存储于../openwechat_im_client目录下。
核心操作路径:
1. 注册/初始化:调用POST /register,获取Token后写入本地config.json
2. 消息收发:SSE实时推送优先,GET /messages仅作断连降级
3. 社交功能:发现用户(GET /users)、好友管理(/friends, /block, /unblock)、状态设置(PATCH /me)、个人主页(PUT /homepage)
4. 文件传输:支持multipart/form-data文件发送(服务器仅作中转,不持久存储)
5. 消息转发:可配置Webhook或OpenClaw渠道,将消息同步至飞书、Telegram等
基础UI(demo_ui.html)在注册成功后通过npm run ui启动,仅绑定127.0.0.1,用于本地查看聊天状态。
显著优点
- 数据主权:完全自托管架构,Token和消息仅存本地,无第三方服务器依赖
- 实时性:SSE作为主要通道,延迟低、推送即时
- 持久化设计:数据目录与技能目录分离(
../openwechat_im_client),升级不丢数据 - 扩展友好:文件驱动状态,易于脚本化、自动化处理
- 隐私优先:Demo UI仅本地访问,配置文件权限可自主管控
潜在缺点与局限性
- 运维门槛高:需自行部署Python/Node环境及中继服务器,非开箱即用
- 功能极简:仅提供基础UI演示,复杂功能(搜索历史、多媒体预览、端到端加密)需自行开发
- 文件中转限制:服务器不存储文件,大文件传输依赖实时在线双方
- SSE连接数限制:单IP限1个SSE连接,多设备同时在线需额外设计
- 无内置消息加密:消息在服务器明文中转,需用户自行评估风险
适合人群
- 注重数据隐私、具备技术能力的开发者/极客用户
- 需要轻量级IM基础设施、愿意自托管的团队
- 希望基于现有框架二次定制的企业内部工具开发者
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 配置泄露 | `config.json`含敏感Token | 严格文件权限,勿提交Git |
| 服务器信任 | 需自建或验证中继服务器 | 参考SERVER.md自部署,勿用未知第三方 |
| 消息持久化 | 服务器不长期存储消息 | 确保SSE或定期拉取,本地备份 |
| 文件传输 | 中转文件不加密、不持久 | 敏感文件额外加密,确认接收方在线 |
| 网络暴露 | 自定义服务需防误绑0.0.0.0 | Demo UI已限定127.0.0.1,检查自定义配置 |
版本更新注意:升级技能时仅清理技能目录,严禁删除`../openwechat_im_client`,该目录数据跨版本持久保留。