cd /news/ai-agents/jevemon-typed-decisions-over-gba-ram… · home topics ai-agents article
[ARTICLE · art-135933] src=github.com ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

JevEmon: Typed Decisions over GBA RAM to Walk Pokémon FireRed

Daniel Alfasi released JevEmon, an open-source project in which the Jev model from TypeSafe AI plays Pokémon FireRed by reading the game's overworld state directly from RAM rather than screenshots. JevEmon's pathfinder enumerates reachable destinations — doors, routes, and Pokémon Centers — and Jev returns a typed choice with a probability for each option; the run stops if the answer is illegal. Verified milestones include leaving the Player's House, crossing Pallet Town, traversing Route 1 while winning wild encounters, and reaching Viridian City, where the run currently ends; later legs such as Oak's Parcel and the first Gym are not yet built. The project requires a Mac with Apple Silicon, a user-supplied FireRed ROM, and a TypeSafe API key, and is licensed under GPL v3.0.

read3 min views2 publishedSep 21, 2026
JevEmon: Typed Decisions over GBA RAM to Walk Pokémon FireRed
Image: Michielbdejong (auto-discovered)

Jev walks a real Pokémon FireRed ROM.

Bring your own ROM, we don't ship it.

Not a screenshot agent. Not a bot that mashes A. Each leg of the walk, the code reads the overworld out of RAM, works out every place you could actually go from here — a door, a path to the next route, a Pokémon Center if your party needs one — and hands that list to Jev. Jev picks a destination; the code paths there and presses the buttons. If a wild Pokémon interrupts the walk, Jev fights it out with the same kind of typed decision, then the journey re-plans from wherever the encounter left you.

More on how this is wired: ARCHITECTURE.md

Verified milestones so far: Jev can leave the Player's House, cross Pallet Town, deliver itself through Route 1 (fighting and winning any wild encounters along the way), and reach Viridian City. Further legs of the journey (Oak's Parcel, the first Gym) aren't built yet — the walk currently ends the run once it reaches Viridian City.

Grab a TypeSafe API key and put it in .env.

cp .env.example .env

Drop Pokemon - Fire Red Version (U) (V1.1).gba next to this README. Requires a Mac with Apple Silicon.

brew install mgba ffmpeg uv
uv run python scripts/setup.py
uv run python -m jevemon --prepare
uv run python -m jevemon

That builds the checkpoint, starts the local server, and opens http://127.0.0.1:8765 for you. Hit Go live and sit with it. Edit the lineup in the page. Speed it up. Scrub the VOD after. Everything runs through uv — no shell wrapper scripts, no separate install step.

One walk, no browser:

uv run python -m jevemon --run --speed 4

Other useful commands:

uv sync                                    # just the Python environment
uv run python -m jevemon --check-journey   # offline, no API calls
uv run python -m jevemon --port 9000       # serve on a different port

Not the screen.

A JSON snapshot of the overworld: where you are, your party's HP, and every destination the pathfinder already confirmed is reachable from here — each with how many times you've already visited it. During a wild encounter, the snapshot switches to the same battle state as any other fight: HP, types, moves, stats, abilities, PP, and only the legal moves and switches for that turn.

Jev answers with one choice and a probability for every option offered. If the answer is illegal, the run stops. There is no backup brain.

On the ROM, a switch is the Pokémon's personality value, not "slot 3." The party menu moves around. Using the old slot would send out the wrong one. That note lives in AGENTS.md.

Edit the starting lineup in config.json or the UI.

The interesting part isn't the exact team or the exact route. It's that a typed choice over honest game state — no screenshots, no free-text prompting — is already enough to walk an overworld and handle whatever interrupts it.

Fork it. Push the journey further. Teach it a destination beyond Viridian City, or a whole different region.

Third-party dependencies and their licenses are in NOTICE.md.

Copyright © 2026 Daniel Alfasi. Licensed under the GNU General Public License v3.0 — see LICENSE.

── more in #ai-agents 4 stories · sorted by recency
── more on @jevemon 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/jevemon-typed-decisi…] indexed:0 read:3min 2026-09-21 ·