A local-first AI companion desktop app with Live2D and VRM avatars, layered character writing, persistent memory, and evolving relationship state.
Built with Tauri 2 (Rust + web frontend). Your chats and memory stay on your machine unless you configure external APIs.
- Layered characters — written as
.yamland.mdfiles (soul.md,style.md,rules.md, etc.) - Session history — local persistence of chats
- Local long-term memory — semantic, episodic, and reflection-style memories (local storage)
- Relationship state — trust, affection, mood, and energy evolve over time
- Expression-aware streaming — parses LLM output for emotion tags in real time (
<<expression>>)
- Streaming chat — real-time text streaming
- Parallel TTS — synthesizes speech segments in parallel for lower latency
- Voice input — microphone capture, VAD, and optional Whisper-based transcription
- Live2D — Cubism models with lip sync and expression mapping
- VRM — 3D avatars with custom animations
- Mini mode — transparent “mini widget” that can float on your desktop
- Node.js 18 or newer
- Rust stable with Cargo (see Tauri prerequisites for OS-specific packages)
- Linux: WebKitGTK and related dev packages (the same set used in CI is a good reference)
git clone https://github.com/meet447/MeuxCompanion.git
cd MeuxCompanion
npm install
npm run tauri devnpm run tauri buildYou choose which remote services to use, if any:
- LLM — OpenAI-compatible HTTP APIs (OpenAI, Groq, Ollama, OpenRouter, and similar). Configure endpoints and keys in the app; nothing is sent until you set this up.
- TTS — includes options such as local-friendly TikTok TTS (no key), ElevenLabs, and OpenAI TTS, depending on your configuration.
MeuxCompanion/
├── src/ # React (Vite) frontend
├── src-tauri/ # Tauri shell and Rust commands
├── crates/meux-core/ # Shared Rust logic (LLM, memory, state, …)
├── characters/ # Local companion profiles
├── models/ # Live2D and VRM assets
└── data/ # Local session and memory data (created at runtime)
npm run tauri dev # desktop app + hot reload
npm run dev # Vite frontend only (without Tauri shell)See CONTRIBUTING.md for how we handle issues, pull requests, and code review.
Tagged releases are built with GitHub Actions. Maintainers publish draft GitHub Releases from CI artifacts when ready.
We welcome issues and pull requests. Please read CONTRIBUTING.md and CODE_OF_CONDUCT.md before participating.
If you discover a security vulnerability in this repository, please follow SECURITY.md so we can address it responsibly.
This project is licensed under the MIT License.
