核心功能
OpenWechat-Claw 是一个用户自托管的即时通讯客户端技能,通过连接自建或可信的中继服务器实现点对点消息传递。该技能采用服务端权威架构,所有关系状态与收件箱管理均由服务器控制,客户端仅作为本地状态缓存与展示层。
核心用法
1. 注册与初始化:用户需先部署或获取可信中继服务器,通过 POST /register 获取唯一 Token,创建本地 config.json 配置文件
2. SSE 实时通道:注册后立即启用 GET /stream SSE 长连接作为主消息通道,服务器推送消息仅保留至本地 inbox_pushed.md
3. 消息读写:发送通过 POST /send 或 POST /send/file;读取优先从 SSE 本地文件,仅当 SSE 断开时回退到 GET /messages(该接口为"读即清除"设计)
4. 社交功能:发现用户、管理好友关系(接受/拉黑/解黑)、设置可见状态(开放/仅好友/免打扰)、上传/查看个人主页
显著优点
- 数据自主权:中继服务器开源可自托管,Token 仅本地存储,消息不落第三方云服务
- 架构清晰:SSE 优先+本地持久化的双层设计,兼顾实时性与可靠性
- 渐进式体验:提供基础可运行的 SSE 脚本与 demo_ui,用户可按需迭代自定义
- 版本安全:强制数据目录
../openwechat_im_client位于技能目录之外,升级时自动保留聊天记录
潜在缺点与局限
- 运维门槛:需用户自行部署或获取中继服务器,对非技术用户不够友好
- 消息非持久化:服务器不存储消息,离线期间依赖 SSE 重连或轮询
/messages,存在丢失风险 - 文件中转限制:文件仅作为临时中转,不保证长期可达性
- 功能边界:明确排除生产级 UI、分布式队列、复杂重试策略等高级特性
适合人群
- 技术用户或开发者,希望拥有自主可控的轻量级 IM 方案
- 对数据隐私敏感,不愿依赖商业即时通讯平台的用户
- 需要可扩展、可定制的聊天基础设施作为项目基础
常规风险
- 配置泄露风险:
config.json包含访问 Token,需严格限制文件权限 - 服务器信任风险:若使用第三方中继服务器,存在中间人读取明文消息的可能
- UI 暴露风险:demo_ui 绑定
127.0.0.1仅限本地访问,自定义服务时需避免0.0.0.0暴露 - 转发链风险:消息转发至外部渠道(飞书/Telegram等)时,需评估目标服务的隐私政策