Skip to content
MrJev

djev-run

Serves DiffusionGemma-Jev behind a compatible API on Cloud Run, with a small game demo on top.

View on GitHub →

Hands-on review

Deployment glue for serving DiffusionGemma-Jev on a Cloud Run GPU, with a zero-dependency Snake demo that says when it is only simulating.

Good for

  • A deploy command where every environment variable is explained
  • A Snake page with no dependencies that labels a simulated run
  • Seeing the AI SDK's TypeSafe provider drive a non-TypeSafe endpoint

Watch out for

  • No licence file, for a repository whose value is its configuration
  • The demo hands the model a `recommended_safe_move` it computed itself
  • `TEST_PAGE=1` exposes `/snake` and `/playground` on the service

Tested Sep 21, 2026 at 9e74402a919a · node:24 and Playwright in Docker against a local stand-in server; no GPU, so the deployment itself was read rather than run

How we reviewed this: it deploys a 26B model onto a Cloud Run instance with an RTX PRO 6000, which we do not have, so we read the deployment and ran everything that can be exercised without it: the Node client against a local stand-in of ours through its own DJEV_BASE_URL, and the standalone Snake page in a real browser against the same stand-in, healthy and then failing. No Jev calls.

What it is

Not a library — a recipe. It packages mmastrac/djev-spark so that DiffusionGemma-Jev serves TypeSafe’s POST /v1/systemone API from Google Cloud Run, plus a 41-line client using the Vercel AI SDK and an 853-line standalone Snake page.

The deployment is the artifact, and the thing that makes it worth reading is that every flag is explained. A gcloud beta run deploy with twenty environment variables is usually a wall of cargo cult; here each line has a comment saying why it is there:

# COPY_TO_SHM=1: stages the 17.5 GB model into /dev/shm RAM in the background while Python imports torch/vllm
# mount-options=enable-buffered-read=true: prefetches 18 GB safetensors shards sequentially from GCS
# ENFORCE_EAGER=1 & TORCH_COMPILE_DISABLE=1: skips torch.compile, CUDA graph capture, and redundant startup profiling
# DISABLE_MM=1: skips SigLIP vision/video encoder profiling for text-only evaluation

If you are putting vLLM on Cloud Run for anything, that annotated block is worth more than the model it serves.

The client, and what the SDK expects

index.ts honours DJEV_BASE_URL, so we pointed it at our own server and ran the shipped triage example:

answers: {
  department:     { type: 'choice',  choice: 'billing', probabilities: [Object] },
  severity:       { type: 'score',   score: 1,          probabilities: [Object] },
  requestsRefund: { type: 'boolean', probability: 0.5 }
}

Worth knowing if you build against this: the AI SDK’s TypeSafe provider translates a boolean question into a noul on the wire and back again, and its response schema requires probabilities on a score answer. Our first stand-in omitted that field and the SDK rejected the whole response with a validation error rather than passing a partial answer through. That is the provider being strict, not this project, but it is the kind of thing you find out at the wrong moment.

The Snake demo is honest about simulating

snake.html is a single file with no dependencies that posts to /v1/systemone about fifteen times a second. We served it and drove it with a real browser.

the endpoint… the page’s status line
answers normally Running (live)
returns HTTP 502 Running (sim)

On a failed request it falls back to a local simulateSystemOne() and keeps playing — but it says so, in the status line, on every frame. We have reviewed several projects this month that fall back to fabricated output and label it as the real thing; this one costs a single ternary and is the difference between a demo and a misleading demo.

Two observations about the state it sends:

{"head": …, "food": …, "food_delta": …, "safe_moves": […],
 "move_analysis": {…}, "recommended_safe_move": "left"}

The page has already worked out which moves are safe and even which one it recommends, and puts that in the state. So the model is choosing among options with a hint attached rather than reading a board — worth knowing before you take the demo as evidence of what the model can do. And while the endpoint was down, our six-second run produced 537 requests: the failure path falls back instantly and the loop continues at full speed, with no backoff. Free when the endpoint is dead, less free when it is merely slow.

Access and licence

The README’s own client invocation is TYPESAFE_AI_API_KEY="$(gcloud auth print-identity-token)", which implies the service keeps Cloud Run’s default authentication rather than being public — the right default. Do note that the deploy sets TEST_PAGE=1, which enables /snake and /playground on the service itself, so whoever can reach the endpoint gets those too.

There is no licence file and GitHub reports none, which for a repository whose value is a configuration other people should copy is the thing to fix first.

Verdict

Three days old, 27 stars, and useful out of proportion to its size if you are trying to serve an open decision model on Cloud Run: the annotated deploy command answers questions that usually cost an afternoon. The Snake page is a good demo and an unusually honest one.

Read it as documentation, not as a dependency, and ask for a licence before copying the configuration into anything of your own.

For the same model served differently, see OpenJev; for the API-compatible servers you can run yourself, the open models category.

See how it compares with other tools in Best Jev tools, tested hands-on.

Review updated Sep 21, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.

More in Open Models & Reproductions

Laya

★ 35k▲ 521

NandhaKishorM/laya

Non-autoregressive decision engine over 100+ languages: three checkpoints and a router that detects the script and dispatches per request. Its benchmarks end with a limits section naming the datasets it does not generalise to and the headline figure that came from a training split.

PythonReviewed

kev

★ 9.8k▲ 215

jaredpalmer/kev

Jev-style decision models from 0.5B to 8B, built as LoRA adapters on Qwen and served behind a Jev-compatible /v1/systemone API.

PythonReviewed

SemIf

★ 4.9k▲ 35

TheoLeeCJ/SemIf-OpenJev

Jev-style decisions from a frozen 4B model on a single RTX 3090, with a browser demo. Formerly OpenJev.

PythonReviewed

Get new Jev projects every week

New Jev releases, pricing changes, and the best new projects, once a week. No spam; unsubscribe anytime.

Powered by Buttondown. See our privacy policy.