How we reviewed this: we started it with no keys and no network to see what it does unaided, then read its key handling. We made no Jev calls.
What it is
Seven tabs showing the same argument from different angles — an animated LLM-versus-Jev duel, an LLM router, ticket triage, 500 emails classified in parallel, a live slop filter, a title scorer, and a cost slider. The line at the top is the one this directory keeps arriving at:
Jev makes the decision. An LLM writes the words. Your code owns the control flow.
It works with nothing
npm install && npm start, no keys, no network:
Jev demos on http://localhost:3000
Jev (TypeSafe): SIMULATED (set TYPESAFE_API_KEY)
Claude : simulated
Kimi : simulated
Budget: $0.50 per key (set DEMO_BUDGET_USD)
Probe: jev=simulated claude=simulated kimi=simulated
The page loads and every provider is labelled SIMULATED in the startup banner and in the probe line. Nothing pretends to be a live result. The first tab’s animation is described in the README as “illustrative timings” rather than measured, which is the right word for a thing drawn to explain a point.
That matters more than it sounds. A demo that quietly falls back to canned data while looking live is the most common failure in this category, and this one tells you its state twice before you open the page.
The key handling is the part worth copying
It is a bring-your-own-key demo, deployed publicly, which is exactly the setup where keys leak. Three deliberate defences, all in src/keys.ts:
/** Stable, non-reversible id for a key, used to give each visitor's key its own budget. */
const fingerprint = (key) => createHash("sha256").update(key).digest("hex").slice(0, 16);
/** Replace any of the current request's keys in a string, so an upstream error can never echo one back. */
export function redact(message) { … }
- Budgets are per key, by fingerprint. Each visitor’s key gets its own
$0.50 bucket keyed by a SHA-256 prefix, so one visitor cannot spend another’s allowance and the server never needs to store the key to do the accounting.
- Errors are redacted. Any key from the current request is replaced with
[your key] before a message is shown. We have spent the month finding tools that echo a provider’s error body straight through; this one anticipated it.
- Hosted mode ignores server keys entirely:
HOSTED mode: server keys are ignored; visitors must bring their own. The deployed demo cannot spend the author’s money.
We found no path that writes a key to disk or logs one; the only startup output is whether a key is set.
Engineering
MIT, Node 22.6+, no build step. tsc --noEmit is clean and there are no tests, which is fair for a demo site and is the reason not to build anything on it.
Sixteen stars.
Verdict
The best “show me what this is for” page in the directory, and the only demo we have run that is careful about the keys visitors paste into it.
Send it to someone who has heard of Jev and does not see the point. Read src/keys.ts if you are ever going to deploy a demo that asks strangers for an API key — the fingerprint-and-redact pair is twenty lines and gets a hard thing right.
For a keyless demo of an agent loop rather than a dashboard, see JevLoop; for a gateway that holds the key itself, Jeview.
See how it compares with other tools in Best Jev tools, tested hands-on.
Review updated Sep 22, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.