Mojo-Weixin
Mojo-Weixin 是一个基于 Perl 语言开发的微信个人账号客户端框架,专为非图形界面环境设计。它核心解决了将微信功能转化为可编程接口的问题,让用户无需深入掌握 Perl 语法,即可通过标准的 HTTP 协议调用微信的收发消息、管理好友群组等能力,轻松实现与其他系统或编程语言的集成。
这款工具特别适合开发者、运维工程师以及希望构建自动化工作流的技术爱好者。无论是想打造智能聊天机器人、自动回复助手,还是进行消息数据的多语言对接,Mojo-Weixin 都能提供稳定支持。其独特的技术亮点在于高度模块化的插件体系,内置了包括智能回复(如接入微软小冰)、多语言翻译、知识库问答、远程扫码登录等丰富功能插件。用户只需简单配置甚至一行命令,即可快速部署跨平台(Windows/Linux/Mac)的微信服务,极大降低了开发门槛。作为一个开源项目,它严格遵循微信官方原始功能,旨在促进技术交流与合法创新,是连接微信生态与后端服务的优雅桥梁。
使用场景
某初创公司的运维团队需要构建一个 7x24 小时的服务器报警通知系统,并要求值班人员能直接在微信上确认故障或查询状态。
没有 Mojo-Weixin 时
- 开发门槛高且耗时:团队主要使用 Python 和 Go,若要对接微信协议,需从头研究逆向工程或购买昂贵的企业号服务,无法快速落地。
- 交互方式僵化:报警信息只能单向推送到群聊,值班人员无法通过回复特定指令(如“重启服务”)直接触发后台操作,必须登录服务器终端处理。
- 多语言集成困难:现有的监控脚本(Shell/Perl)与新的通知模块之间存在语言隔阂,数据传递依赖复杂的中间文件或数据库,增加了系统不稳定性。
- 部署维护复杂:缺乏轻量级的客户端框架,需要在服务器上模拟完整的图形界面环境才能运行某些微信协议库,资源占用高且易崩溃。
使用 Mojo-Weixin 后
- 零门槛快速集成:利用 Mojo-Weixin 提供的标准 HTTP API 接口,运维人员直接用熟悉的 Python 或 Go 编写业务逻辑,几小时内即可完成报警机器人开发。
- 实现双向智能交互:通过加载
SmartReply或自定义插件,系统能自动解析值班人员的回复指令,直接调用后端脚本执行重启、扩容等操作,形成闭环。 - 无缝连接异构系统:作为基于 HTTP 的中间件,Mojo-Weixin 轻松桥接了老旧的 Perl 监控脚本与现代微服务架构,消息收发稳定且延迟极低。
- 轻量级跨平台部署:支持 Docker 镜像一键部署,无需图形界面即可在 Linux 服务器上稳定运行,大幅降低了资源消耗和维护成本。
Mojo-Weixin 将复杂的微信协议封装为简单的 HTTP 服务,让非 Perl 开发者也能低成本构建功能强大的微信自动化工作流。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
Mojo-Weixin v1.4.6

