The Teleport Coding Challenge

Port NetHack 5.0 from C to JavaScript. Bit-exact parity. Highest score wins.

NetHack is one of the most complex and longest-lived open source programs ever written. After 46 years of continuous development — tracing its lineage from Rogue (1980) to Hack (1982) to NetHack — v5.0 just shipped: the first major version bump since 3.0 in 1989. That’s 442,901 lines of C and Lua to port.

This contest asks: can a swarm of LLM coding assistants enable a single person to work with a program of this scale and complexity? Can agents create hundreds of thousands of lines of code that humans would actually want to own afterwards?

About the contest →   About NetHack →

Leaderboard

Re-scored every six hours · Full view →

Loading…

Category is based on how the team plans to produce most (over 50%) of the code. Agentic codebases are mostly produced by generating code with an LLM and Transpiled codebases rely mostly on transpiling the C sources with tools. Points shown as public + held-out: matched 80×24 screens, one point per recorded step where the fork’s render matches C exactly. The 88 sessions split 44/44 across the public corpus and a held-out set kept private until contest end. PRNG is shown as advisory progress — it’s the structural prerequisite for screens to match. The Sessions column tallies sessions where every screen and PRNG call matched (public + held-out). Play opens the build in your browser; Tests opens the Session Viewer scoped to it.

Play it in your browser

Hit any Play button on the leaderboard above to open that contestant’s port directly in your browser — running entirely client-side, no install. Tests opens the Session Viewer scoped to that same fork: scrub through any of the 44 public sessions and see, frame by frame, where the JS port diverges from the official C trace.

Two phases

Phase 1 — Foundation

Opens May 2026 · Deadline Sun Nov 29, 2026

Standard parity contest against NetHack 5.0. Score against 88 sessions (44 public and 44 held-out). Top 10 teams qualify for Phase 2.

Phase 2 — Generalization

Target announced Nov 30 · Deadline Dec 31, 2026

Judges pick a “5.1” target — selected changes to the baseline codebase. Phase 2 score is parity against 5.1, divided by a penalty proportional to how much you changed your js/ from your Phase 1 submission. Ports with maintainable code win.

Best Method award

Throughout both phases, judges spotlight team writeups on the leaderboard. After Phase 2, a separate Best Method award is judged on the quality and reproducibility of the writeup — independent of where you placed in the parity ranking. The goal: capture and share the actual techniques that worked.