Free lightweight native Android client for Telegram, Signal and WhatsApp.
3
stars
68
commits
Kotlin
primary language
Sep 8, 2026
updated
Free lightweight native Android client for Telegram, Signal and WhatsApp.
Link one account or all three: their chats share one list, one local database and the same screens, with a different accent color for each.
How each one signs in:
The login screen has one tab per service. One is enough; the others can be added later from ⋮ → Link account.
The Signal tab opens Set up Signal. Either:
Signing up here only shows chats with people from your device's contacts who let others find them by number on Signal. For the rest, tap ⋮ → Manage accounts, tap the Signal row and type your Signal PIN. Old messages never come back, and that's by Signal's design.
Clone the repo and run:
./build.sh # full build: Go bridge + aar + release APK
./build.sh --apk-only # Kotlin/resource changes only (much faster)
./build.sh --no-install # don't install onto a connected device afterwards
Everything else is fetched and built automatically. The first run is slow — it
compiles TDLib, OpenSSL and libsignal from source — but only once; after that
the results are cached. Every build is a release build and drops the APK in the
repo root as unichat-<version>.apk.
Third-party libraries are checked once a week and picked up automatically.
A build installs automatically when a device is attached.
Telegram needs an app id of your own, which is not in this repo. Get one at my.telegram.org → API development tools (platform Android), then:
cp telegram.properties.template telegram.properties # then fill it in
Please consider donating to the UniChat project:
68 commits
Kotlin
80.1%
Go
15.7%
Shell
4.0%
Free lightweight native Android client for Telegram, Signal and WhatsApp.
3
stars
68
commits
Kotlin
primary language
Sep 8, 2026
updated
Free lightweight native Android client for Telegram, Signal and WhatsApp.
Link one account or all three: their chats share one list, one local database and the same screens, with a different accent color for each.
How each one signs in:
The login screen has one tab per service. One is enough; the others can be added later from ⋮ → Link account.
The Signal tab opens Set up Signal. Either:
Signing up here only shows chats with people from your device's contacts who let others find them by number on Signal. For the rest, tap ⋮ → Manage accounts, tap the Signal row and type your Signal PIN. Old messages never come back, and that's by Signal's design.
Clone the repo and run:
./build.sh # full build: Go bridge + aar + release APK
./build.sh --apk-only # Kotlin/resource changes only (much faster)
./build.sh --no-install # don't install onto a connected device afterwards
Everything else is fetched and built automatically. The first run is slow — it
compiles TDLib, OpenSSL and libsignal from source — but only once; after that
the results are cached. Every build is a release build and drops the APK in the
repo root as unichat-<version>.apk.
Third-party libraries are checked once a week and picked up automatically.
A build installs automatically when a device is attached.
Telegram needs an app id of your own, which is not in this repo. Get one at my.telegram.org → API development tools (platform Android), then:
cp telegram.properties.template telegram.properties # then fill it in
Please consider donating to the UniChat project:
68 commits
Kotlin
80.1%
Go
15.7%
Shell
4.0%