explaingit

rememberber/wepush

4,640JavaAudience · developerComplexity · 2/5Setup · moderate

TLDR

A Java desktop app for sending bulk messages across WeChat, DingTalk, Chinese SMS providers, and email, with variable content per recipient, scheduling, and automatic retry.

Mindmap

mindmap
  root((repo))
    What it does
      Bulk message sending
      Scheduled delivery
      Retry failed sends
    Channels
      WeChat official accounts
      DingTalk
      SMS providers
      Email and HTTP
    Import Sources
      CSV and Excel
      Plain text files
      MySQL database
    Tech Stack
      Java Swing
      SQLite
      HikariCP
      MyBatis
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Send personalized WeChat template messages to thousands of users at once using a CSV recipient list.

USE CASE 2

Schedule batch SMS campaigns across multiple Chinese cloud providers with automatic retry on failure.

USE CASE 3

Push DingTalk notifications with variable content per recipient imported from an Excel spreadsheet.

USE CASE 4

Run a load test against an HTTP endpoint using the built-in batch HTTP mode.

Tech stack

JavaSQLiteHikariCPMyBatisJava Swing

Getting it running

Difficulty · moderate Time to first run · 30min

Requires WeChat or DingTalk API credentials, all documentation is in Chinese.

In plain English

WePush is a desktop application for sending messages in bulk across a wide range of Chinese communication platforms. It runs on Windows, Linux, and macOS, and its primary audience is developers or businesses that need to push notifications or marketing messages to large numbers of recipients at once. The tool supports an unusually broad list of channels. On the WeChat side, it covers official account template messages, mini program template and subscription messages, customer service messages, and enterprise WeChat messages. Beyond WeChat, it also supports DingTalk, multiple Chinese SMS cloud providers (including Alibaba Cloud, Tencent Cloud, Huawei Cloud, Baidu Cloud, Qiniu, and Yunpian), standard email, and generic HTTP requests. The HTTP mode supports single, batch, and load-testing modes. Key features include support for variable message content, meaning each recipient can receive a slightly different message based on data you supply. You can import your recipient list from plain text files, CSV, Excel spreadsheets, or directly from a MySQL database. Scheduled sending is built in, with options for various time granularities. If a send fails, the tool keeps a history of results and lets you retry just the failed recipients. Multiple WeChat accounts can be saved and switched between within the app. The interface is a Java Swing desktop GUI with light and dark themes and several visual styles. It also sends email notifications when a push batch finishes. Under the hood it uses a thread pool and connection pooling (HikariCP for database connections and a pooled HTTP client) to handle high-volume sends without overwhelming the target APIs. Local storage uses SQLite via MyBatis. The README is written in Chinese, and the project's main documentation and download links point to a Chinese code-hosting platform called Gitee.

Copy-paste prompts

Prompt 1
How do I import a CSV file into WePush to send a bulk WeChat template message with custom variables per recipient?
Prompt 2
Set up WePush to send scheduled SMS messages via Alibaba Cloud SMS and automatically retry failed sends.
Prompt 3
Show me how to configure WePush for enterprise WeChat to push notifications to a list of employees.
Prompt 4
How do I switch between multiple WeChat accounts in WePush to run campaigns for different clients?
Prompt 5
Configure WePush to import recipients from a MySQL database and send them different email content.
Open on GitHub → Explain another repo

← rememberber on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.