read-with-jev
Next.js novel reader where Jev scores sentences near the viewport for eight emotions and highlights those above an adjustable threshold.
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
| Type | Question | Answers |
|---|---|---|
| Yes / no | Is this sentence associated with each of eight emotions?(inferred) | — |
How it works
- Detect sentences near the viewport after a short scroll pause
- Ask Jev to score each sentence for eight emotions
- Highlight sentences whose score clears the dial threshold
- 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 extensionbetaJavaScriptChrome extension that labels the tone of Bluesky posts and drafts with Jev and can blur or collapse matching posts.
ServiceprototypeJavaScriptWeb app that lints human prose like a compiler: Jev measures tone and information, code emits rustc-style diagnostics.
DemobetaTypeScriptChrome extension that asks Jev, sentence by sentence, whether text is what the reader came for and strikes out the filler.
Browser extensionproductionJavaScriptChrome extension that sorts Hacker News comments into user-defined buckets with one Jev Choice call per comment.
Browser extensionbetaJavaScriptChrome extension that asks Jev whether a page is selling something or reporting first-hand experience, and marks Google results.
Browser extensionbetaJavaScript