Skip to content

Repository files navigation

WePush-Logo

WePush

专注批量推送的小而美的工具

star GitHub stars GitHub release GitHub license

Featured|HelloGitHub

产品线与版本选择

WePush 采用 Classic 与 Next 双轨发展。两条产品线彼此独立,允许按各自需要演进和拥有重复代码;Next 不会影响 Classic 的安装与使用。

产品线 当前定位 适合场景 入口
WePush Classic 稳定桌面客户端 微信、短信、邮件、HTTP 等成熟批量推送场景 Classic 下载
WePush Next 1.2.0 Stable 三平台离线自部署、1.x 兼容承诺、Service/Agent、资源治理、AI 助手接入、可恢复运维、WebUI/Desktop 与可扩展 Provider Next 1.2.0 下载

当前源码的 Classic 与 Next 均要求 JDK 25+ 构建;不含运行时的发行包及 Java SDK 要求 Java 25+。完整安装包内置 Java 25 运行时。

AI 助手接入:Codex、MCP 与 Skill

Classic 和 Next 均支持让 Codex 等 AI 助手使用 WePush。可一键安装 Codex MCP + Skill、仅安装 Skill,或生成通用 stdio MCP 配置给其他兼容客户端。两版独立实现,安装名称不同,可以同时使用。

此功能随 Classic 当前发行版和 Next 1.2.0 提供。更早的 Next 1.1.0 及不含该入口的旧 Classic 安装包需要升级后再使用。

版本 接入入口 MCP / Skill 名称 主要能力
Classic 应用 → AI 助手接入 wepush-classic 查询已有任务、查看发送预览、空跑、授权发送、查询进度与历史
Next 设置 → AI 助手接入 wepush 发现渠道与 Schema、查询资源、创建消息/受众/任务、空跑、授权发送、查询结果与控制运行

快速开始:

  1. 在 WePush 中配置渠道账号。Classic 还需保存消息、人群和任务;Next 需启动 Service 并核对 Service URL 与 Workspace。
  2. 在 Classic 或 Next Desktop 的接入页面点击 一键接入 Codex,再重新连接 Codex MCP,必要时重启 Codex。两版桌面安装均使用各自自带的运行时,无需额外安装 Node.js 或 Java。
  3. 让助手先查询并空跑任务,例如:“用 WePush Classic 列出任务,空跑任务 1,并告诉我结果。”正式发送前核对预览中的消息与人群,按用户授权执行,再查询实际运行结果。

使用 Next WebUI 时,在接入页面下载安装器并执行页面生成的命令,需要 Node.js 24+。仅使用 Skill 可点击 仅安装 Skill;其他支持 stdio MCP 的客户端可使用 Classic 的 复制通用 MCP 配置 或 Next Desktop 的 导出通用 MCP 配置。

  • **Classic 执行范围:**已保存的手动固定线程任务,线程数 1~100,关闭任务的结果邮件提醒;使用期间保持 Classic 运行。账号、消息、人群及任务的编辑仍在 Classic 界面完成。
  • **Next 运行要求:**保持 Service 可达;启用认证后,在 AI 客户端环境中设置 WEPUSH_API_TOKEN。安装器不复制登录 Token,调用遵循已有 Workspace 权限。
  • **发送防重:**正式发送使用预览确认令牌和请求编号;超时后查询原运行,重试时复用原请求编号与参数,结果不明时不自动重发。

安装目录、客户端配置、完整工具列表及排错说明见 Classic 接入指南 和 Next 接入指南。

WePush Next Stable

Next 是位于 next/ 的完整新架构产品线,包含 Core Engine、Provider SPI、可安装 Service、远程 Agent、Remote/Embedded Java SDK、React WebUI 和 Electron Desktop。1.2.0 是兼容 1.1.0 的稳定 Minor 发行版,在既有 1.x 兼容承诺之上提供 Codex MCP/Skill 接入,并把 Java 运行基线升级到 25。

Next 的长期定位是由用户自行下载、安装、部署和运维的开源产品。项目不建设承载用户业务数据的官方公共 SaaS,不提供注册、计费、订阅或公共租户平台,也不规划云 KMS/Secret Manager 集成。用户可以在自己的环境中运行 Standalone,或自行搭建 Server/HA 和远程 Agent。

1.2.0 重点更新

  • Desktop 一键安装 Codex MCP 与 Skill;WebUI 和发行包提供 wepush-ai.mjs。正式发送仍使用预览确认、幂等键和 Workspace 权限。
  • Java 运行基线升级到 25。完整包携带 Java 25 运行时;精简包和 Java SDK 需要系统 Java 25+。
  • 不新增数据库迁移。运营商插件、Workspace 资源治理、脱敏诊断、跨 Run 熔断、PostgreSQL 通知、Multipart Artifact 和 WebUI 主题继续可用。

Next 组件

