How pollen-robotics/reachy_mini_conversation_app works
Reachy Mini Conversation App connects a user’s realtime voice conversation to an assistant backend and the robot’s audio, camera, and motion capabilities. The main runtime initializes the robot and streaming services; conversation handling coordinates assistant turns and tool calls, while motion and memory provide distinct robot-action and personalization stages. An optional web UI manages conversations, personalities, tools, and settings. The README documents these capabilities, but several runtime modules were not sampled, so their internal call wiring is shown only where documented or directly evidenced.
Main entry points: conversation_handler.py Conversation handler · streaming.py Audio streaming · daemon_api.py App JSON-RPC · tools Robot action tools
Components 25
Conversation runtime
- App runtime
src/reachy_mini_conversation_app/main.py - Audio streaming
src/reachy_mini_conversation_app/streaming.py - Conversation handler
src/reachy_mini_conversation_app/conversation_handler.py - Conversation memory
src/reachy_mini_conversation_app/memory.py - App JSON-RPC
src/reachy_mini_conversation_app/daemon_api.py
Robot capabilities
- Robot action tools
src/reachy_mini_conversation_app/tools - Camera capture
src/reachy_mini_conversation_app/tools/camera.py - Motion manager
src/reachy_mini_conversation_app/moves.py
Profiles and tools
- Prompt and personality
src/reachy_mini_conversation_app/prompts.py - Tool dispatch
src/reachy_mini_conversation_app/tools/core_tools.py - Background tool manager
src/reachy_mini_conversation_app/tools/background_tool_manager.py - Personality routes
src/reachy_mini_conversation_app/personality_routes.py - Profile storage
src/reachy_mini_conversation_app/profile_store.py - Tool settings routes
src/reachy_mini_conversation_app/profile_tool_routes.py - Tool Space management
src/reachy_mini_conversation_app/tool_space_routes.py
Web interface
- Web UI shell
src/reachy_mini_conversation_app/static/js/main.js - UI router
src/reachy_mini_conversation_app/static/js/router.js - UI views
src/reachy_mini_conversation_app/static/js/views - UI API client
src/reachy_mini_conversation_app/static/js/api.js
External services
- Realtime backend
src/reachy_mini_conversation_app/huggingface_realtime.py - Reachy Mini daemon
- Remote MCP client
src/reachy_mini_conversation_app/mcp_client.py - Realtime vision
- Hugging Face Tool Spaces
Other components
- User
Connections 30
- User → Audio streaming: speaks to
- App runtime → Audio streaming: launches
- Audio streaming → Realtime backend: streams audio
- Realtime backend → Audio streaming: returns audio
- Audio streaming → Conversation handler: delivers turns
- Conversation handler → Realtime backend: requests responses
- Conversation handler → Prompt and personality: loads guidance
- Conversation handler → Tool dispatch: dispatches calls
- Tool dispatch → Background tool manager: starts long tasks
- Tool dispatch → Robot action tools: invokes actions
- Robot action tools → Motion manager: queues movement
- Motion manager → Reachy Mini daemon: controls robot
- Robot action tools → Camera capture: captures frames
- Camera capture → Reachy Mini daemon: reads camera
- Camera capture → Realtime vision: provides image
- Robot action tools → Conversation memory: reads and writes facts
- App runtime → Conversation handler: initializes
- App runtime → Reachy Mini daemon: connects robot
- Web UI shell → UI router: configures routes
- UI router → UI views: mounts views
- UI views → UI API client: requests data
- UI API client → App JSON-RPC: calls methods
- App JSON-RPC → Personality routes: dispatches personality calls
- Personality routes → Conversation handler: applies personality
- Personality routes → Profile storage: saves profiles
- App JSON-RPC → Tool settings routes: dispatches tool settings
- Tool settings routes → Profile storage: reads and writes overrides
- App JSON-RPC → Tool Space management: dispatches Space management
- Tool Space management → Hugging Face Tool Spaces: installs and removes
- Tool dispatch → Remote MCP client: calls remote tools