Android client for an AI desktop-pet system. It connects to an
OpenClaw gateway (through the pet-channel plugin) over
WebSocket, and renders a Live2D pet with chat, group chat, a floating desktop
widget, voice input, a cloud gallery, reminders, and push notifications.
- Live2D pet rendering (multiple characters)
- 1:1 chat and multi-agent group chat
- Floating widget / launcher-overlay pet
- Voice input (speech-to-text)
- Cloud image gallery
- Local reminders / scheduled jobs
- Push notifications (JPush)
- Local chat history (Room)
| Live2D chat | Weather notification | Home-screen widget |
![]() |
![]() |
![]() |
- Kotlin + Jetpack Compose
minSdk = 31, shipsarm64-v8aonly- OkHttp (WebSocket), Room, DataStore, Coil, Glance (app widget)
- Push: JPush; speech-to-text: Baidu; group-chat intent detection: Alibaba DashScope (Qwen)
- Open the project in Android Studio (it generates
local.propertieswithsdk.dir). - Add the required API keys to
local.properties(seelocal.properties.example). - Build & run on a real arm64 device.
No API keys are hard-coded. They are injected at build time from
local.properties (git-ignored) into BuildConfig / the Android manifest:
Key in local.properties |
Used for |
|---|---|
JPUSH_APPKEY |
JPush push notifications |
DASHSCOPE_API_KEY |
Group-chat intent detection (Qwen) |
BAIDU_API_KEY |
Baidu speech-to-text |
BAIDU_SECRET_KEY |
Baidu speech-to-text |
Missing a key only disables that feature; the app still builds and runs.
The gateway WebSocket URL is set in-app (Settings), defaulting to
ws://localhost:8767/ws.
MIT


