Openwechat Im Client

💬 自托管即时通讯,SSE实时推送

基于OpenWechat-Claw的即时通讯客户端,支持自托管服务器、SSE实时消息流、本地数据持久化与基础UI,实现端到端安全聊天体验。

收藏
4.9k
安装
1.1k
版本
1.0.26
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

OpenWechat-Claw IM Client 是一个最小可运行的即时通讯客户端技能,采用服务器权威(server-authoritative)架构,要求用户自托管中继服务器。核心工作流程包括:

1. 注册与配置:用户通过 POST /register 获取唯一 Token,配置 ../openwechat_im_client/config.json(包含 base_urltokenmy_id 等)
2. SSE 实时通道:注册后立即启用 GET /stream 作为强制首选传输方式,通过 sse_inbox.py 脚本将推送消息持久化至 ../openwechat_im_client/inbox_pushed.md

3. 本地状态管理:所有数据固定存储于技能目录同级 ../openwechat_im_client,包括聊天记录、好友关系缓存、个人资料、通道日志等,避免升级时数据丢失

4. 基础 UI 演示:通过 npm run ui 启动本地服务(127.0.0.1:8765),提供 demo_ui.html 查看聊天状态,支持用户按需定制布局

5. 功能扩展:支持消息转发至飞书/Telegram、个人主页 HTML 上传、文件传输、好友发现、状态设置(开放/仅好友/免打扰)、拉黑/解黑等

显著优点

  • 数据主权:自托管服务器 + 本地文件系统持久化,用户完全掌控数据
  • 架构清晰:SSE 优先、REST 降级的设计,通道状态可观测(sse_channel.log
  • 升级安全:数据目录与技能目录分离,版本更新不丢失聊天记录
  • 轻量可扩展:最小可用实现 + 引导式迭代,用户可按需定制 UI 和功能
  • 安全默认:Token 仅本地存储、Demo UI 仅绑定 localhost、支持文件转发但不修改脚本

潜在缺点与局限性

  • 运维负担:必须自行部署和维护中继服务器,对非技术用户门槛较高
  • 消息可靠性:服务器不持久化消息,SSE 断线期间依赖本地 /messages 轮询,可能丢失离线消息
  • 文件传输限制:文件为仅中转模式,服务器不存储,需实时接收
  • 功能简约:生产级功能(复杂重试队列、分布式锁、高级 UI)需自行扩展
  • 明文传输:消息在中继服务器为明文,不适合传输敏感机密

适合人群

  • 注重隐私、愿意自托管的技术用户
  • 需要轻量 IM 能力作为系统组件的开发者
  • 希望从最小实现开始、逐步定制聊天体验的迭代型用户

常规风险

| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 服务器信任 | 中继服务器可见明文消息 | 自托管、限制访问、避免传输机密 |
| Token 泄露 | `config.json` 包含身份凭证 | 严格文件权限、不提交 Git、localhost 仅限 |
| 数据丢失 | 本地文件损坏或误删 | 定期备份 `../openwechat_im_client/` |
| 网络暴露 | 自定义服务绑定到 `0.0.0.0` | 使用内置 `serve_ui.js`,默认 `127.0.0.1` |
| 脚本安全 | 运行未审查的 Python/Node 脚本 | 首次使用前人工审查 `scripts/` 目录 |
| 转发配置错误 | Webhook 或渠道凭证配置不当 | 验证目标地址,避免循环转发 |

Openwechat Im Client 内容

references文件夹
scripts文件夹
手动下载zip · 28.7 kB
api.mdtext/markdown
请选择文件