使用Perl语言编写的微信客户端框架,基于Mojolicious,要求Perl版本5.10+,可通过插件提供基于HTTP协议的api接口供其他语言或系统调用
郑重声明
本项目完全遵循微信官方提供的原始功能,不包含任何破坏、盗号等行为,本项目完全开源,目的是为了促进技术交流学习,禁止任何对国家、企业、个人等构成危害的非法用途,否则后果自负
特色功能
- 支持 发送/接收文字、图片、视频、语音、表情、文件等多种媒体消息(网页版自身功能范围)
- 支持 新增/失去好友、新增/退出群组、新增/失去群成员 等事件提醒
- 支持 创建群组、群组加人/踢人、发送/接受好友验证申请、设置群组名称、设置好友备注
- 支持 Windows/Linux/Mac 多平台,支持docker镜像,易安装部署,不懂Perl也能用
- 提供 基于HTTP协议的API接口 ,简洁丰富,方便和其他编程语言集成
- 一个产品经理的倾情之作,代码由内而外都更加注重“用户体验”,外加主人人品极好,你会懂的
插件列表
| 名称 | 优先级 | 当前状态 | github作者 | 功能说明 |
|---|---|---|---|---|
| ShowMsg | 100 | 已发布 | sjdy521 | 打印客户端接收和发送的消息 |
| IRCShell | 99 | 已发布 | sjdy521 | Linux环境下通过irc客户端使用微信 |
| Openwx | 98 | 已发布 | sjdy521 | 提供微信发送消息api接口 |
| Beauty | 95 | 已发布 | sjdy521 | 识别指定关键字发送美女图片 |
| Translation | 93 | 已发布 | sjdy521 | 多国语言翻译功能 |
| KnowledgeBase | 2 | 已发布 | sjdy521 | 通过微信消息自定义问答知识库 |
| AutoVerify | 1 | 已发布 | sjdy521 | 收到好友验证请求时自动批准同意 |
| PostQRcode | 0 | 已发布 | sjdy521 | 登录二维码发送到邮箱实现远程扫码 |
| UploadQRcode | 0 | 已发布 | sjdy521 | 二维码上传图床获得公网访问url |
| XiaoiceReply | 1 | 已发布 | sjdy521 | 利用微软小冰实现智能聊天回复 |
| ShowQRcode | 0 | 已发布 | sjdy521 | 调用系统图片查看程序来示二维码(目前仅支持win) |
| SmartReply | 0 | 已发布 | sjdy521 | 智能聊天回复 |
更多插件参考完整插件列表
效果展示
敲一行命令就能启动一个智能聊天机器人,Perl 和你都如此优雅. Enjoy!
cpanm Mojo::Weixin && perl -MMojo::Weixin -e "Mojo::Weixin->new->load('ShowMsg')->load('SmartReply')->run()"
[16/01/19 23:10:49] [info] 客户端准备登录...
[16/01/19 23:10:50] [info] 清除残留的历史二维码图片
[16/01/19 23:10:30] [info] 二维码已下载到本地[ /tmp/mojo_weixin_qrcode.jpg ]
[16/01/19 23:11:20] [info] 等待手机微信扫描二维码...
[16/01/19 23:12:09] [info] 手机微信扫码成功,请在手机微信上点击 [登录] 按钮...
[16/01/19 23:12:10] [info] 正在进行登录...
[16/01/19 23:12:10] [info] 微信登录成功
[16/01/19 23:13:40] [info] 获取联系人信息...
[16/01/19 23:13:40] [info] 更新个人信息成功
[16/01/19 23:14:41] [info] 更新好友信息成功
[16/01/19 23:15:42] [info] 更新群组[ 红包群 ]信息成功
[16/01/19 23:15:42] [info] 更新群组[ Perl语言交流 ]信息成功
[16/01/19 23:15:42] [info] 开始接收消息...
[16/01/19 23:15:00] [群消息] 小灰|Perl语言交流 : Mojo::Weixin不错哦
[16/01/19 23:15:58] [群消息] 我->Perl语言交流 : 多谢多谢
通过irc客户端在linux终端上使用微信
+-------------------+ +----------------+
| Tencent | | Any IRC Client |
| Weixin Server | | wechat、irssi |
+---v-------------^-+ +-v------------^-+
| | | |
| 微信协议交互| |IRC协议交互 |
+-- --- |-- - - -- | - - - -- - - --- | --- ----- | --+
| +---v-------------^--+ +----v------------^-+ |
| | <——————————————————< | |
| | Weixin Client | Weixin - IRC | IRC Server | |
| | | 协议转换 | 监听本机6667端口 | |
| | >——————————————————> | |
| +--------------------+ +-------------------+ |
| |
| 我们程序实现的部分 |
+--- - - - - -- - -- ---- ------ ------- ------ --- ----+

