Locus

Locus is an offline-first adaptive voice assistant for Android designed to perform real device actions while remaining useful even without an internet connection.

Inspiration

Many voice assistants become significantly less useful when network connectivity is poor or unavailable. I wanted to build an assistant that could continue helping even in those situations, while still taking advantage of cloud AI when it is available.

What it does

Locus combines online and offline speech recognition with a modular command system capable of controlling Android device features using natural voice commands.

Current capabilities include navigation, phone calls, reminders, alarms, application launching, camera control, media control, flashlight control, contact management, and multi-step voice commands.

How I built it

The application is written in Kotlin for Android using Jetpack Compose and a modular architecture.

The project combines:

  • online and offline speech recognition
  • intent recognition
  • modular command handlers
  • Android system integration
  • persistent local storage
  • extensible architecture for future AI capabilities

Challenges

One of the biggest challenges was building an architecture that works reliably across many different Android features while remaining modular and easy to extend.

Another challenge was balancing offline functionality with cloud-based AI features without making the assistant dependent on internet connectivity.

Built with OpenAI

This project has been developed with the help of ChatGPT for architecture and product design, and OpenAI Codex for implementation, refactoring, testing, and continuous improvement.

What's next

Future work includes deeper offline intelligence, improved contextual understanding, expanded automation capabilities, and broader Android integration while preserving the offline-first philosophy.

Built With

  • android
  • chatgpt
  • codex
  • compose
  • jetpack
  • kotlin
  • offline
  • openai
  • recognition
  • sdk
  • speech
  • sqlite
Share this project:

Updates