Yumii — a private, voice-first AI companion for your desktop. Talks in real time, does things, remembers you — all on your own machine.
Project description
Yumii — the AI companion that's actually yours
She helps you do things — and helps you through things.
Yumii is an open-source AI companion that lives on your desktop — a floating orb you talk to out loud, in real time. She helps you do things (search the web, your email, your calendar), and she's honestly there when things are hard — not the empty validation of a chatbot, but grounded, real support. She remembers your life together, and she runs entirely on your machine: no account, no cloud, nothing ever leaves your computer.
Demo coming soon.
Experimental preview. The real-time voice loop, personalities, persistent memory, and permission-gated tools all work end-to-end. Windows-first for now; expect rough edges. See
CHANGELOG.mdandROADMAP.md.
Install (one command)
Windows (PowerShell):
iex (irm https://yumii.me/install.ps1)
That's the whole install. It sets up uv, a private Python 3.12, Yumii's backend, and the desktop app — then puts Yumii in your Start Menu. The first time you open her, she downloads her voice and ears (one-time), then asks for a single API key — a free Groq key is the easiest start (or Ollama). Then just talk.
Updating: re-run the same command.
macOS / Linux: the desktop shell is Windows-first for now —
curl -fsSL https://yumii.me/install.sh | bash installs the backend for
development, and the native shells are on the roadmap.
What she does
- Listens — real-time speech, Silero VAD + Whisper (local or cloud), with barge-in you can talk over, like Gemini Live
- Thinks — Groq, Ollama Cloud, OpenAI, or Anthropic, with a persistent personality
- Speaks — Kokoro (fully local, free, no key) or ElevenLabs / CAMB.ai, streamed as she talks
- Does things — web search, plus Gmail, Google Calendar, and Notion via Composio, with every action behind a permission gate. These are the integrations for now — more are planned, including direct MCP and tool integrations.
- Remembers — searches every past conversation, writes and corrects her own facts about you, and knows when you last spoke and what happened
- Reacts — a floating orb that pulses and shifts colour with the conversation
- Stays yours — no account, no telemetry; API keys in an owner-only local
file, memory in
~/.yumii/
Personalities
Pick a vibe. Each one is just a text prompt you can edit — or write your own:
- Caring — warm, empathetic, and supportive
- Tsundere — playful teasing with a soft heart
- Genki — energetic and cheerful
- Kuudere — cool, calm, and rational
- Dandere — shy and quietly kind
- Yandere — intensely devoted
Providers
Everything is switchable from the in-app dashboard — mix local and cloud however you like.
| Role | Options |
|---|---|
| Mind (LLM) | Groq (free tier) · Ollama Cloud (minimax-m3, 1M context) · OpenAI · Anthropic |
| Ears (STT) | Local Whisper (private, offline) · Groq Whisper (fast, cloud) · Vosk (offline streaming) |
| Voice (TTS) | Kokoro (local, free, recommended) · ElevenLabs · CAMB.ai |
Want her fully offline? Local Whisper + Kokoro + a local Ollama, and nothing leaves the machine at all.
Run from source (developers)
Needs uv, Rust + MSVC C++ Build Tools (Windows); WebView2 ships with Win 10/11.
git clone https://github.com/CodeNeuron58/Yumii.git
cd Yumii
uv sync
cd desktop && npx @tauri-apps/cli dev # the desktop app — the only way to run Yumii
The shell starts the backend for you (yumii server is the headless launcher
it invokes — there is no interactive CLI and no browser UI).
Use
uv, notpip— dependencies are locked with uv and installed viauv sync.
Roadmap
Next up:
- Seeing your screen — she can look at what you're looking at and help with it
- Proactiveness — she notices and speaks first, instead of only answering
Later:
- Direct MCP and tool integrations, beyond Composio
- macOS and Linux desktop shells
- More voices, personalities, and languages
- Deeper, honest emotional support grounded in real psychology
- Live2D avatar mode — the long-term dream; no timeline yet
Architecture
flowchart TD
mic["Microphone"] --> vad["Silero VAD<br/>speech detection"]
vad --> stt["Whisper STT<br/>local CPU · or Groq cloud"]
stt --> agent
subgraph agent [LangGraph Agent]
direction TB
sys["System prompt<br/>personality + episodic context + facts"] --> llm["LLM invoke<br/>Groq · Ollama · OpenAI · Anthropic<br/>tools bound · permission-gated"]
llm --> synth["Synthesizer<br/>response + expression"]
end
agent <--> mem[("SQLite memory<br/>sessions · facts · transcript+FTS ·<br/>summaries · checkpoints — ~/.yumii")]
agent --> tts["TTS<br/>Kokoro local · ElevenLabs · CAMB.ai"]
tts --> ws["WebSocket"]
ws --> orb["Desktop orb (Tauri)<br/>pulse + emotion colour"]
Private by architecture
Privacy isn't a setting here — it's the design:
- No account, no server of ours, no telemetry. Your data goes only to the LLM/STT/TTS providers you choose — or stays fully on-device with the local options.
- API keys live in
~/.yumii/auth.json— owner-only permissions, atomic writes (the same model Claude Code and opencode use). - Memory lives in
~/.yumii/on your machine. Delete the folder and she forgets; back it up and she's portable.
Contributing
Contributions are welcome — and the easiest one is genuinely tiny:
A new personality is a single
.txtfile insrc/yumii/assets/prompts/. Copy one, rewrite the character, open a PR.
Other great starting points: new TTS/STT backends, more tools, or the macOS/Linux shells. See CONTRIBUTING.md.
License
MIT — see LICENSE. She's yours.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yumii-0.13.0.tar.gz.
File metadata
- Download URL: yumii-0.13.0.tar.gz
- Upload date:
- Size: 4.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcc78366c64d705d638a13d9cfb8f6d35926bb0731f643bfbec815bee036e0f2
|
|
| MD5 |
e2474e50a3e13e975962b72be06b8e69
|
|
| BLAKE2b-256 |
0318147c6f11815e0c2f42ac2172f44967c7a2d6b3453f76bc4d0ed360eda71f
|
Provenance
The following attestation bundles were made for yumii-0.13.0.tar.gz:
Publisher:
release.yml on CodeNeuron58/Yumii
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yumii-0.13.0.tar.gz -
Subject digest:
dcc78366c64d705d638a13d9cfb8f6d35926bb0731f643bfbec815bee036e0f2 - Sigstore transparency entry: 2195633974
- Sigstore integration time:
-
Permalink:
CodeNeuron58/Yumii@3a4d5c44ebda902a052c5227da7b0027ee03434e -
Branch / Tag:
refs/tags/v0.13.0 - Owner: https://github.com/CodeNeuron58
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3a4d5c44ebda902a052c5227da7b0027ee03434e -
Trigger Event:
push
-
Statement type:
File details
Details for the file yumii-0.13.0-py3-none-any.whl.
File metadata
- Download URL: yumii-0.13.0-py3-none-any.whl
- Upload date:
- Size: 2.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1dd290475d8721a0c8865c7440a52322c35d5d4e80997ad3386b4aa366c7117a
|
|
| MD5 |
3f475e6670b75684c4cee0e1ecba7ee7
|
|
| BLAKE2b-256 |
44e1d8387e6858c883e464ce854b3ca4b6a8e1ef7f5478dbfafdaf3a4ff762d4
|
Provenance
The following attestation bundles were made for yumii-0.13.0-py3-none-any.whl:
Publisher:
release.yml on CodeNeuron58/Yumii
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yumii-0.13.0-py3-none-any.whl -
Subject digest:
1dd290475d8721a0c8865c7440a52322c35d5d4e80997ad3386b4aa366c7117a - Sigstore transparency entry: 2195633977
- Sigstore integration time:
-
Permalink:
CodeNeuron58/Yumii@3a4d5c44ebda902a052c5227da7b0027ee03434e -
Branch / Tag:
refs/tags/v0.13.0 - Owner: https://github.com/CodeNeuron58
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3a4d5c44ebda902a052c5227da7b0027ee03434e -
Trigger Event:
push
-
Statement type: