Ramu
Device monitoring and local AI conversation in one Android app.
I built the Android app and companion website independently, connecting device monitoring with local model chat.


Why I brought device readings and chat together
Ramu began with a question about running an AI conversation on a phone. As I built it, I wanted the conversation to help people understand the phone they already use. Battery, memory, connection state, screen time, and internet use come from different Android sources. I brought them into one app so a user can inspect a reading before asking about it.
I develop the Android app and its companion website independently. The public Android baseline is 0.51-beta. It combines monitoring views, saved histories, Bao, and chat with a compatible Gemma model that the user downloads separately. The screenshots on this page are test-device captures. Their readings describe that device at capture time, not a typical phone or a measured product benefit.
Give each reading its own boundary
Android makes some values available immediately and others only after permission or recording. I designed the screens around that difference. Screen time depends on Usage Access; notification history needs separate access. Battery and RAM histories contain samples at recorded times, so a gap between samples remains a gap. A missed background collection cannot be reconstructed as a zero reading.


The same boundary matters when the app explains a chart. A saved point means a value was observed then. It does not prove what happened between points. The app’s newer development source also distinguishes measured, partial, and unavailable coverage, but that source work is separate from what I can confirm in the distributed beta.
Keep the model and the data under user control
Ramu uses LiteRT-LM for local text inference after a compatible model is selected and downloaded. A model download or catalog refresh needs a network connection; a ready local model can answer without one. For a question about the phone, the chat can receive selected current readings rather than every monitoring table. Chats and histories stay in app storage unless the user chooses an export or backup action.


What the beta establishes
The beta gives one place to review phone readings, inspect saved history, and converse with a downloaded model. Bao makes those technical screens approachable, while the data and permission boundaries determine what the app can honestly say. I also built a bilingual companion site to explain the product and its model setup before installation.
Current source development includes an automatic-insight path that checks generated statements against recorded evidence and can produce no finding when the evidence is thin. I have not confirmed that path in the 0.51-beta APK, so I treat it as continuing work rather than a released feature. The lesson from Ramu is that a useful explanation starts with the quality and coverage of the underlying reading, not with a fluent answer.