typesafe-mario
NES RAM becomes JSON; Jev Choice picks legal Mario buttons every few frames with a live probability dashboard.
Overview
typesafe-mario lets Jev choose NES controller actions for Super Mario Bros from structured JSON built out of emulator telemetry and RAM. Faadil Shaik's launch clip shows real-time play without pixels in the prompt. The repo ships CLI tools, a live dashboard, and jsonl artifacts for overlays.
Problem: Vision pipelines for NES agents are heavy; Mario needs fast discrete inputs from reliable state, not screenshot captions.
Built for: Python developers benchmarking Jev on World 1-1 and anyone comparing RAM-first harness design.
First indexed on Jev Directory: 2026-09-16
Creator and team
- Name
- Faadil Shaik
- Handle
- @faadilhshaik
“got @typesafeai's new model Jev to play Super Mario Bros. fast inference + structured outputs makes it surprisingly good for real time use cases.”
How Jev is used
- Role in the product flow
- Per-step controller Choice from structured world model
- Primitives
- Choice
- State in
- player, trajectory, hazard, terrain, reaction_timing, and episode fields parsed from RAM (README architecture).
- Decision out
- One of noop, right, right_jump, right_run, right_run_jump, jump, left with probability distribution logged.
- NES emulator advances frames
- Parser builds JSON state without screenshots
- Jev Choice selects controller action
- Harness applies input for configured frames-per-decision (default 8 steps)
The harness keeps cardinality small and legal actions explicit, which is how Jev avoids hallucinated buttons. reaction_timing fields document observation-to-action delay for benchmarking. typesafe-mario state-demo prints payloads without launching the game. Play mode records artifacts/run-*.jsonl for clips and telemetry. You must supply your own lawful ROM and TYPESAFE_API_KEY.
Features and stack
Features
- Python 3.13 CLI typesafe-mario play and state-demo
- Live dashboard with probabilities and latency
- jsonl decision logs for overlays
- Documented action set and parser fields
- Hundreds of GitHub stars in the public catalog snapshot
Stack
- Python 3.13
- NES emulator harness
- TypeSafe Jev
Demo
Showcase clip with the same lightbox player as the homepage. Click to play.
Super Mario Bros from RAM, not pixels
NES memory becomes JSON, Jev picks run or jump, and World 1-1 advances without a vision model cosplaying as a speedrunner.
Links
FAQ
- Does Jev see the screen?
- No. README states the model receives structured JSON from telemetry and RAM, not screenshots.
- How often does it decide?
- Default play command uses one decision every eight emulator steps; adjust --frames-per-decision for benchmarks.
Related learn guides
Original Jev guidance that pairs with this product pattern.
- Jev use cases
The patterns builders actually search for: moderation, routing, triage, RAG verify, and agent gates.
Related products
Hand-picked neighbors with rich profiles or overlapping tags.