Skip to content

Jevatar

Companion that answers only with facial expressions: Jev picks one of 16 moods for each message and a blob avatar morphs its face.

ProjectprototypeMIT

Overview

Jevatar is an AI companion that replies only with facial expressions. You type a message, Jev judges it and picks one of 16 moods (14 built-in expressions plus custom yes, shown as a quick double nod, and no, shown as a decreasing head shake), and the blobatar library morphs the avatar's face with transitions. There are no text replies and no visible chat history; recent turns are kept in memory only to give Jev context.

A single-file Bun server hosts the built front end and a react endpoint that calls Jev; low-confidence answers fall back to an unsure expression and errors to a sick expression. The key stays server-side. A test checks that the server's expression options do not drift from the avatar library's exports. Documentation is in Chinese and English, and it is MIT licensed.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich of 16 facial expressions best responds to this message?—

How it works

  1. User types a message
  2. Server sends it with recent turns to Jev
  3. Jev chooses an expression; low confidence becomes unsure
  4. Avatar morphs to the chosen expression

Strengths

  • Playful demo of Choice with confidence fallback
  • Key kept server-side
  • Drift test between server options and avatar library

Caveats

  • Toy companion; no evaluation
  • Short in-memory context only

Getting started

Add TYPESAFE_API_KEY to .env, then `bun install` and `bun run dev`.

At a glance

Type
Project
Status
prototype
Language
TypeScript
Runtime
Bun + Vite
Has code
yes
Has tests
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • This project integrates Jev to provide structured decisions for its workflow. See the repository for implementation details.

    logicrw/awesome-jev-projects

Frequently asked questions

Does it reply with text?

No, only with one of 16 facial expressions.

What happens when Jev is unsure?

It shows an unsure expression; errors show a sick expression.

Is chat history stored?

Only recent turns in memory for context.

Related projects

  • SillyTavern extension that asks your own Jev questions about each message and, when a rule matches, injects, rerolls or scripts.

    PluginbetaJavaScript
  • Interactive art piece where Jev reads a post as 100 fictional observers, picking an intuition and scoring four feelings for each.

    ProjectbetaTypeScript
  • Android WeChat assistant showing Jev emotion probabilities and intent readings beside messages; never sends replies.

    Appbeta
  • Emoji autocomplete that asks Jev eight parallel questions per typing pause: emoji choice, emotion, mood, urgency, sarcasm and more.

    ServiceprototypeTypeScript
  • ChatGPT-style web demo where Jev answers by choosing from predefined or custom answer sets, such as Yes/No, Pirate or Tabloid.

    AppprototypeTypeScript
  • Web demo where you paste text and Jev suggests the best-fitting emoji.

    Demoprototype