Open-source project
pppscn/SmsForwarder avatar
pppscn/SmsForwarder

SmsForwarder: An Android SMS and notification relay with a wide webhook reach

Android APP bark webhook Telegram Server PushPlus V3.0 PS. APK BUG ISSUE PR .

27,980 stars3,415 forksKotlinBSD-2-Clause

At a glance

What is it?
SmsForwarder turns a spare Android phone into a forwarding hub for SMS, calls, and app notifications, pushing them to services like Telegram, Bark, and DingTalk. It is a mature Kotlin project with a BSD-2-Clause license, but its focus on Chinese messaging platforms and its privacy statement deserve attention.
Who is it for?
Adopt SmsForwarder if you need a self-hosted forwarding tool for a spare Android device and you are comfortable with the Chinese-centric platform support and the BSD-2-Clause terms. Do not adopt it if you require an actively maintained project with a clear roadmap, because the last release is a fifth-anniversary edition and the README warns that the Java version is archived.
Can I use it commercially?
Yes. BSD-2-Clause is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What it solves and who it is for

SmsForwarder solves a specific problem: you have an Android phone that you do not carry with you, and you want to receive its SMS, phone calls, and app notifications on another device. The README describes it as a tool for monitoring and forwarding based on specified rules. It is aimed at people who keep a backup phone, commonly called a spare phone, and want to avoid missing messages. The project explicitly says it is not only for SMS, but also for calls and notifications. The target user is someone who can configure webhooks and who uses services like Telegram, Bark, or Chinese platforms such as DingTalk and WeCom. The README also mentions active control features added in v3.0, allowing remote actions like sending SMS, querying call logs, and checking battery level. That makes it useful for remote management of a device, not just passive forwarding.

How the forwarding mechanism works

The repository does not include a detailed architecture document, but the README and the list of dependencies reveal the mechanism. The app monitors SMS, incoming calls, and app notifications on the Android device. It then applies user-defined rules to decide which events to forward and to which destination. Destinations include DingTalk custom robots, WeCom group robots, Feishu group robots, email, Bark, webhook, Telegram bot, ServerChan, PushPlus, and SMS to another phone. The v3.3 release added automatic tasks and quick commands, which suggests a rule engine that can trigger actions based on conditions. The project relies on a few libraries that hint at the internal design: XUI for the UI, XXPermissions for runtime permissions, AndServer for an embedded HTTP server, and a socket communication library. The HTTP server is likely used for the active control feature, letting a client connect to the phone to send commands. The README mentions a workflow diagram and interface previews, but those images are not included in the cleaned text, so the exact data flow is not fully visible from the material.

Getting it running: installation and setup

The README points to several download sources. The primary source is the GitHub releases page, with a Chinese mirror on Gitee and a cloud drive link with password pppscn. The project also offers a preview experience program that provides weekly builds. The README says that v3.3.0_240305 and later can enable online updates from the About page. For manual downloads, it links to the GitHub Actions workflow Weekly_Build.yml. There is no command-line installation because this is an Android APK. After installing, a new user is directed to the GitHub or Gitee wiki for usage documentation. The README does not list specific configuration keys or setup steps beyond the download and update instructions. The actual configuration likely involves granting permissions for SMS and notification access, then creating forwarding rules in the app's UI. The lack of a written setup guide in the README means you must rely on the wiki, which is not part of the provided material.

Platform support and version boundaries

The README states that v3.x supports Android 4.4 through 13.0. That is a wide range, but it also means the project may not work on Android 14 or later, depending on how the app handles runtime permissions and notification access. The v2.x Java version was archived on June 6, 2022, and is no longer updated. The current Kotlin version is the only maintained branch. The last release is v3.5.0, dated February 14, 2026, which is labeled as a fifth-anniversary edition. The previous release, v3.3.3, is dated a year earlier. The release cadence suggests a yearly update, which is slow for an app that deals with Android system changes. The README mentions a preview program for weekly builds, so there may be more frequent updates in that channel, but the stable releases are annual. If you need a tool that adapts quickly to new Android versions, this project may lag behind.

Limitations and cases where it is the wrong tool

The most obvious limitation is the platform focus. The README lists many Chinese services: DingTalk, WeCom, Feishu, ServerChan, and PushPlus. While Telegram and Bark are also included, a user who primarily wants to forward to Slack or Discord will find no direct option, though a generic webhook could cover those. The project's documentation is in Chinese, with an English version linked but not included in the material. That creates a barrier for non-Chinese speakers. Another limitation is privacy. The README contains a strong statement that SmsForwarder does not collect any user privacy data, but it also says the app sends version information to Umeng Analytics at startup. That is a contradiction in spirit, and a user who is strict about telemetry would need to inspect the code or disable analytics. The active control feature, which allows remote SMS and call log access, is powerful but also a risk: if the phone is compromised, an attacker could use that channel. The project is not suitable for users who want a lightweight forwarder with no extra features, because the active control and automation features add complexity.

A real alternative: Tasker with AutoNotification

A direct alternative to SmsForwarder is Tasker, an Android automation app, combined with its AutoNotification plugin. Tasker can monitor SMS and notifications using its own event contexts, and then forward them via HTTP requests, email, or other actions. The key difference in approach is that Tasker is a general-purpose automation tool, so you build the forwarding logic yourself using profiles and tasks. SmsForwarder is purpose-built for this scenario, so it has a ready-made rule interface and built-in integrations for specific services. Tasker is not free, but it is actively maintained and supports newer Android versions. For a user who already uses Tasker, adding notification forwarding is a matter of configuration, not a new app. For a user who wants a turnkey solution, SmsForwarder is faster to set up, but it carries the risk of slower updates and a narrower platform focus.

Maintenance and licensing considerations

The project is licensed under BSD-2-Clause, which is a permissive license. That means you can use, modify, and distribute the code with minimal restrictions, as long as you preserve the copyright notice. The README includes a special statement that the code and APK are only for testing and learning, and that commercial use is prohibited. That statement is odd because the BSD-2-Clause license does not prohibit commercial use. The README also disclaims any liability for privacy leaks and says the author will remove code if infringement is claimed. This creates a confusing legal situation: the license says one thing, the README says another. You should read the actual LICENSE file in the repository to confirm the terms, and you should not rely on the README's statements for legal decisions. The maintenance outlook is moderate. The project has a single primary author, based on the repository name, and the release history shows annual stable versions. The preview program provides weekly builds, which suggests active development, but the stable channel is slow. The archived Java version indicates that the author is willing to cut old code, which is a positive sign for code quality, but it also means users on older Android versions may be left behind if the Kotlin version drops support.

Editorial conclusion

Adopt SmsForwarder if you need a self-hosted forwarding tool for a spare Android device and you are comfortable with the Chinese-centric platform support and the BSD-2-Clause terms. Do not adopt it if you require an actively maintained project with a clear roadmap, because the last release is a fifth-anniversary edition and the README warns that the Java version is archived. Before using it, verify the privacy statement: the README says no user data is collected, but it also mentions that the app sends version information to Umeng Analytics at startup, so check that behavior against your threat model. Also confirm that your target Android version falls within the stated range of Android 4.4 to 13.0, since newer versions may not be supported. Then test the forwarding rules with a single SMS before relying on it for critical alerts.

Official sources

  1. Official README
  2. Project repository
  3. Release notes
Community notes

Community notes