Skip to content

Commit fa60abe

Browse files
authored
docs: update README for clarity and structure, enhance feature descriptions (#56)
1 parent cb24f36 commit fa60abe

File tree

1 file changed

+128
-20
lines changed

1 file changed

+128
-20
lines changed

README.md

Lines changed: 128 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
<p align="center">
2-
<img src="docs/public/mirrormate.png" alt="Mirror Mate" width="500">
2+
<img src="docs/public/mirrormate.png" alt="MirrorMate" width="400">
33
</p>
44

5-
<h1 align="center">Mirror Mate</h1>
5+
<h1 align="center">MirrorMate</h1>
66

77
<p align="center">
88
<strong>Self-hosted personalized AI in a mirror</strong>
99
</p>
1010

1111
<p align="center">
12-
<a href="https://www.orangekame3.net/mirrormate/">Documentation</a> •
12+
<em>AI doesn't have to live on a screen.</em>
13+
</p>
14+
15+
<p align="center">
16+
<a href="https://www.orangekame3.net/mirrormate/">Docs</a> •
1317
<a href="https://www.orangekame3.net/mirrormate/guide/getting-started">Getting Started</a> •
1418
<a href="https://github.com/orangekame3/mirrormate/releases">Releases</a>
1519
</p>
@@ -24,50 +28,154 @@
2428

2529
https://github.com/user-attachments/assets/c9005df4-9bdb-4190-861e-c8f5f9290468
2630

27-
## Features
31+
---
32+
33+
## Why a mirror?
2834

29-
- Voice interaction with wake word activation
30-
- Personalized memory (RAG-based context)
31-
- Expressive avatar with lip-sync animation
32-
- Multiple LLM/TTS providers (OpenAI, Ollama, VOICEVOX)
33-
- Built-in weather, calendar, reminders, web search
34-
- Plugin system for custom widgets
35+
A mirror is something you already live with.
36+
You glance at it in the morning. You check yourself before heading out.
37+
In those few seconds, you could ask about the weather, check your schedule, or just chat.
38+
39+
MirrorMate puts AI into that everyday object.
40+
No phone to pull out. No laptop to open.
41+
Just talk to the mirror.
42+
43+
## What it is
44+
45+
- A voice-first AI designed to live in a mirror
46+
- Runs entirely local with Ollama + VOICEVOX (no cloud required)
47+
- Buildable with Raspberry Pi + half mirror
48+
- Remembers you through RAG-based memory
49+
50+
## What it is not
51+
52+
- Not a smart display
53+
- Not a cloud-dependent assistant
54+
- Not another chat UI in a browser
55+
56+
---
57+
58+
## Architecture
59+
60+
```
61+
┌─────────────────────────────────────────────────────────────────┐
62+
│ Raspberry Pi │
63+
│ ┌───────────────┐ ┌────────────┐ ┌────────────────────────┐ │
64+
│ │ Browser │ │ Next.js │ │ SQLite │ │
65+
│ │ (Chrome) │◄─┤ App │◄─┤ (Memory, Sessions) │ │
66+
│ │ + Mic/Cam │ │ Port 3000 │ │ │ │
67+
│ └───────────────┘ └─────┬──────┘ └────────────────────────┘ │
68+
│ ▲ │ │
69+
│ │ │ Tailscale VPN │
70+
└─────────┼─────────────────┼─────────────────────────────────────┘
71+
│ ▼
72+
│ ┌─────────────────────────────────────────────────┐
73+
│ │ Mac Studio │
74+
│ │ ┌────────────┐ ┌──────────────┐ ┌───────────┐ │
75+
│ │ │ Ollama │ │ VOICEVOX │ │ Whisper │ │
76+
│ │ │ LLM/VLM │ │ TTS │ │ STT │ │
77+
│ │ │ Embedding │ │ Port 50021 │ │ Port 8080│ │
78+
│ │ └────────────┘ └──────────────┘ └───────────┘ │
79+
│ └─────────────────────────────────────────────────┘
80+
81+
└── Half Mirror + Monitor
82+
```
83+
84+
**Minimal setup**: Raspberry Pi + OpenAI API only
85+
86+
**Full local setup**: Combine with Mac Studio (or any GPU machine) as shown above
87+
88+
---
3589

3690
## Quick Start
3791

38-
**OpenAI (English):**
92+
**With OpenAI API (easiest):**
3993

4094
```bash
4195
docker run -p 3000:3000 \
4296
-e OPENAI_API_KEY=sk-xxx \
4397
-e LLM_PROVIDER=openai \
4498
-e TTS_PROVIDER=openai \
45-
-e LOCALE=en \
4699
ghcr.io/orangekame3/mirrormate:latest
47100
```
48101

49-
**Ollama + VOICEVOX (Japanese, local):**
102+
Open http://localhost:3000 in Chrome.
103+
104+
**Fully local (Ollama + VOICEVOX):**
50105

51106
```bash
107+
# 1. Pull a model with Ollama
52108
ollama pull qwen2.5:14b
109+
110+
# 2. Start MirrorMate
53111
git clone https://github.com/orangekame3/mirrormate.git
54-
cd mirrormate && docker compose up -d
112+
cd mirrormate
113+
docker compose up -d
55114
```
56115

57-
Open http://localhost:3000 in **Chrome**.
116+
**Wake word**: Say "OK Mira" to activate.
58117

59-
> Set `LOCALE=en` for English or `LOCALE=ja` for Japanese (default).
118+
---
119+
120+
## Features
121+
122+
### Voice-First Interaction
123+
Activate with a wake word. Choose from Web Speech API, OpenAI Whisper, or local Whisper for speech recognition.
124+
125+
### Personalized Memory
126+
Automatically extracts and stores information about you from conversations. Uses RAG to retrieve relevant memories and generate personalized responses.
127+
128+
### Expressive Avatar
129+
Lip-synced avatar speaks responses. Eight animation states (Idle, Listening, Thinking, Speaking, etc.) show what it's doing at a glance.
130+
131+
### Multi-Provider Support
132+
| Component | Options |
133+
| --------- | --------------------------------------------- |
134+
| LLM | OpenAI, Ollama |
135+
| TTS | OpenAI, VOICEVOX |
136+
| STT | Web Speech API, OpenAI Whisper, Local Whisper |
137+
| Embedding | Ollama, PLaMo-Embedding-1B |
138+
139+
### Built-in Integrations
140+
- Weather (Open-Meteo)
141+
- Calendar (Google Calendar)
142+
- Web search (Tavily)
143+
- Reminders
144+
- Discord sharing
145+
146+
### Plugin System
147+
Add your own widgets or sensor integrations. The Vision Companion plugin detects eye contact and greets you automatically.
148+
149+
---
60150

61-
**Say the wake word to start:**
62-
- English: *"OK Mira"*
63-
- Japanese: *"OK ミラ"*
151+
## Tech Stack
152+
153+
- **Frontend**: Next.js 15 / React 19 / Three.js
154+
- **Backend**: Node.js / SQLite (Drizzle ORM)
155+
- **AI**: Ollama / OpenAI / VOICEVOX / faster-whisper
156+
- **Infra**: Docker / Tailscale
157+
158+
---
64159

65160
## Development
66161

67162
```bash
68-
bun install && bun run dev
163+
bun install
164+
bun run dev
69165
```
70166

167+
See [Documentation](https://www.orangekame3.net/mirrormate/) for details.
168+
169+
---
170+
171+
## Status
172+
173+
Work in progress. Core features work, but rough edges remain.
174+
175+
If you're into local AI, self-hosted systems, or physical interfaces, give it a try.
176+
177+
---
178+
71179
## License
72180

73181
[MIT](LICENSE)

0 commit comments

Comments
 (0)