更多应用效果 请参见Mojo-Weixin作品展
安装方法
推荐使用cpanm在线安装Mojo::Weixin模块, 如果使用docker方式请参见Docker镜像安装及使用方法
安装perl
安装之前请先确认下你的系统是否已经安装了Perl,因为除了windows,其他大部分的平台默认都可能已经预装过
并且你的Perl版本至少5.10.1+,推荐5.14+
Perl官网下载页面 有包含Unix/Linux、Mac OS X、Windows多平台比较全面详细的安装说明
建议大家尽量选择Binaries(二进制预编译)的版本,安装即可使用,比较方便
Linux上如果你的perl版本较低,想要升级perl,可以考虑使用工具perlbrew
平台 推荐选择 下载地址 Windows 1. StrawberryPerl
2. ActivePerl
3. Mojo-StrawberryPerlStrawberryPerl下载地址
Mojo-StrawberryPerl下载地址
ActivePerl下载地址Linux 1. 系统自带
2. yum/apt等包管理器
3. 官方源码编译
4. ActivePerl
5. DWIM-PerlActivePerl下载地址
DWIM-Perl下载地址Mac 1. 系统自带
2. ActivePerlActivePerl下载地址 注意:
Mojo-StrawberryPerl是基于StrawberryPerl精简打包而成,适用于windows 32位/64位系统
安装cpanm工具(如果系统已经安装了cpanm可以忽略此步骤)
方法a: 通过cpan安装cpanm(只适用于root用户)
$ cpan -i App::cpanminus方法b: 直接在线安装cpanm
$ curl -kL http://cpanmin.us | perl - App::cpanminus 官方服务器在国外,如果无法访问,可以选择下面的命令: $ curl http://share-10066126.cos.myqcloud.com/cpanm.pl|perl - App::cpanminus使用cpanm在线安装 Mojo::Weixin 模块(如果系统已经安装了该模块,执行此步骤会对模块进行升级)
$ cpanm Mojo::Weixin如果安装过程中一直提示下载失败,很可能是因为访问到国外服务器网络比较差
这种情况下可以尝试按如下方式手动指定国内的镜像站点
$ cpanm --mirror http://mirrors.163.com/cpan/ Mojo::Weixin安装失败可能有帮助的解决方法
如果你运气不佳,通过cpanm没有一次性安装成功,这里提供了一些可能有用的信息
在安装 Mojo::Weixin 的过程中,cpan或者cpanm会帮助我们自动安装很多其他的依赖模块
在众多的依赖模块中,安装经常容易出现问题的主要是 IO::Socket::SSL
IO::Socket::SSL 主要提供了 https 支持,在安装过程中可能会涉及到SSL相关库的编译
对于 Linux 用户,通常采用的是编译安装的方式,系统缺少编译安装必要的环境,则会导致编译失败
对于 Windows 用户,由于不具备良好的编译安装环境,推荐采用一些已经打包比较全面的Perl运行环境
例如比较流行的 strawberryperl 或者 activeperl 的最新版本都默认包含 Mojo::Weixin 的核心依赖模块
RedHat/Centos:
$ yum install -y openssl-develUbuntu:
$ sudo apt-get install libssl-dev搞定了编译和运行环境之后,再重新回到 步骤2 安装Mojo::Weixin即可
请尽量在root下安装使用,非root下安装使用参考FAQ
如果仍然有问题,Linux上可以尝试执行如下脚本进行依赖模块检查
$ curl -ks "https://raw.githubusercontent.com/sjdy521/Mojo-Weixin/master/script/check_dependencies.pl"|perl -
如何使用
我对Perl很熟悉,是一个专业的Perler
该项目是一个纯粹的Perl模块,已经发布到了cpan上,请仔细阅读
Mojo::Weixin模块的使用文档除此之外,你可以看下 demo 目录下的更多代码示例
我是对Perl不熟悉,是一个其他语言的开发者,只对提供的消息发送/接收接口感兴趣
可以直接把如下代码保存成一个源码文件(必须使用UTF8编码),使用 perl 解释器来运行
#!/usr/bin/env perl use Mojo::Weixin; my ($host,$port,$post_api); $host = "0.0.0.0"; #发送消息接口监听地址,没有特殊需要请不要修改 $port = 3000; #发送消息接口监听端口,修改为自己希望监听的端口 #$post_api = 'http://xxxx'; #接收到的消息上报接口,如果不需要接收消息上报,可以删除或注释此行 my $client = Mojo::Weixin->new(log_level=>"info",http_debug=>0); $client->load("ShowMsg"); $client->load("Openwx",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api}); $client->run();上述代码保存成 xxxx.pl 文件,然后使用 perl 来运行,就会完成 微信 登录并在本机产生一个监听指定地址端口的 http server
$ perl xxxx.pl发送好友消息的接口调用示例
http://127.0.0.1:3000/openwx/send_friend_message?id=xxxx&content=hello * About to connect() to 127.0.0.1 port 3000 (#0) * Trying 127.0.0.1... * Connected to 127.0.0.1 (127.0.0.1) port 3000 (#0) > GET /openwx/send_friend_message?id=xxxxx&content=hello HTTP/1.1 > User-Agent: curl/7.29.0 > Host: 127.0.0.1:3000 > Accept: */* > < HTTP/1.1 200 OK < Content-Type: application/json;charset=UTF-8 < Date: Sun, 13 Dec 2015 04:54:38 GMT < Content-Length: 52 < Server: Mojolicious (Perl) < * Connection #0 to host 127.0.0.1 left intact {"status":"发送成功","id":23910327,"code":0}更多接口参数说明参考Openwx插件API文档
我是一个极客,我只想能够在命令行上通过 IRC 的方式来玩转微信聊天
核心依赖模块
相关文档
官方交流
赞助奖励
可以通过扫描支付宝付款二维码进行赞助,感谢您的支持和鼓励

特别致谢 那些曾经赞助的小伙伴们
COPYRIGHT 和 LICENCE
Copyright (C) 2014 by sjdy521
This library is free software; you can redistribute it and/or modify it under MIT License and Anti 996 License
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。