一、Demo 简介
这是一个帮助需要频繁在手机微信和电脑之间传输文件的开发者、办公人员、学生解决「微信文件传输繁琐、多设备协作困难」问题的 Web 端微信文件传输与社交协作软件。
核心用户画像很具体:每天需要在手机和电脑之间来回搬运文件的人——比如手机收到的工作文档要转到电脑编辑、微信群里收到的大量图片视频需要统一归档、多个微信联系人发来的文件需要分门别类保存、团队内部需要跨设备共享文件等等。
- 替代微信文件传输助手,实现更强大的文件管理能力
- 解决微信文件传输助手只能登录后使用,无法24小时在不同设备上访问
- 突破微信文件传输的大小和格式限制,支持任意文件类型
FnChat 的四个核心功能:
-
微信扫码直连:通过微信机器人 SDK 扫码登录,自动接收微信消息中的图片、视频、文件,按类型自动归档保存,支持自定义存储路径。
-
双向文件传输:不仅可以从微信接收文件,还能从 Web 端向微信联系人发送文件、文本消息,支持从服务器本地文件浏览器直接选取文件发送,实现真正的双向互通。
-
平台内社交协作:内置好友系统,支持搜索用户、发送好友请求、好友间实时消息(文字/图片/视频/文件),拖拽即发,打通微信端和平台端的消息壁垒。
-
多用户与权限管理:支持管理员/普通用户体系,注册码机制控制准入,每用户独立数据隔离,自定义目录权限和存储位置,适合小团队部署使用。
二、Demo 创作思路
灵感来源:
这个灵感来自我自己的真实日常。工作中每天在微信上收到大量文件——设计稿、需求文档、测试报告,手机上看着方便,转到电脑上编辑就各种麻烦。微信文件传输助手一次只能传一个,文件过了几天还会过期,找起来更痛苦。市面上有微信PC客户端,但它没有灵活的文件管理、没有自定义归档、更没有团队协作能力。
想解决的问题:
不是做一个微信客户端的替代品,而是聚焦一个具体场景:让微信文件流转变得像本地文件操作一样简单,同时赋予它团队协作的能力。
为什么做这个方向:
- 实用,我自己每天都在用微信收发文件,痛点足够真实
- 有技术深度,微信协议对接、WebSocket 实时通信、多用户数据隔离,每一块都有挑战
- 可扩展,比如增加 AI 消息摘要、文件智能分类、更多 IM 平台接入等等
三、Demo 体验地址
飞牛fpk安装包: fnchat-v1.0.3-arm.fpk、fnchat-v1.0.3-x86.fpk
Windows版exe程序: fnchat.exe
第一次运行:
- 浏览器访问
http://localhost:8033,首次使用创建管理员账号。 - 点击微信 Clawbot 会话,扫码连接微信。
- 微信发送ping,fnchat回复pong,视为绑定成功。
- 选择“文件”选项,添加常用的文件夹路径。
- 点击聊天框的服务器文件按钮,选中服务器中任一文件发送。
- 微信上其他聊天的文件,下载到本地,然后在clawbot中点击文件,选择聊天文件,把刚才下载的文件发送到fnchat。
四、TRAE 实践过程
任务一:搭建后端框架与微信机器人对接
任务目标: 从零搭建 FastAPI 后端服务,集成微信频道 SDK,实现扫码登录和消息自动接收。
与 TRAE 协作:
我从零开始让 TRAE 帮我搭建整个后端骨架——FastAPI 应用初始化、CORS 中间件、SQLite 数据库建表、WebSocket 端点。最初微信机器人只支持单用户,我反馈「需要多人同时使用,每个用户连接自己的微信」,TRAE 帮我设计了 BotManager + BotInstance 架构:每个用户拥有独立的机器人实例、独立的微信会话和存储路径,通过 user_id 隔离所有数据。
微信扫码登录的流程也很曲折。最初二维码只在终端显示,我反馈「用户在 Web 端看不到二维码怎么扫」,TRAE 帮我实现了完整的登录状态回调链路:WeixinBot → BotManager → api_server → WebSocket → 前端渲染二维码,用户在浏览器里就能扫码。
.2795409806746724:b70a88cdd3a44ee0349fc2030ffb33e8_6a349e9b73cf2d37a940c385.6a351800ef88d9b870c843de.6a351800a9672fc45f8442ed:Trae CN.T(2026/6/19 18:20:48)
任务二:实现文件管理与双向传输
任务目标: 实现微信消息中图片/视频/文件的自动保存,以及从 Web 端向微信发送文件和文本。
与 TRAE 协作:
这是整个项目最核心的部分。微信端接收文件相对直接——on_image、on_video、on_file 三个处理器分别保存到对应目录,然后通过 WebSocket 广播给前端。但发送方向遇到一个大坑:微信 SDK 的 send_media_file 需要 context_token,而这个 token 是会话级别的,不同联系人有不同的 token。TRAE 帮我在 active_conversations 中维护了每个联系人的 context_token,发送时自动匹配。
文件管理也做了很多迭代。最初所有文件堆在一个目录下,我反馈「图片、视频、文档混在一起根本找不到」,TRAE 帮我设计了分类存储方案:weixin_images/、weixin_videos/、weixin_downloads/、weixin_uploads/ 四个目录,并且支持用户在 Web 端自定义每种类型的保存路径,配置持久化到 save_locations 表。
.2795409806746724:9086a6af0eb48f3a6400f1a1908b00cc_6a349e9b73cf2d37a940c385.6a351a73ef88d9b870c8445d.6a351a72a9672fc45f8442ee:Trae CN.T(2026/6/19 18:31:15)
任务三:社交系统与前端 UI 打磨
任务目标: 实现平台内好友系统、实时消息、文件共享,以及仿微信风格的前端界面。
与 TRAE 协作:
社交功能迭代了整整三个 Session。第一次实现后只有简单的好友列表,我反馈「用户之间怎么发消息?怎么发文件?」,TRAE 帮我设计了完整的好友消息系统:user_messages 表存储聊天记录,friends 表管理好友关系,支持文字、图片、视频、文件四种消息类型。
拖拽发送文件是用户反馈最多的功能。最初只能通过文件选择器上传,我反馈「像微信聊天一样直接拖文件进去发」,TRAE 帮我实现了拖拽区域:dragover/dragenter/dragleave/drop 四个事件处理,拖入后实时预览缩略图,支持同时拖入多个文件批量发送。
前端 UI 也做了大量打磨。最初页面布局很粗糙,我参考微信桌面端的交互让 TRAE 逐项优化:左侧导航栏(消息/联系人/文件/更多)、聊天列表右键菜单(置顶/删除)、联系人分组折叠(我的设备/机器人/特别关心/我的好友)、消息气泡样式区分收发方……最终整体交互体验接近原生微信。
.2795409806746724:e5737c5d15aafd53cee4d9b2e0eb8009_6a320d9a19694c9e7632d2d4.6a33d91f73cf2d37a940c1a3.6a33d91eeaae24c606f80edf:Trae CN.T(2026/6/18 19:40:15)
任务四:多用户体系与权限管理
任务目标: 实现管理员/普通用户体系、注册码机制、目录权限控制,未来实现多设备聊天。
与 TRAE 协作:
多用户是后期加的需求。最初只有单用户模式,我反馈「想给团队成员每人一个账号,但文件要隔离」,TRAE 帮我设计了完整的用户体系:admin_users 和 users 两张表,JWT 认证,管理员可以生成注册码控制准入,每个用户有独立的 userdata/user_{id}/ 目录。
目录权限也做了精细化控制。最初所有用户都能访问服务器任意路径,我反馈「普通用户不应该看到管理员目录」,TRAE 帮我实现了 directory_permissions 表,管理员可以给每个用户授权可访问的目录,未授权的路径直接返回 403。
最后整理了构建脚本,支持 PyInstaller 打包成独立 exe,Windows 用户双击即可运行,无需安装 Python 环境。
.2795409806746724:df87556116689819c54537ab4b5a1017_6a360442d9488a66d67bebce.6a3b56c0d9488a66d67c24bc.6a3b56bf817ed34daf53e74d:Trae CN.T(2026/6/24 12:02:08)
五、效果展示
报名帖链接: 【学习工作赛道】FnChat - 打通NAS与微信的智能协作平台