组件 主要职责 形态与边界
Core / Engine 执行批量任务,管理并发、重试、暂停、恢复、取消、结果与运行事件 纯 Java 无界面执行内核,不直接提供网络 API,也不依赖 Service、UI 或具体 Provider
Provider SPI / Provider 定义消息渠道扩展契约,负责账号校验、消息渲染和实际发送 Core 只面向 SPI;内置 HTTP 和 8 个标准渠道,另有 CMPP/SMGP/SGIP/SMPP 独立签名插件
Service 提供配置、调度、运行控制、Secret、Artifact、审计、REST/SSE、OpenAPI 和 Agent 控制面 可前台运行或安装为 Linux systemd、macOS launchd、Windows Service;本机模式可内嵌 Core Engine
Agent 在独立主机接收 Lease,使用 Core Engine 执行任务并回传事件、结果和 Artifact 可独立安装,通过 gRPC 主动连接 Service;本机内嵌执行时不需要 Agent
Remote Java SDK 让 Java 应用通过强类型客户端调用远程 Service API 已实现;只依赖公开的 service-api 契约,不依赖 Core、Engine 或具体 Provider
Embedded Java SDK 让 Java 应用在自己的进程内直接装配 Core Engine 和选定 Provider,无需启动 Service 1.2.0 Java SDK 附件包含 HTTP 与标准渠道 Provider;业务应用仍须显式选择
WebUI 提供可视化配置、任务与调度、运行中心、Agent 观察和动态调试 API 文档 TypeScript + Vite + React,可由 Service 直接托管,也可在开发环境独立运行
Desktop UI 提供与 WebUI 一致的桌面管理体验和安全 Electron 外壳 连接并管理已安装的本机 Service,使用系统安全存储保存 Token;不把 Service 内嵌进 UI

当前典型调用关系为:WebUI / Desktop UI / Remote Java SDK → Service API → Service → 内嵌 Core Engine;远程执行时则由 Service → Agent → Core Engine → Provider 完成发送。进程内集成使用 业务 Java 应用 → Embedded Java SDK → Core Engine → Provider,不经过 Service。

第一次使用请从《WePush Next 对外使用指南》开始。macOS/Windows 发行物按项目约定不使用商业代码签名,请只从 next-v1.2.0 GitHub Release 下载,并使用同一 Release 中的 SHA256SUMS 校验完整性。

WePush Classic

Classic 是现有稳定客户端,继续在仓库原有目录中独立维护和演进。

支持的平台

Windows • Linux • macOS

目前已经支持的消息类型

  • 模板消息-公众号
  • 模板消息-小程序
  • 订阅消息-小程序
  • 微信客服消息(文本、图文、图片、语音、视频、音乐、小程序卡片)
  • 微信企业号/企业微信消息
  • 企业微信小程序通知消息
  • 小程序统一服务消息
  • 钉钉
  • 飞书群自定义机器人(文本、富文本、消息卡片、原始 JSON;支持签名校验)
  • 阿里云短信
  • 阿里大于模板短信
  • 腾讯云短信
  • 华为云短信
  • 百度云短信
  • 又拍云短信
  • 七牛云短信
  • 云片网短信
  • 网易云信短信
  • 榛子云短信
  • Luosimao短信
  • 极光短信
  • 极光推送
  • E-Mail
  • HTTP请求(单次、批量、压测)

功能&亮点

  1. 支持自定义消息内容并批量推送
  2. 支持变量消息(可实现根据发送目标用户不同每条消息内容不一样)
  3. 支持消息编辑、预览、消息管理
  4. 支持通过文件导入用户(txt、csv、excel)
  5. 支持通过MySQL导入用户
  6. 支持微信公众号全员推送
  7. 支持微信全家桶消息(公众号、小程序、企业号)
  8. 支持各种粒度的定时推送
  9. 支持推送历史管理和失败重新推送
  10. 支持多账号管理和切换(微信)
  11. 支持各种搜索、导入、导出
  12. 小而美的可视化界面,支持亮暗多种外观风格
  13. 支持全局字体字号设置
  14. 支持推送结果邮件通知
  15. 支持一键接入 Codex MCP / Skill,供 AI 助手查询任务、空跑校验和按授权发送(接入说明) ……

截图速览

Overview Overview Overview Overview Overview Overview Overview Overview

安装文件下载

WePush Classic 下载地址

使用到的一些小技术点

  • Java
  • Java Swing
  • 线程池
  • 连接池(HTTP:按通道/账号共享 OkHttp 连接池)
  • HTTP/2(ALPN 自动协商,并自动回退 HTTP/1.1)
  • 定时任务
  • SQLite
  • MyBatis

Classic HTTP 性能对照

Classic 默认使用 HTTP/2 + HTTP/1.1 自动协商,任务结束时会在日志中输出协议命中、新建/复用连接、429 以及 p50/p95/p99 耗时。可用同一批数据强制 HTTP/1.1 作为对照组:

java -Dwepush.http.protocol=http1 -jar WePush.jar

并发上限默认沿用全局最大线程数,也可按消息类型覆盖(<msgType> 为消息类型数值):

java -Dwepush.http.maxConcurrency.<msgType>=20 -jar WePush.jar

遇到的麻烦和挑战

  • Swing界面不好控制,导致需要投入较多精力和耐心
  • 工作过于饱和,经常到半夜很晚才挤出一点时间
  • 要做的事情有很多,比如WePush中间件及其附属的集消息中心、通知报警、任务、批量、重试、统计等于一身的方便部署的Web管理应用
  • 陪家人时间变少或无
  • 锻炼身体时间变少或无
  • 越来越发现需要不断学习源码和底层的重要性

特别感谢

WxJava
Hutool
FlatLaf

开发&构建

https://gitee.com/zhoubochina/WePush/wikis/build

使用帮助

https://gitee.com/zhoubochina/WePush/wikis/help
QQ交流群:

WePush

鼓励&赞赏

如果WePush对您有所帮助或便利,
欢迎对我每天下班和周末时光的努力进行肯定,
您的赞赏将会给我带来更多动力

WePush

About

专注批量推送的小而美的工具,目前支持:模板消息-公众号、模板消息-小程序、微信客服消息、微信企业号/企业微信消息、阿里云短信、阿里大于模板短信 、腾讯云短信、云片网短信、E-Mail、HTTP请求、钉钉、华为云短信、百度云短信、又拍云短信、七牛云短信

Topics

Resources

Stars

4.7k stars

Watchers

148 watching

Forks

Releases

Packages

Used by

Contributors

Languages