Mojo-Weixin

GitHub
1.2k 255 中等 1 次阅读 2周前NOASSERTION其他数据工具语言模型插件
AI 解读 由 AI 自动生成,仅供参考

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
GPU

未说明

内存

未说明

依赖
notes该工具基于 Perl 语言而非 Python。Windows 用户推荐使用 StrawberryPerl 或 ActivePerl;Linux 用户若编译失败需安装 openssl-devel (RedHat/Centos) 或 libssl-dev (Ubuntu)。支持 Docker 部署。
python不适用 (基于 Perl)
Perl >= 5.10.1 (推荐 5.14+)
Mojolicious
Encode::Locale
IO::Socket::SSL
cpanm
Mojo-Weixin hero image

快速开始

Mojo-Weixin v1.4.6 Build Status API列表 QQ群-498880156 IRC LICENSE

使用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端口 | |
|   |                    >——————————————————>                   | | 
|   +--------------------+                  +-------------------+ |
|                                                                 |
|                                       我们程序实现的部分        | 
+---  - - - -  -- - --  ----  ------  -------  ------  ---    ----+

IRCShell

更多应用效果 请参见Mojo-Weixin作品展

安装方法

推荐使用cpanm在线安装Mojo::Weixin模块, 如果使用docker方式请参见Docker镜像安装及使用方法

  1. 安装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-StrawberryPerl
    StrawberryPerl下载地址
    Mojo-StrawberryPerl下载地址
    ActivePerl下载地址
    Linux 1. 系统自带
    2. yum/apt等包管理器
    3. 官方源码编译
    4. ActivePerl
    5. DWIM-Perl
    ActivePerl下载地址
    DWIM-Perl下载地址
    Mac 1. 系统自带
    2. ActivePerl
    ActivePerl下载地址

    注意:

    Mojo-StrawberryPerl是基于StrawberryPerl精简打包而成,适用于windows 32位/64位系统

  2. 安装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
    
  3. 使用cpanm在线安装 Mojo::Weixin 模块(如果系统已经安装了该模块,执行此步骤会对模块进行升级)

     $ cpanm Mojo::Weixin
    

    如果安装过程中一直提示下载失败,很可能是因为访问到国外服务器网络比较差

    这种情况下可以尝试按如下方式手动指定国内的镜像站点

     $ cpanm --mirror http://mirrors.163.com/cpan/ Mojo::Weixin
    
  4. 安装失败可能有帮助的解决方法

    如果你运气不佳,通过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-devel
     
    

    Ubuntu:

     $ 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 -
    

如何使用

  1. 我对Perl很熟悉,是一个专业的Perler

    该项目是一个纯粹的Perl模块,已经发布到了cpan上,请仔细阅读 Mojo::Weixin 模块的使用文档

    除此之外,你可以看下 demo 目录下的更多代码示例

  2. 我是对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文档

  3. 我是一个极客,我只想能够在命令行上通过 IRC 的方式来玩转微信聊天

    请阅读IRCShell插件使用步骤

核心依赖模块

相关文档

官方交流

赞助奖励

可以通过扫描支付宝付款二维码进行赞助,感谢您的支持和鼓励

donate

特别致谢 那些曾经赞助的小伙伴们

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),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|今天
Agent开发框架图像

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 真正成长为懂上

141.5k|★★☆☆☆|今天
开发框架Agent语言模型

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|今天
语言模型图像Agent

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 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|昨天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2天前
Agent图像开发框架