jevgpt
Chat client that makes Jev write by asking Next word? over a 20,000-word dictionary in 255-word buckets plus a run-off.
Overview
JevGPT is a chatbot built on a model that cannot generate text. The state is the conversation transcript, the question is Next word?, and the criteria are a 20,000-word dictionary; the reply is built one word at a time, several hundred choices deep. Because a Choice is capped at 255 options and a call at about 64k input tokens, each step reshuffles the vocabulary, cuts it into 255-word buckets, packs 20 per call and sends four calls concurrently, alongside a Noul asking whether the reply is complete. Since bucket probabilities are only comparable within a bucket, the top two from every bucket compete in a final Choice whose distribution is decoded.
Decoding is greedy with three measured repetition penalties (local, whole-reply content and stopword), because without them the model repeats itself; the vocabulary was filtered against a real dictionary after penalties pushed it into word fragments. Replies cannot end before 60 real words. Flags control maximum words, seed, scripted turns and recording per-word top-8 distributions, latency and tokens. A rendered demo video shows a reply being built. It is an experiment that deliberately uses Jev outside its purpose.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Next word? (over 255-word vocabulary buckets, then a run-off) | — |
| Yes / no | Is the reply complete? | — |
How it works
- Shuffle vocabulary into 255-word buckets, 20 per call
- Ask Next word? per bucket plus a completeness Noul
- Run off the top two from each bucket in a final Choice
- Apply repetition penalties, append word, repeat
Strengths
- Shows how to work around the 255-option cap
- Records per-word distributions for analysis
Caveats
- Deliberate misuse; output quality limited
- Many calls per word
Getting started
uv run jevgpt (with TYPESAFE_API_KEY in .env).At a glance
- Type
- Project
- Status
- research
- Language
- Python
- Runtime
- CLI REPL
- Has code
- yes
Use cases and integrations
How curated lists describe it
A chatbot built on a model that cannot generate text (TypeSafe AI's Jev, driven autoregressively).
hellogumbo/awesome-jev
Frequently asked questions
How does it get past the 255-option limit?
It splits the dictionary into buckets and runs off the top two from each in a final Choice.
Why the repetition penalties?
Without them the model repeats itself; they were added from measurement.
Is this a practical chatbot?
No, it is an experiment in making a decision model write.
Related projects
ChatGPT-style web chat where every word of every reply is a Jev multiple-choice decision over a ~1,800-word vocabulary plus END.
ProjectprototypeTypeScriptExperiment that deliberately misuses Jev as a text generator by asking which symbol comes next and sampling from the returned distribution.
ProjectresearchPythonSteve Krouse's post launching Jev Typewriter, a playable demo built on 16 Jev judgments, with a video.
DiscussiondiscussionShow HN thread for jev-bisect, a pip package that finds answers with Jev by bisection search over options or ranges.
DiscussiondiscussionPythonToy chat that makes Jev talk by repeatedly choosing its next word from a tiny caveman vocabulary.
ProjectprototypeTypeScriptLocal browser app that turns Jev's per-pixel colour probability distributions into textured paintings.
Browser extensionprototypeJavaScript