A beautifully designed AI chat app, built for your phone and your wrist.
Chat with your favourite AI models on your phone, tablet, or Wear OS watch — Material 3 design, Bring Your Own Key, fully open-source and offline-capable.
Table of Contents
Messenger is a Material-3-designed LLM chat application for Android, focused on an on-wrist experience and ease of use. It is fully open-source, free, and offline-capable, using a BYOK (Bring Your Own Key) model.
Chat with your favourite AI models on your phone or tablet — with a clean, modern interface that feels great to use. The Wear OS companion keeps chat simple by syncing your agents from mobile and using your phone as the configured AI backend.
Key highlights:
- Chat anywhere — Works on your phone, tablet, and Wear OS watch
- Bring your own key — Use API keys from your preferred AI providers, no middleman
- Custom AI agents — Create and switch between different AI personas and assistants
- Multiple providers — Connect to various OpenAI-compatible model providers in one app
- Streaming responses — SSE streaming with progressive Markdown and inline / display LaTeX math rendering
- Modern design — Clean Material 3 interface that's easy on the eyes
- Open source & free — Fully open-source, no subscriptions, no hidden costs
- Privacy first — Your conversations stay on your device
To get a local copy up and running, follow these simple steps.
- JDK 17
- Android SDK (Compile SDK 37, Target SDK 36, Min SDK 30)
- Gradle wrapper is included in the repository
- Clone the repo
git clone https://github.com/ECSDevs/Messenger.git
- Create a
local.propertiesfile in the project root pointing to your Android SDKsdk.dir=/path/to/android/sdk - Build the debug APK
./gradlew :mobile:assembleDebug ./gradlew :wear:assembleDebug
- For release builds, place your keystore at
keyring/messenger-release.jksand provide the environment variablesKEYSTORE_PASSWORD,KEY_ALIAS, andKEY_PASSWORD. Version code and name can be overridden with theVERSION_CODEandVERSION_NAMEenvironment variables. - (Optional) Change the git remote URL to avoid accidental pushes to the base project
git remote set-url origin ECSDevs/Messenger git remote -v # confirm the changes
- Install Messenger on your phone or tablet
- Add your API key from your preferred AI provider
- Pick a model and start chatting
- Create custom agents for different tasks
- (Optional) Install the Wear OS companion — it discovers your phone over the local network (NSD mDNS) and syncs your agents automatically over a WebSocket on TCP
18765
Messenger speaks the OpenAI-compatible Chat Completions API, so any provider that exposes that interface works out of the box.
For more details on architecture, conventions, and hard constraints, please refer to AGENTS.md
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the Apache License, Version 2.0. See LICENSE for more information.
ECSDevs - Project Link: https://github.com/ECSDevs/Messenger
- llm-typewriter — Progressive Markdown / LaTeX streaming renderer for AI bubbles
- AndroidMath — LaTeX typography for Android
- Best-README-Template — README template
- Jetpack Compose
- Material 3