
# Yuralume
**A self-host AI companion platform where each character has their own life.**
Daily schedule. Persistent memory. A social feed. The freedom to message you first.
[](LICENSE)
[](https://www.python.org/)
[](https://vuejs.org/)
[](https://www.postgresql.org/)
[](#status)
**English** · [繁體中文](README.zh_TW.md) · [日本語](README.ja.md)
[yuralume.com](https://yuralume.com) · [Live demo](https://yuralume.com/#demo) · [Self-host guide](https://yuralume.com/selfhost/) · [Discord](https://discord.gg/BP2bpFDgR)
---
## Why Yuralume exists
Most AI chat products treat characters as a passive webpage: you ask, they answer; you close the tab, they cease to exist. Your data lives in someone else's cloud, and every new device starts from zero.
Yuralume inverts that. Characters here **have a day of their own** — a schedule planned by the LLM, memories that survive across sessions and channels, a social feed they post to on their own, and the discretion to message you first when something genuinely calls for it. Every semantic decision routes through the LLM; we forbid keyword shortcuts and `if/else` patches for individual cases.
Everything stays on your machine. Third-party APIs are called only when *you* enable them and supply a key.
## Who this is for
- **Long-term companion users** — you want one or two AI characters you can live with, you care about conversational privacy and behavioural realism, and you don't mind running a service on your own hardware.
- **Interactive-narrative and character-research developers** — you want LLM-driven NPC scaffolding (schedule / memory / proactive / cross-platform sync) without rebuilding it from scratch.
- **World-building content creators** — turn a static character sheet into something that visibly lives through a day.
**Not for you** if you want a turnkey SaaS, a B2B customer-service bot, or a deterministic task-runner agent — Yuralume's design red lines specifically rule those out.
## A glimpse of what feels different
Three scenarios that capture the texture:
1. **Morning busy, afternoon catch-up.** You message a character at 9am while they're "in a meeting"; they reply briefly and *defer*. After lunch, when their schedule clears, the scheduler triggers an unprompted follow-up that picks the conversation back up properly.
2. **Same person across devices.** You chat on the web in the morning, then say good-night to the same character on Telegram, Discord, or WhatsApp. They remember the morning's thread — not because of synced bots, but because there is one memory pool.
3. **They lived while you were away.** A week without opening the app: when you come back, their LumeGram feed has new posts and your inbox has two "thinking of you" messages — each one having survived a three-layer intention gate.