Build a custom AI companion or character chat app for Android without starting from scratch.
Learn how a large modular Android app is organized using Kotlin and Jetpack Compose.
Connect your own AI provider, such as OpenAI, Anthropic, or Gemini, to a working chat interface.
Experiment with on-device AI models using the included local model framework.
| sylvara-lin/lianyu-app | airbnb/viaduct | marshallbear1/react-native-system-thumbnails | |
|---|---|---|---|
| Stars | 167 | 158 | 145 |
| Language | Kotlin | Kotlin | Kotlin |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 3/5 | 4/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires your own AI provider API key, no built-in servers or keys are included.
LianYu, also written 恋语, is an open source starter framework for building an AI companion app on Android. Instead of a simple chat demo, it gives you a full skeleton for an app where a user can create a virtual character, chat with it over many turns, and have that character remember past conversations. The project is written in Kotlin using Jetpack Compose for the interface and follows a modular structure: an app module for navigation and entry points, several core modules for shared pieces like the database and network layer, and separate feature modules for chat, companion profiles, group chat, memory, settings, notifications, and more. Each feature module can be swapped out or extended on its own. For talking to an AI model, the app supports many providers out of the box, including OpenAI, Anthropic, Gemini, DeepSeek, Kimi, OpenRouter, Groq, and any custom OpenAI-compatible endpoint. This public edition ships with no built-in API keys, servers, or accounts: anyone who runs it has to supply their own API key and base URL in the settings screen before it will talk to a model. Some relay-style settings screens exist only as placeholders for future backend work and do not connect to anything by default. The app also includes an early framework for running AI models locally on the device, called LiteRT-LM, along with pieces for background notifications, WorkManager based tasks, and basic bot integrations for WeChat and QQ that a developer could build out further. Data is stored locally with Room, and the codebase relies on standard Android tools like Coroutines, Flow, Retrofit, and Coil for images. It targets Android 8.0 and above, uses JDK 17, and builds with Gradle. This project fits developers who want to learn how a larger, modular Android app is structured, or who want a working base to build their own AI companion or character chat product on top of, rather than starting from a blank chat demo.
An open source Android framework for building an AI companion chat app, with chat, character profiles, and memory already built in.
Mainly Kotlin. The stack also includes Kotlin, Jetpack Compose, Room.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.