metadata
title: Judgy Reachy No Phone
emoji: ๐ฑ
colorFrom: red
colorTo: orange
sdk: static
pinned: false
short_description: Get off your phone! Reachy Mini shames you with snarky comments
tags:
- reachy_mini
- reachy_mini_python_app
๐ฑ Judgy Reachy No Phone ๐ค
A Reachy Mini app that detects when you pick up your phone and shames you with snarky comments.
Stop checking your phone and get back to work! This app uses computer vision to detect when you pick up your phone and makes Reachy Mini give you a judgmental, snarky comment to shame you back to productivity.
Features
- ๐ฑ Phone Detection: Uses YOLOv8 to detect when you pick up your phone
- ๐ฃ๏ธ Snarky Responses: LLM-generated or pre-written judgmental comments
- ๐ Text-to-Speech: Robot speaks the shame out loud with expressive voice
- ๐ค Expressive Animations: Different reactions based on offense count
- ๐ Stats Tracking: Pickup count, shame count, longest phone-free streak
- ๐ฎ Web UI: Gradio interface for monitoring and configuration
How It Works
- Camera watches you - Reachy Mini monitors the camera feed
- Phone detected - YOLOv8 detects when you pick up your phone
- Shame delivered - Robot gives you a snarky comment via TTS
- Robot reacts - Expressive animations get more dramatic with repeat offenses
Robot Reactions
| Offense Count | Animation | Reaction |
|---|---|---|
| 1st pickup | Curious head tilt | "The phone? Already?" |
| 2-3 pickups | Disappointed head shake | "Again?" |
| 4+ pickups | Dramatic sigh, looks away | "I've lost count." |
| Phone down | Approving nod | "Good. Back to work." |
100% Free Stack
| Component | Free Option | Premium Option |
|---|---|---|
| Detection | YOLOv8 (local) | - |
| LLM | Pre-written lines | Groq (free tier) |
| TTS | Edge TTS (unlimited) | ElevenLabs (10k chars/month) |
Installation
pip install .
Optional: Enable LLM Responses
pip install .[llm]
Get free API key at console.groq.com
Optional: Enable Premium Voice
pip install .[premium-tts]
Get free API key at elevenlabs.io
Usage
Run the app:
reachy-mini-daemon
Then install and start the app from the Reachy Mini dashboard, or run directly:
from judgy_reachy_no_phone.main import JudgyReachyNoPhone
app = JudgyReachyNoPhone()
app.wrapped_run()
The web UI will be available at http://localhost:7863
Configuration
Settings (via Web UI)
- Groq API Key: Optional, for LLM-generated responses
- ElevenLabs API Key: Optional, for premium TTS voice
- Cooldown: Time between shames (10-120 seconds)
- Praise Mode: Enable/disable praise when phone is put down
Pre-written Snarky Lines
The app includes 20+ pre-written responses that work without any API:
- 1st offense: "The phone? Already?", "And so it begins."
- 2nd-3rd: "Again?", "Back to the phone I see."
- 4+ offenses: "I've lost count.", "Phone addiction is real."
Stats Tracked
- Pickups Today: Count of phone pickups in current session
- Total Shames: Total number of shaming events
- Best Streak: Longest period without phone pickup
Technical Details
- Detection: YOLOv8 nano model for fast inference
- Phone Class ID: COCO dataset class 67 ("cell phone")
- Detection Threshold: 3 consecutive frames to confirm pickup
- Putdown Threshold: 15 frames to confirm phone down (avoids flicker)
- Frame Rate: 5 Hz for efficient processing
Requirements
- Reachy Mini robot with camera
- Python 3.10+
- Internet connection (for first-time YOLO model download and TTS)
License
MIT - Feel free to shame yourself and others!
Credits
Built for Reachy Mini by Pollen Robotics & Hugging Face.