An Android voice assistant featuring a minimalist overlay UI built with Jetpack Compose, background service execution, and automated CI/CD APK generation via GitHub Actions.
Luna Voice Assistant is an experimental on-device client built to explore lightweight voice interaction and unobtrusive overlay interfaces on Android. Rather than taking over the entire screen, Luna provides a responsive overlay interface that allows users to trigger commands while keeping their active application visible.
- Jetpack Compose UI: Declarative, lightweight overlay interface designed with Material 3 components.
- Background Service Architecture: Persistent background worker handling wake-word detection and lifecycle events.
- Automated CI/CD: Continuous integration workflow using GitHub Actions to automatically compile and release debug/release APK artifacts on push.
- Zero Heavy Runtimes: Minimal APK footprint leveraging modern Android architecture components.
+-------------------------------------------------------+
| Android Client |
| |
| +--------------------+ +--------------------+ |
| | Jetpack Compose | <-> | Background Service | |
| | Overlay UI | | (Wake-Word Listener| |
| +--------------------+ +--------------------+ |
| | | |
| v v |
| +--------------------+ +--------------------+ |
| | Material 3 Canvas | | Audio Record Stream| |
| +--------------------+ +--------------------+ |
+-------------------------------------------------------+
- Language: Kotlin (
JVM 17) - UI Toolkit: Jetpack Compose (
Compose BOM 2024.02.00, Material 3) - Target SDK: Android 14 (
API 34), Min SDKAPI 24 - Build System: Gradle (
Kotlin DSL) - CI/CD: GitHub Actions (
ubuntu-latest, automated APK artifact builds)
- Android Studio Hedgehog (2023.1.1) or newer
- JDK 17
- Android SDK (API Level 34)
-
Clone the repository:
git clone https://github.com/prashanth-karanam/luna-assistant.git cd luna-assistant -
Build debug APK via Gradle:
./gradlew assembleDebug
-
Install on connected device / emulator:
./gradlew installDebug
- Local offline wake-word integration (Vosk / Porcupine)
- Tool-calling integration via client-side REST / MCP endpoint
- Configurable voice activation sensitivities in Settings UI
This project is licensed under the MIT License.