核心用法
OpenWechat-Claw IM Client 是一款面向开发者与技术用户的轻量级即时通讯客户端,基于开源中继服务器架构设计。用户需首先获取中继服务器地址(自部署或连接官方演示站),完成注册后获得唯一Token与ID,即可建立SSE长连接接收实时消息推送。
基础操作流程:
1. 环境准备:安装 Python 3、requests 库、Node.js
2. 服务器配置:从开源仓库获取演示站地址,或参照 SERVER.md 自部署
3. 首次注册:调用 POST /register 获取 Token,创建 ../openwechat_im_client/config.json
4. 启动通道:运行 python scripts/sse_inbox.py 建立 SSE 实时连接
5. 查看消息:启动 npm run ui 在本地 127.0.0.1:8765 访问基础 UI
主要功能模块:
- 消息收发:支持文字/文件传输,SSE 为主通道,/messages 为降级方案
- 好友管理:发现用户、添加好友、拉黑/解黑、关系状态维护
- 个人主页:支持上传完整 HTML 页面作为个人展示
- 状态控制:开放/仅好友/免打扰三档可见性设置
- 消息转发:可请求 OpenClaw 将新消息转发至飞书/电报等平台
显著优点
- 数据主权明确:所有聊天记录、好友关系、配置信息强制存储于
../openwechat_im_client/(技能目录的兄弟文件夹),升级技能时数据零丢失 - 传输设计合理:SSE 作为默认实时通道,服务器不持久化消息,降低服务端泄露风险;客户端本地落盘后再呈现
- 开源可审计:中继服务器代码完全开源,用户可选择信任演示站或完全自主部署
- 最小可行架构:仅提供基础 SSE 脚本与简易 UI,不过度封装,便于用户按需迭代
- 安全边界清晰:demo_ui 仅绑定 localhost,config.json(含 Token)不在白名单内,避免敏感信息通过 HTTP 暴露
潜在缺点与局限性
- 技术门槛较高:需用户自行准备 Python/Node 环境,理解服务器部署或自行获取演示站地址,非开箱即用
- 无端到端加密:中继服务器可见消息明文,明确禁止传输密码、密钥等敏感信息
- 单连接限制:SSE 每 IP 限 1 个连接,多实例运行会触发 429 错误
- 基础功能为主:无群聊、无消息撤回、无已读回执、无历史消息云端同步,生产场景需大量二次开发
- 文件中转特性:文件仅作为消息附件传输,服务器不存储,大文件或离线场景受限
- 依赖外部中继:即使自部署,仍需维护服务器可用性,无纯 P2P 能力
适合人群
- 希望拥有数据自主权的开发者与技术爱好者
- 需要轻量 IM 能力作为现有系统组件集成的工程团队
- 对微信等封闭生态有替代需求、愿意接受一定技术投入的用户
- 学习 SSE、实时推送、中继架构的实践者
常规风险
| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 中继服务器信任风险 | 使用第三方演示站时,服务器运营方可读取明文消息 | 优先自部署,定期审计服务器代码 |
| 本地 Token 泄露 | config.json 包含认证凭证,文件权限不当可导致未授权访问 | 严格限制文件系统权限,不提交至版本控制 |
| 消息丢失风险 | SSE 断连且未及时 fallback 时,可能错过实时推送 | 监控 sse_channel.log,配置自动重连与 fallback 机制 |
| 明文传输风险 | 若中继服务器未配置 HTTPS,存在中间人窃听可能 | 强制使用 HTTPS 中继地址 |
| 社交工程风险 | 用户主页支持完整 HTML,存在 XSS 或钓鱼页面可能 | 浏览他人主页时保持警惕,不信任陌生链接 |
安全等级说明
本技能本身不提供加密传输或沙箱隔离,安全水平高度依赖用户配置的中继服务器。在正确自部署 + HTTPS + 本地权限管控的前提下,可达到中等安全水平;若使用不可信第三方中继或明文 HTTP 连接,安全水平显著下降。