Make your own waifu live on your desktop.
Not a chatbot in a tab. A character who is actually there — standing on your window, watching the cursor, talking when she has something to say.
Quickstart · Demo video · Docs · Discussions · 日本語
- She lives on your desktop. A VRM character of your choice stands on top of your windows, follows the cursor with her eyes, and walks, sits, and jumps between them.
- You choose her brain. A local model, a hosted API, or your own agent: whatever you plug in thinks for her, so her smarts and personality are up to you.
- She speaks first, with restraint. She greets you, checks in when you go quiet, and notices what you are doing, then stays silent when there is nothing worth saying.
Named after Yui from* Sword Art Online*: an AI who stopped being a program and became someone you come home to.
You need a Mac with Apple Silicon or a Windows x64 PC, a coding agent (Claude Code, Codex, OpenCode, Cursor), and a chat model: an OpenAI or Groq API key, or Ollama or LM Studio running locally.
-
Paste this into your coding agent:
Install https://github.com/yw0nam/YUI following https://raw.githubusercontent.com/yw0nam/YUI/main/docs/guide/install.mdIt installs what YUI needs, connects your chat model, and checks that it works, asking you only for what it cannot find, such as an API key.
-
Ask the agent to start her (
pnpm tauri dev), or run that yourself in the YUI folder. The first start takes a few minutes, then she appears on your screen. -
Press
/(orCmd/Ctrl+Shift+Y) and say hello.
To talk by voice, also set up speech recognition and a voice in Settings → Connection (right-click her to open Settings). You can change the chat model there too. OpenAI, Ollama, LM Studio, and Groq use the Chat Completions format, which needs a model with tool-calling support: for example gpt-5-mini on OpenAI, qwen3 on Ollama, or llama-3.3-70b-versatile on Groq.
She perches on a window top, peeks around a side edge, strolls the floor and window tops, and jumps between windows. Drop her in mid-air and she falls to the first surface below and lands.
Her brain picks an expression, a gesture, and a tone of voice for each reply, so she laughs, sulks, or gets embarrassed instead of only printing text. Her mouth moves with her speech, and she reacts when you tap or pat her.
She greets you at set times, checks in after you have been idle, and, if you turn it on, notices when you switch apps. You set how often she may speak up on her own, and she says nothing when nothing is worth saying.
And more: your own VRM model, voice chat you can interrupt, image attachments, a chat history, English, Japanese, and Korean UI, and tools your agent can use on your computer. See the full feature list.
YUI is the body; the model or agent you plug in is the brain. YUI notices what happens (you sending a message, going idle, switching apps) and passes it to the brain, which decides whether and what to say. YUI then gives that answer a face, a voice, and a gesture.
YUI ships no model of its own. Pick each provider in Settings → Connection.
| Providers | |
|---|---|
| Chat | OpenAI · Ollama · LM Studio · Groq · Hermes Agent · any OpenAI-compatible endpoint |
| Voice (TTS) | Irodori (Japanese) · OpenAI · Fish Audio |
| Speech recognition | Any OpenAI-compatible transcription endpoint · Groq |
Provider details
| Provider | Protocol (chat_api) |
Hosting | Example model |
|---|---|---|---|
| OpenAI | chat_completions |
Hosted, API key | gpt-5-mini |
| Ollama | chat_completions |
Local | qwen3 |
| LM Studio | chat_completions |
Local | Any tool-calling model |
| Groq | chat_completions |
Hosted, API key | llama-3.3-70b-versatile |
| Hermes Agent | push, responses |
Self-hosted | The model the agent runs |
| Custom endpoint | chat_completions, responses, push |
Any server that speaks the protocol | Tool-calling model on chat_completions |
| Provider | Hosting | Default model | Voices |
|---|---|---|---|
| Irodori | Self-hosted | irodori-tts |
The server's voices and imported reference clips, Japanese only |
| OpenAI | Hosted, API key | gpt-4o-mini-tts |
13 built-in voices |
| Fish Audio | Hosted, API key | s2.1-pro-free |
Your account's voice models, imported clips, and any library voice id |
| Provider | Hosting | Setup |
|---|---|---|
Any OpenAI-compatible transcription endpoint (/audio/transcriptions) |
Local or hosted | stt_base_url |
| Groq | Hosted, API key | stt_base_url and stt_model, for example whisper-large-v3-turbo |
The connection guide covers each setup. Missing a provider? Ask in Discussions or send a PR.
- Supported on macOS with Apple Silicon and Windows x64. Intel Macs and Linux are not officially supported.
- Installing with a coding agent is the only supported path for now; the installers on the Releases page are early and unsigned.
- Climbing up window sides and onto the monitor above is marked as in development in the app.
- Irodori TTS speaks Japanese only.
Using YUI
- Feature list · Controls · What she can do
- Install with a coding agent · Connection guide: chat, voice, your own VRM
Developing YUI
- Build, run, and logs · Project structure ·
CONTRIBUTING.md AGENTS.mdfor coding agents ·GLOSSARY.mdglossary · Backend contract
- Questions, ideas, and show-and-tell: GitHub Discussions
- Bugs and feature requests: open an issue
- If YUI made your desktop a little warmer, a ⭐ helps others find her.
Motions come from Mate Engine by Shiny, necocoya's EmoteSet_Free_v130, and Mixamo. The default character is Sendagaya Shino by pixiv Inc., converted to VRM 1.0 by Coatie.
Full asset credits and terms
The motion assets (public/motions/*.vrma) come from three sources.
Most clips are extracted from the Mate Engine project by Shiny, used under Mate Engine's non-commercial terms: free for personal, study, and non-revenue use with attribution to Shiny; commercial use requires separate permission from Shiny.
The sulk clip (suneru.vrma) is from necocoya's
EmoteSet_Free_v130 (Unity Humanoid
06_suneru, 拗ね = sulk/pout), attribution to necocoya. Modification, conversion,
and bundling-with-credit are permitted; standalone resale of the raw file is
prohibited.
The locomotion clips walk, jump, falling, landing, the climb set
(climb_up, climb_up_done, climb_down, climb_down_landing), sit_down
and stand_up are from Mixamo, royalty-free under
the Mixamo terms.
The bundled default VRM model
(resources/vrms/Sendagaya_Shino.vrm) is Sendagaya Shino, originally by
pixiv Inc. (VRoid
Project, CC0), converted to VRM 1.0 by
Coatie. Neither
license requires attribution — see
resources/vrms/Sendagaya_Shino.PROVENANCE.md
for the full notice.
YUI is source-available. Its source code is licensed under the PolyForm Noncommercial License 1.0.0 — free for noncommercial use, modification, and redistribution with attribution. Commercial use requires permission from the author (https://github.com/yw0nam).
The bundled motion assets (public/motions/*.vrma) are not covered by this
license; each follows its original author's terms — see Credits above.



