Skip to content

emotion-system

AI companion emotion system that reads emotions from the companion's own written thoughts with Jev probabilities via OpenRouter.

ProjectprototypeMIT

Overview

This emotion system for AI companions, documented in Chinese, uses Jev to read emotion out of what the companion writes in its own first-person thinking, rather than assigning a mood. Through OpenRouter, it asks batches of yes/no and choice questions about each turn's thinking and reply and gets probabilities, so not mentioned, explicitly denied and uncertain can be handled separately, and uncertain readings are ignored.

Probabilities are converted into emotion levels with baselines that decay over time; the system can flag possible avoidance during conflict, accumulate physical closeness from action descriptions to suggest when intimacy may begin (the companion and user still decide), and track time apart so the companion can reach out. The README reports roughly $0.0006 per turn and about $2 a month at around 140 turns a day, notes Jev is weaker with numbers, dates and Chinese prompts, and that probabilities vary by about ±0.03 across calls, so raw answers should be stored and replayed.

What the decision model decides

TypeQuestionAnswers
ChoiceHow strongly does this thinking express a given emotion (e.g. playful jealousy vs real anger)?(inferred)—
Yes / noDoes the companion's writing show this emotion?(inferred)yes · no

How it works

  1. Companion writes first-person thinking and a reply
  2. Jev answers a catalogue of emotion questions in two stages
  3. Local code converts probabilities to decaying emotion levels
  4. Inject reminders or prompts only when thresholds are crossed

Strengths

  • Separates uncertain readings from real signals
  • Low monthly cost reported
  • Detailed question catalogue and pitfalls documented

Caveats

  • Depends on the companion writing honest first-person thoughts
  • Estimates of text, not inner states
  • Chinese prompts perform slightly worse

Getting started

Requires Node.js 18+ and an OpenRouter key; follow the setup in the README and docs/jev-catalog.md.

At a glance

Type
Project
Status
prototype
Language
JavaScript
Runtime
Node library/service
Has code
yes
Has tests
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Reads an AI companion's emotion out of what it wrote itself rather than assigning one, through OpenRouter. Chinese.

    MrJev/awesome-jev

Frequently asked questions

Does it decide the companion's mood?

No, it reads emotions from what the companion already wrote.

How much does it cost?

About $2 a month at roughly 140 turns a day, per the README.

Why store raw answers?

Probabilities vary by about ±0.03 between calls, so replaying avoids drift.

Related projects

  • DeepSeek Harness plugin that classifies each user message's emotion, urgency and department with Jev and injects it as context.

    PluginbetaTypeScript
  • Zero-dependency Android app that judges the visible WeChat message's intent, emotion, urgency and reply posture with Jev.

    AppbetaJava
  • Android WeChat assistant where Jev judges the chat and scores the relationship, and a chat model drafts three replies.

    AppbetaKotlin
  • WeChat plugin that classifies a long-pressed message's intent, emotion, urgency and suggested reply posture with Jev.

    PluginbetaJava
  • Local chat analyser that labels each WeChat message's emotion and intent with Jev and grades how your replies landed.

    ProjectprototypeJavaScript
  • Windows WeChat reply assistant: local offline OCR reads the chat, Jev judges intent and tension and ranks three drafted replies to fill in.

    ProjectproductionPython