
AetherState- A living state tracker for AI RP/ERP.
AetherState sits invisibly between your RP frontend (SillyTavern, RisuAI, Agnai — anything OpenAI-compatible) and any OpenAI-compatible model API, and keeps a persistent, structured "story bible" while you play: who is present, what everyone wears and carries, moods, arousal, relationships, obsessions, cravings, goals, secrets, consent, positions, the scene clock — extracted automatically from the chat and injected back into the prompt, so the model stops forgetting.
- Genesis seeding — the moment you open a chat, the character card + greeting become a full starting state: clothes, personality-implied gear, moods, obsessions, relationships. Also tracks mature/NSFW-capable state (arousal, relationships, consent) alongside mundane states.
- Live tracking — a helper model reads new turns as you play and updates the state (every turn by default; set any cadence you like).
- State briefing injection — a compact, token-budgeted state header rides along with your prompts. The model sees the tracked truth, not its own guesses.
- Director & linter — beat suggestions and consistency checks (a corrective note when the prose contradicts tracked facts).
- Memory — events condense into summaries and durable facts, recalled when relevant.
- Console — a built-in web dashboard to watch and edit state live.
- Fail-open by design — if anything inside AetherState breaks, your chat continues untouched. It never blocks or edits the story stream.
- Local-first, private — everything lives in a local SQLite file. No telemetry; there is no switch to turn telemetry on, because it does not exist.
The helper ("assist") model
State tracking is a background job — it never blocks your story. Small local models work well (Llama 3.1 8B on KoboldCpp is plenty; set tier = "small"), or point it at your main API. Thinking/reasoning models are handled automatically: reasoning is disabled for tracking calls, or budgeted if you set [extraction] thinking = "on".
Works with hosted APIs (Venice.AI, OpenAI, OpenRouter, ...) and local engines (KoboldCpp, llama.cpp, Ollama, LM Studio, vLLM, oobabooga). But actively developed, tested primarily against SillyTavern + Venice/OpenRouter.
And yes, I am the creator. This is AetherStates first public release, I plan on adding more specializations. Right now its very neutral so it's applicable to almost any RP style, but I want things like a full on RPG mode too, this is what I'm focusing on next. Disclosure: I'm mostly a vibe-coder, and mainly a hobbyist that did this for myself, and thought it would be good enough to share. Enjoy.