Yami
About the project
Yamy - Your Private AI Companion, Offline by Default
Yamy is an Android AI companion built for the Best Use of Gemma 4 challenge at Hacktoberfest Hack Day Montréal (UQAM x AGEEI). It runs Gemma-4-E2B-it directly on the phone via LiteRT-LM: text, images and voice are processed on-device, and a full conversation works in airplane mode.
Why it matters
Most AI assistants quietly ship your conversations to a server. Yamy keeps the model (~2.6 GB, sideloaded), your chats and your memory on the phone: an SQLCipher-encrypted database with its key wrapped by the Android Keystore, behind a biometric lock. Yamy is offline by default: an optional Discord connector only works after you switch to Connected mode, and every message needs your explicit confirmation.
Highlights
- Offline chat: Gemma 4 E2B on-device (CPU on a Pixel 10a: 0.8 s model load, 1.7 s to first token, ~15 chunks/s)
- Multimodal: describe photos from the camera or gallery, and talk to Yamy: Gemma 4 listens to the raw audio, transcribes while you speak, and Yamy answers with an offline voice
- Visible agents: chains of agents work on screen, e.g. Le Conseil (pro, con, then a neutral synthesis) and Entretien (job interview prep)
- Obsidian-style memory: a Scribe agent writes encrypted, linked notes you can read, edit, undo or delete
-
User skills: dictate a
SKILL.md; skills are encrypted and loaded on demand by the model - Optional MCP connector: a Discord bot connector (in-app MCP server, approved channels only, mentions disabled); Gemma proposes, you confirm
-
Privacy by design:
allowBackup=false,FLAG_SECURE, biometric lock, a live privacy audit (Android’s network counter checks that 0 bytes leave in offline mode), and an “Erase everything” button - Safety in code, not just prompts: a distress detector routes acute-distress messages to a human helpline before the model answers. Yamy is an AI, never a health professional
-
Measured, not guessed: performance, heat, voice timings and a 21-message on-device safety benchmark (self-graded) in
docs/
Tech stack
Kotlin 2.4 · Jetpack Compose (Material 3, custom retro theme) · LiteRT-LM 0.18 (Gemma-4-E2B-it, text + image + audio) · Room + SQLCipher · Android Keystore & BiometricPrompt · MCP (JSON-RPC 2.0) · minSdk 31 / targetSdk 36
Try it
source scripts/env.sh
./gradlew installDebug
adb push gemma-4-E2B-it.litertlm /sdcard/Android/data/app.yamy/files/
Built during Hacktoberfest 26. Open model weights (Gemma), on-device inference, and nothing leaves your phone unless you turn on a connector and confirm the message.
Built with
AI tools
Prize Categories Entered
- Submitted
Best Use of Gemma 4