An angry Asian mom about to throw a slipper

Hacktoberfest 2026 · Touch Grass

Touch Grass, Babu

An Android app with a deadpan, loving, deeply unimpressed Asian Mom living inside it. Spend 15 minutes on a feed or a game and she shows up, roasts you, and locks the app until you've actually been outside. She runs on your phone, fully offline: a fine-tuned open-weight model, no servers, no account.

Download the APK Get caught ↓ Code

Try her

Get caught.

Every line here was written by the fine-tuned model ahead of time, exactly how the app works: Mom fills her roast bank while the phone charges, so the right roast is waiting the moment you're caught.

Mom is waiting. She's always waiting.

How it works

  1. Mom watches.A background service reads which app is on screen (Android Usage Access). Feeds and every game on your phone count.
  2. 15 minutes in, she pops up.A full-screen roast covers the app. It stays locked: closing and reopening just brings her back.
  3. Go outside.The lock lifts after 45 minutes out of the app and 1,000 steps (step counter). Numbers are yours to set.
  4. Or prove it.Need your phone sooner? Send Mom a photo. An on-device vision model and the light sensor check it's really outdoors and really daylight.
  5. Bedtime is different.Late at night she won't send you out. She sends you to bed, and the app stays locked until morning.
caught on Township · 2h 14m today

Two hours and fourteen minutes of Township. You have successfully turned your living room into a digital landfill. Go buy coriander.

Steps 412 / 1000
Outside 18 / 45 min
Show Mom I'm outside

The model

A 4B model that learned to be Mom.

Mom's full personality is a 3,700-token prompt. A budget phone reads prompts at ~1.6 tokens a second, so that prompt alone would take 38 minutes. So I distilled it into the weights: Qwen3.5-4B, LoRA fine-tuned on Tinker with replies written by a bigger open model playing Mom. Now she needs 41 tokens.

93%follows Mom's rules with no prompt (same as the 3.7k-token prompted model)
41prompt tokens per message, down from 3,675
2.8 GB4-bit GGUF, runs on a 2020 Realme C17 with llama.cpp
30 held-out situationsbase, no promptbase + 3.7k promptMom v1Mom v2
Follows the rule33%93%83%93%
Savagery when roasting (0–5)0.003.333.083.25
In character (0–2)0.401.971.901.97
Prompt tokens413,6754141

On the phone she writes ~1.4 tokens a second, about a minute per roast. So she doesn't write while you scroll: she writes a roast bank while the phone charges (pinned to the 4 fast cores), and the roast is ready the instant you're caught.


The roast wall

Things Mom has said.

Straight from her roast bank, written by the model on a laptop and on the phone. Shuffle


Why open

Mom doesn't gossip.