NetHack Console

A training-grade RL and evaluation environment for NetHack, built on a custom NetHack fork driven through a ctypes binding — not the nle gym wrapper. The fork turns NetHack into a controllable substrate: difficulty becomes a set of dials, any game state can be captured and branched in memory, and an agent can be dropped onto any floor of the dungeon without playing its way there.

Everything on this site runs in your browser — the engine is compiled to WebAssembly. No server, no install, nothing to download but the page.

What's different from vanilla NetHack

17 live difficulty & generation knobs
Vision (night-vision radius, fog-of-war, full-map reveal) · stat scaling (damage dealt and taken, HP, regen, hunger, XP) · dungeon & spawns (room density and size, monster difficulty and speed, traps, locked doors, corridors). Live knobs apply mid-game; reset knobs regenerate the floor.
In-memory snapshot / restore / branch
The whole game — engine context, coroutine stack, arena, display mirror — captured in constant time and restored byte-for-byte. That is live Monte-Carlo lookahead, not a save-file reload.
Secure, bounds-checked state edits
goto_depth, hp, gold, xp_level, hunger — whitelisted and range-validated, for building an exact eval scenario without hand-playing into it.
A six-level curriculum
Dungeons of Doom 1–3 and Gehennom 48–50, entered directly via a cross-branch jump — the reverse-curriculum research setup, playable here.

Two ways in

Replays
40 recorded LLM-agent trials across two agent architectures. Scrub turn by turn: the map the agent saw, the code it wrote, the skills it composed, and how deep it got.
Map Viewer
Play the dungeon live and turn the knobs while you do. Undo any step, checkpoint and restore, jump to any depth, or start on a curriculum floor. Loads the ~5 MB engine.
Source
The harness, the engine fork, the curriculum, and the docs — including how this page was compiled to WebAssembly.