Skip to content

read-with-jev

Next.js novel reader where Jev scores sentences near the viewport for eight emotions and highlights those above an adjustable threshold.

Appresearch

Overview

readwithjev is a research prototype for reading whole novels alongside a model emotion layer and a character minimap. Pride and Prejudice opens by default and 31 works are available; a paste-in reader handles up to 20,000 characters of your own text. Characters are tagged by deterministic name and alias matching; emotions come from Jev.

As you scroll, after a 50 ms pause, Jev scores each sentence near the viewport for all eight emotions, and sentences at or above a display threshold get a coloured background naming the emotions on hover. A dial moves the threshold between 1.00 and 0.20 (default 0.60) without new requests. The README is careful that highlights are whole-sentence association suggestions, not evidence spans, attributions or intensity, and not a validated emotion map. Scoring needs a server-side TypeSafe key and costs money per request; there are guest quotas, a concurrency limit, caching, and mocked-Jev tests.

What the decision model decides

TypeQuestionAnswers
Yes / noIs this sentence associated with each of eight emotions?(inferred)—

How it works

  1. Detect sentences near the viewport after a short scroll pause
  2. Ask Jev to score each sentence for eight emotions
  3. Highlight sentences whose score clears the dial threshold
  4. Cache results; moving the dial re-ranks without new requests

Strengths

  • On-demand scoring limited to what the reader sees
  • Threshold changes are free
  • Accessible: emotions named in text, not colour only

Caveats

  • Research prototype, explicitly not a validated emotion map
  • Paid requests per sentence with a server-side key

Getting started

Copy .env.example to .env.local, set TYPESAFE_API_KEY, install with Node 22+, and run the dev server.

At a glance

Type
App
Status
research
Language
TypeScript
Runtime
Next.js web app
Has code
yes
Has tests
yes

Use cases and integrations

How curated lists describe it

  • A Demo of using JEV to classify various attributes of a book, and present that to the reader to augment the reading experience.

    hellogumbo/awesome-jev

Frequently asked questions

What does Jev decide?

How strongly each visible sentence is associated with each of eight emotions.

Is it accurate?

The README says it is a reading instrument for inspecting model output, not a measurement.

Does it work without a key?

The reader loads, but the dial is disabled and nothing is highlighted.

Related projects

  • Chrome and Firefox extension that scores a draft X post with Jev on a dozen rubrics and gives a send-or-don't verdict.

    Browser extensionbetaJavaScript
  • Chrome extension that labels the tone of Bluesky posts and drafts with Jev and can blur or collapse matching posts.

    ServiceprototypeJavaScript
  • Web app that lints human prose like a compiler: Jev measures tone and information, code emits rustc-style diagnostics.

    DemobetaTypeScript
  • Chrome extension that asks Jev, sentence by sentence, whether text is what the reader came for and strikes out the filler.

    Browser extensionproductionJavaScript
  • Chrome extension that sorts Hacker News comments into user-defined buckets with one Jev Choice call per comment.

    Browser extensionbetaJavaScript
  • Chrome extension that asks Jev whether a page is selling something or reporting first-hand experience, and marks Google results.

    Browser extensionbetaJavaScript