echo / README.md
RyeCatcher's picture
Upload README.md with huggingface_hub
c5fee9e verified
metadata
title: Echo
emoji: πŸ€–
colorFrom: indigo
colorTo: purple
sdk: static
pinned: false
license: mit
short_description: A companion robot that remembers you and grows with you
tags:
  - reachy_mini
  - reachy_mini_python_app
  - companion
  - memory
  - ai

Reachy Echo

A companion robot that remembers you and grows with you.

What Makes Echo Different

Most robot apps treat the robot as a voice interface with decorative movement. Echo is different:

Feature Traditional Echo
Memory Forgets everything Remembers your name, preferences, conversations
Initiative Waits for commands Greets you, suggests breaks, celebrates wins
Models Single provider 18+ models via LiteLLM (swap anytime)
Movement Decorative Communicates emotion and state

Quick Start

Install

cd ~/apps/reachy/apps/echo
pip install -e .

Run (Simulation Mode)

python -m reachy_mini_echo --sim

Open http://localhost:7861

Run (Real Robot)

With the Reachy daemon running:

Features

Memory System

Echo remembers across sessions:

  • Your name and preferences
  • Past conversations and topics
  • Work patterns and habits

Try saying:

  • "My name is Alex"
  • "I'm a software engineer"
  • "What do you know about me?"

Proactive Behaviors

Behavior What it does When
Morning Greeting Personalized hello First appearance, 6-11am
Work Break Reminder Suggests a stretch After 2 hours of work
Build Celebration Excited dance When your code builds
Build Support Sympathetic response When builds fail
Return Greeting Welcome back After 30+ min absence

Model Selection

Switch between 18+ models instantly:

Model Best for
llama-3.3-70b-cerebras Fast local inference (default)
claude-opus-4.5-openrouter Most capable
gpt-5.2-openrouter Latest GPT
gemini-3-pro-openrouter Multimodal
qwen-3-235b-cerebras Large context

Configuration

Environment variables (optional):

# LiteLLM server (defaults to DGX)
export LITELLM_URL=http://your-litellm-server:4000
export LITELLM_API_KEY=your-key

# Default model
export LITELLM_MODEL=llama-3.3-70b-cerebras

UI Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  πŸ€– Reachy Echo                                     β”‚
β”‚  A companion that remembers you and grows with you  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                             β”‚ Status: 🟒 Connected  β”‚
β”‚  Conversation               β”‚                       β”‚
β”‚  ─────────────              β”‚ Model: [dropdown]     β”‚
β”‚  User: Hi there!            β”‚                       β”‚
β”‚  Echo: Hello! How are you?  β”‚ Memory:               β”‚
β”‚                             β”‚ Facts: 3 | Sessions: 5β”‚
β”‚                             β”‚                       β”‚
β”‚  [Type a message...]  [Send]β”‚ Proactive Behaviors:  β”‚
β”‚                             β”‚ β˜‘ Morning Greeting    β”‚
β”‚                             β”‚ β˜‘ Work Break Reminder β”‚
β”‚                             β”‚ β˜‘ Build Celebration   β”‚
β”‚                             β”‚                       β”‚
β”‚                             β”‚ [Clear] [Forget Me]   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Architecture

reachy_mini_echo/
β”œβ”€β”€ main.py           # ReachyMiniEcho app class
β”œβ”€β”€ providers/        # LLM backends (LiteLLM)
β”œβ”€β”€ memory/           # SQLite + fact extraction
└── proactive/        # Trigger/behavior engine

Development

See CLAUDE.md for detailed architecture and development guide.

Adding Behaviors

  1. Create behavior class in proactive/behaviors.py
  2. Implement execute(echo) method
  3. Create trigger in proactive/triggers.py
  4. Register in proactive/engine.py

Memory Fact Extraction

Echo automatically extracts facts from conversation:

  • "My name is X" β†’ stores name
  • "I prefer X" β†’ stores preference
  • "I work at X" β†’ stores employer

Privacy

  • All data stored locally in data/memory.db
  • "Forget Me" button clears personal data
  • No cloud storage of conversations
  • Local models available for full privacy

License

MIT