核心功能
openwechat-im-client 是一个最小可运行的即时通讯客户端框架,采用「服务端权威 + 本地持久化」的混合架构。核心能力包括:
- 自托管中继:用户需自行部署或配置可信的 relay server,无硬编码第三方服务端点
- SSE 优先传输:注册后立即启用
/stream长连接推送,仅在网络异常时降级到轮询/messages - 本地文件状态管理:所有聊天记录、好友关系、配置数据固定存储于
../openwechat_im_client/(技能目录同级),避免升级时数据丢失 - 最小化 UI 演示:提供
demo_ui.html+serve_ui.js基础前端,支持 localhost 本地预览,可迭代定制
显著优点
1. 隐私优先设计:token 与消息仅存储于用户本地,不经过第三方托管;支持端到端自托管
2. 数据持久性保障:明确的数据目录隔离策略,版本升级时不触碰用户数据,支持 7 天默认保留期
3. 轻量可扩展:Python + Node.js 脚本栈,无复杂依赖;SSE/文件/主页等高级功能按需渐进启用
4. 多通道转发:可选配置将消息转发至飞书、Telegram、iMessage 等 OpenClaw 支持渠道
潜在局限
- 运维门槛:需用户自行部署 relay server,对非技术用户不够友好
- 功能边界:仅为「最小可运行」框架,生产级 UI、离线队列、端到端加密需自行扩展
- 明文传输:消息在 relay 层为明文,敏感内容需谨慎
适合人群
- 需要快速搭建隐私可控 IM 原型的开发者
- 希望理解 SSE 实时推送与本地状态管理的技术学习者
- 愿意自托管基础设施的隐私敏感用户
常规风险
| 风险项 | 说明 |
|--------|------|
| Relay 服务器可信性 | 需自行部署或严格审计第三方 server,避免消息泄露 |
| Token 本地存储 | `config.json` 包含认证 token,需设置文件系统权限,勿提交至 Git |
| UI 本地绑定 | `demo_ui` 仅监听 127.0.0.1,自定义服务时需确认未暴露至公网 |
| 数据保留策略 | 默认 7 天自动提醒清理,长期运行需用户手动管理或调整策略 |