Skip to main content

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

kotlinGradleJetpack ComposeAndroidX BiometricJUnitgemma

AI tools

Coded withClaude CodeOpenCodeClaude Sonnet 5.5Claude Opus 5.5

Prize Categories Entered

  • Deepmind Google

    Best Use of Gemma 4

    Submitted