Jev can’t see a screen and doesn’t write text. It still turned into the model people reached for when they wanted to watch an AI play a game. This page collects every Jev game demo and real-time control demo in the directory, grouped by type of game. Each entry says what Jev decides and links to the demo’s page here, which has the source link, the author and any video.
Almost every demo follows one loop. Code reads the game’s memory or entity list and writes a compact text state: positions, health, what’s ahead, which moves are legal. Jev answers a choice question over those moves, sometimes along with a yes/no noul or a score. Code presses the buttons. Stars and view counts below are as of 24 September 2026. Views on X are post views, not video plays.
Doom, shooters and action games
The Register’s launch coverage said Jev can play Doom “when fed structured data describing the player’s game state”.
- jev-doom-agent runs Chocolate Doom in the browser through WebAssembly. Each decision sends health, armor, ammo, position, kills, visible monsters and pickups as structured state. A Jev choice picks a tactical macro, and a local motor controller turns it into movement, turning, firing and weapon inputs. Low-confidence or failed calls show up on screen as a fallback, not as Jev.
- The Register’s launch article is the news piece behind the “plays Doom” headline. It also reports TypeSafe’s 0.114s against 8.566s latency comparison with GPT-5.6 Terra.
- jevlike is an open reimplementation of Jev’s input and output shape, not Jev itself. Its Doom and chess demos score controller buttons from image patches. The author says the clips were picked for activity, not skill. 1,274 GitHub stars.
- Jev’s Dojo is a browser fighting game where you fight Jev from the keyboard. The launch post has about 93,000 views.
- heist-one is a browser stealth game. Jev makes typed judgments for the guards, and game code owns all world state.
- jevs-fly is a Three.js flight game. Jev picks a glowing fly’s heading and dive about five times a second as it chases goblins.
- Jev playing 50 games of Subway Surfers at once runs 50 games in parallel for under a cent in total, by the author’s account. About 358,000 views.
Doom head-to-heads against Laya are listed under Jev against Laya below.
Platformers and classic arcade games
These games have a small action set and a clear next obstacle, which suits a single choice per tick.
Super Mario Bros.
- typesafe-mario reads the emulator’s RAM into compact JSON with no screenshots. Each request asks three questions: a choice of controller input from seven actions, a noul on whether a forward jump should start or stay held, and a score for danger shown on the dashboard. The emulator then advances several frames before asking again. 381 GitHub stars.
- Jev playing Super Mario Bros. in real time is the X video from the same author. It credits fast inference plus structured output for moment-to-moment play. About 609,000 views.
- Mario Never Dies has Jev pick every move. Each time Mario dies, the VM forks into four timelines, and whichever survives becomes canon.
Tetris
- Tetris with real-time Jev decisions shows Jev answering fast enough to push blocks down during play. The post shares no code. About 80,000 views.
- jev-tetris plays Jev against Claude Haiku, Gemini Flash or an open-weight typed-decision model, with the same piece sequence and clock for both sides.
- Tetris x TypeSafe lets you play yourself or hand the game to a choice question that picks every move.
- typesafe-jev-dojo is a live demo set that includes a Tetris-playing agent alongside routing and a Jev-versus-Claude gauntlet.
Snake, Pac-Man, T-Rex and Pong
- typesafe-snake asks one choice per game tick. Code works out the legal moves and board facts before the call.
- snake-jev asks several questions per tick and Python combines them into a move. One recorded run reached 29 foods in 461 ticks before the snake trapped itself. It spots immediate hazards but doesn’t plan a route.
- Jev Arena puts two Jev agents in one Snake game, racing each other to a trophy.
- Jev plays Pac-Man sends the maze, the ghosts and the legal directions before each junction. Jev answers with one direction and a probability for each.
- jev-t-rex-runner has Jev choose jump, duck or keep running for each new obstacle, plus a short or full jump. The browser keeps frame timing and collision geometry.
- jev-play-ping-pong plays browser table tennis from structured telemetry through ordinary Chrome inputs and logs each decision.
- jev-pong moves the ball one step per model decision, so each lane’s speed is that model’s latency. It replays a recorded run with Jev, Gemini 3.8 Flash, Claude Haiku 4.5 and GPT-5.6 Sol on the paddle.
Other arcade and party games
- beat-jev is a penalty shootout where Jev decides which way the goalkeeper dives.
- Jev’s Kitchen Chaos runs four Jev-driven chefs in an Overcooked-style kitchen. In one early test Jev put 66% on firefighting against 33% on finishing an order and answered in about 200ms.
- Real-time platformer levels uses Jev to generate platformer levels as you play, not to play them. About 546,000 views.
Strategy games, RPGs and Minecraft
Slower games give Jev more time per decision. The harness still has to supply memory and a plan, since Jev sees one state at a time.
Pokemon
- JevPlaysPokemon plays Generation 3 Pokemon through Showdown and a real FireRed ROM. Each turn the host reads the battle out of RAM and hands Jev the legal moves and switches.
- jev-plays-pokemon plays Pokemon Red on a PyBoy emulator. Jev answers parallel yes/no questions about a text snapshot each turn, and code turns the answers into button presses. The harness holds short-term memory because Jev has none.
- Jev outperforms Opus 5 at Pokemon Showdown reports one competitive match that Jev won. The post gives Jev’s cost as $0.0029 and 37 seconds against $2.35 and 6 minutes 29 seconds for Opus 5.
StarCraft, Civilization and adventure games
- tsai-sc lets Jev control the original StarCraft shareware through synthetic keyboard and mouse input and records the action probabilities for each decision. 24 GitHub stars.
- tsai-civ2, by the same author, is an experimental harness where Jev plays the original Civilization II in a browser with live action probabilities.
- Jev plays Kyrandia 2 against itself drives the adventure game with Jev choices, and the model ends up running in circles. It’s a useful failure case.
- jev-playground benchmarks Jev against Luna, Haiku and Gemini at picking the next action in games built as state machines. Code owns the rules and the model only picks from the options it’s given.
Minecraft
- minecraft-agent splits the work. GPT-6 Astra sets the plan and Jev chooses each in-game action from a described list. Its best verified run went from an empty inventory to killing the ender dragon in 8 minutes 43 seconds, using 131 Jev decisions and 35 Astra calls. 536 GitHub stars.
- typesafe-minecraft-demo controls a Minecraft Java player with Jev, shows each decision live, and includes a flag-building task.
- jev.mods is a Minecraft mod where Jev tries to finish the game from scratch with no scripted route.
- Jev playing Minecraft (r/accelerate) is a work-in-progress demo that includes fleeing zombies at night.
Chess, poker and puzzle games
Board games show the lack of lookahead most clearly. Jev makes legal moves when handed the list, but it doesn’t search ahead.
- Blitz chess against frontier models played 5+0 blitz at one API call per move, with Jev answering in about 2.6 seconds. Fable 5.1 was ahead on material but lost on time. GPT-6 Astra mated Jev in 18 moves. About 559,000 views.
- Jev vs. GLM at chess ended with GLM 5.3 winning by checkmate in 29 moves. Jev took about 0.3 seconds per move against GLM’s 5.8, and the whole game cost 24 cents.
- llm_chess lists jev-latest with 8 wins, 50 losses and 22 draws over 80 games, no illegal moves, and an estimated Elo of about 243.
- TypeSafe Jev played chess and landed next to reasoning models is the author’s write-up of that run. Jev’s win rate against the random-move player came close to several reasoning models.
- game-coach is a chess coach where Stockfish owns the truth about the position and Jev makes the coaching judgment after each move.
- Jev is the fish at the poker table tested poker. Given the opponent’s exact cards, a made flush against its own straight, Jev still said it was ahead and shoved in five runs out of five.
- Jev Tac Toe has Jev pick a square with a choice over the open squares, with a journal of the probability it gave each one.
- Jevsweeper is a live Minesweeper broadcast where Jev picks every reveal and flag. A separate checker labels each loss as a forced guess or a missed deduction.
- jevminesweeper is a smaller Minesweeper player that picks each move as a typed decision.
- jev-gomoku plays Jev against Jev at gomoku with per-move timing logs, using a MoonBit client for the API.
- jev-bfs plays Wikipedia link races. It scores up to 128 outgoing links per request for how few hops they leave.
Drones, robots and driving
These run in simulators. The pattern is the same, with one addition: a fast deterministic controller underneath keeps final say.
- jev-drone flies a quadrotor through an obstacle course in MuJoCo using only its camera. Computer vision turns depth and segmentation into a short scene description. Jev answers a maneuver choice, a risk score and a noul on whether the target is really lost, at about 2.5 Hz. A 50 Hz reflex layer can veto it, and code skips the call when nothing has changed. A typical 65-second flight costs about 110 calls. 164 GitHub stars.
- typesafe-jev-drone-demo is a Three.js drone where a choice picks each navigation action and a noul estimates obstruction, with the exact model input and output shown beside the flight.
- A driving simulator controlled by Jev rebuilds a Tesla Full Self-Driving-style simulator with Jev, made in under an hour by the author’s account. About 732,000 views.
- RoboJEV controls a Franka Panda arm in MuJoCo in two stages: Jev picks an intent, then X/Y/Z motion and a gripper command, and a Cartesian controller executes it. 42 GitHub stars.
- MakerMods robot arm in MuJoCo sends the scene as JSON. Jev picks the next bounded action, such as hover, descend, grasp, lift or place, finishing a task in 9 decisions at about 150ms each.
- MuJoCo robot-arm control found Jev struggled with one call per update, so it split each update into two: what to do next, then how to move the arm and gripper. About 45,000 views.
- jev-askable-arm gives Jev a plain English goal and a simulated Franka Panda in ManiSkill. Jev picks one of about 30 hardcoded primitives per step, at roughly one second per pick.
- robo-harness drives an SO-101 arm. Jev picks bounded joint steps under a spend cap, reached through Vercel AI Gateway.
- MOSS x Jev replays recorded Jev decisions for a litter-picking arm in MuJoCo. Jev picks the target, and in the newer replays each arm action from a fixed list.
- jev-little-airways is a toy air-traffic sim. Each aircraft asks four batched questions about every 1.6 seconds and gets answers in roughly 150ms.
Jev against Laya: cloud against local
Laya, from Convai Innovations, is an open-weights model with the same typed-question shape that runs on your own machine. It became the usual opponent in game demos. Laya makes many more decisions per second. Jev usually makes the better call, though not every time.
- Local Laya vs cloud Jev on Snake: over 30 seconds, local Laya scored 46 at 86.5 decisions per second. Jev 1.13.0 over the cloud API scored 1 at 3.2 decisions per second. The author puts the gap down to the network round trip.
- Laya beats Jev 43-1 in Snake, wifi off reports 9.2ms P50 for Laya against a 308.7ms round trip for Jev, with the same schema and seed.
- Snake benchmark: Jev vs Laya-MLX vs Kev-4B had the opposite result: Jev had zero deaths, and Laya died early despite about 33ms latency.
- Tetris Bench: Jev vs Laya-MLX: Laya ran at about 84ms per decision on a MacBook and lost to Jev in all three rounds. About 73,000 views.
- Local game benchmark has Jev winning outright as the cloud option. A self-built JAX model ties with Laya-MLX among the local ones.
- Laya vs Jev: T-Rex Race races both on a shared obstacle course. A safety check can override either model, so the README says the scores measure the whole system. 93 GitHub stars.
- Laya vs Jev: AI vs AI Arena puts them in a snake race and a Mortal Kombat-style fight, answering the same questions on the same input.
- Jev vs Laya: 1v1 Doom deathmatch: Jev’s calls were sharper, but Laya decided twice as often and won 5 to 1.
- 24 hours of RL training Laya on Doom: after nearly a day of reinforcement learning, the author’s Laya model still fell well short of Jev with no training at all.
- Jev vs Laya in an arena survival game decides every enemy’s move at about 30 decisions a second. Laya ran at about 21ms on a laptop, and Jev was more accurate out of the box.
Why games suit a System One model
A game asks the same small question over and over: given what’s on screen now, which of these few moves? That’s what a System One model is built for. The answer is one option from a list you supply, with a probability for each, so the output can never be an illegal move or a paragraph. TypeSafe’s use-case map lists playing games and sitting inside a UI as target uses.
The demos that work best share the design in How to build with System One models. Code owns the rules, the physics and the button presses. Code works out anything measurable, such as distance to a gap or which moves are legal, before the call. Jev only judges what the situation means. typesafe-mario keeps jump timing in code. jev-drone does its own vision and keeps a 50 Hz reflex layer. llm_chess and jev-playground hand over only legal moves, and Jev made no illegal moves over 80 games of llm_chess.
Extra questions are cheap. Output is free and questions run in parallel, so a loop can ask for the move, a danger score and a “should I stop” check in one request. typesafe-mario and jev-drone both do this.
Where it breaks
Latency against frame rate
TypeSafe claims 70ms to 500ms end to end, per Jev speed and pricing. A 60 fps game has 16ms per frame. None of the demos call Jev every frame. They call it per junction, per obstacle, per turn or every few frames. The Snake benchmarks measured about 3.2 decisions a second over the cloud API with round trips near 300ms, and a local model beat Jev on raw speed in some of those runs. The real-time control use case says to keep Jev on an advisory layer above a deterministic controller, with a fallback for late or failed answers.
No planning
Jev sees one state and returns one answer. It doesn’t search ahead or remember the last turn unless your code puts that in the state. snake-jev spots immediate hazards but traps itself. The Kyrandia agent loops. GPT-6 Astra mated Jev in 18 moves. The Minecraft agent that finished the game used Astra for the plan and Jev for the moves.
Text only
Jev takes no images. Every demo above reads RAM, an entity list or a physics engine, or runs its own computer vision first. How good that text description is sets the ceiling on the play.
Reasoning over numbers
TypeSafe’s jaggedness list puts arithmetic, counting and comparisons among Jev’s weak spots. The poker test, where Jev misread a flush against a straight, fits that list.
Build your own
- Read the real-time control use case. It has a worked game-loop state, a choice plus a noul brake in TypeScript, and a fallback policy.
- Use the confidence-gated action recipe to decide when a low-confidence move should fall back to a scripted default.
- Use the parallel questions fan-out recipe to ask for the move and the safety checks in one call.
- Start from a small repo. typesafe-snake shows one choice per tick with legal moves computed in code. typesafe-mario shows three question types on one state. jev-drone shows a reflex layer and skipped calls.
- Try the TypeSafe AI Playground, a community playground with around 110 use cases, including games, hosted at jev.works.
- Browse the rest of the real-time control examples and every project in the directory.
FAQ
Can Jev play Doom?
Yes, from structured data rather than pixels. The Register reported this at launch. jev-doom-agent is an open version: it sends health, ammo, position and visible monsters, a Jev choice picks a tactical macro, and a local controller presses the keys. In a head-to-head Doom deathmatch, Laya won 5 to 1 by deciding twice as often.
Does Jev beat Opus at Pokemon Showdown?
In one match, yes. Sid Arya’s post reports Jev beat Claude Opus 5 at competitive Pokemon, at $0.0029 and 37 seconds of thinking against $2.35 and 6 minutes 29 seconds for Opus. That’s one game from the author, not a benchmark.
Can Jev play chess well?
Not against strong opponents. It makes legal moves when given the legal list, and llm_chess estimates its Elo at about 243 over 80 games. GLM 5.3 and GPT-6 Astra both beat it by checkmate. Its advantage is speed and cost: about 0.3 seconds and under $0.0001 per move in the GLM game.
Is Jev fast enough for real-time games?
For a decision every few frames or at each obstacle, the demos say yes. For every frame at 60 fps, no. Over the cloud API, measured Snake runs got about 3.2 decisions a second. Local models like Laya run far faster but lost on decision quality in the Tetris and Snake benchmarks where Jev won.
Can Jev see the game screen?
No. Jev takes text only. Every demo converts the game into text first, usually from emulator RAM, the game’s entity list or a physics simulator’s state. jev-drone runs its own computer vision on the camera feed and sends Jev a short scene description instead of pixels.
Has Jev played Minecraft to the end?
rmalde’s minecraft-agent went from an empty inventory to killing the ender dragon in 8 minutes 43 seconds on its best verified run. GPT-6 Astra made the plan in 35 calls, and Jev chose the in-game actions in 131 calls.