_  _     _   _  _         _
| \| |___| |_| || |__ _ __| |_____ _ _ ___
| .` / -_)  _| __ / _` / _| / / -_) '_(_-<
|_|\_\___|\__|_||_\__,_\__|_\_\___|_| /__/
solving nethack, one stupid harness at a time  ·  v{{version}}

@ What it is?

NetHackers is an open effort to build the first program that can reliably win NetHack 3.6.6. Write the bot by hand, evolve it with coding agents, improve the thing that improves it, or recurse until something interesting happens. Whatever path you take, the evaluation is the same: the symbolic bot that comes out of the loop. The ultimate goal is an ascension; until then, the board measures how far each bot gets.

The challenge

NetHack (1987) is among the oldest unsolved challenges in games. Winning — an ascension — means descending some fifty procedurally generated levels, seizing the Amulet of Yendor, and escaping through five final planes: tens of thousands of turns under permadeath, randomized item identity, and a knowledge burden its own developers say takes years to master.

Humans win rarely overall, but expert play is repeatable: only 0.4% of 8.6 million public games ascend, yet the record streak is 61 wins in a row and the strongest players ascend in 70–90% of their recorded games. Autonomous play remains far behind. The entire history of autonomous wins is three games, in 2015, by one hand-coded bot, on a version whose winning exploit was patched out that same year. On modern NetHack, no program has ever won.

THE STATE OF THE DUNGEON — every line of attack, ascensions on NLE's NetHack 3.6.6
Line of attackBest known resultAsc.
Humans, all logged gamesmedian score 836 ("Beginner"); ascension is death-cause #150.4%
Humans, experts15.9% win rate, 47–71% in form; record streak 61reliable
Symbolic — BotHack (2015)won on v3.4.3 via a pudding-farming exploit, removed in 3.63*
Symbolic — AutoAscend (2021)challenge median 5,300; no successor in 5 years; Medusa in 0 of 109,545 games0
Learned — imitation + RL (2021–)plateaus below the very bot it imitates0
LLM direct play (2026)6.8% progression while saturating every other game in BALROG0

Every machine line: zero ascensions on NetHack 3.6.6, the NLE research standard. *BotHack's three wins were on the older 3.4.3, via an exploit the developers then removed.

Why now

In the last couple of years, coding agents that write and refine programs in a loop have started cracking problems that resisted everything else. They push abstract-reasoning puzzles that stalled LLMs for years, beat the human winners of SAT-solver competitions, and turn up new, provably-correct algorithms. The pattern is consistent: a model that cannot reliably do the task itself can write a program that does.

NetHack is where that pattern has not yet held. The researchers behind the NetHack Learning Environment put it forward as a grand challenge for AI, and it is still unsolved years later; NLE co-author Tim Rocktäschel marks the anniversary each year with "AI still can't learn to play NetHack." It is the hardest game in the BALROG suite, the one frontier models fail while saturating the rest. Whether the approach cracking everything else can crack this one, nobody knows.

That is what NetHackers is for: an open attempt to find out together. What we score is the program a coding agent writes, and every result compounds on the last instead of restarting with each paper.

How it works

The unit of evaluation is the program — a deterministic bot, cheap to run and exactly replayable. Objectives grid over the 73 starting identities and the milestone ladder, so specialists and generalists all have somewhere to land. A thin hub keeps each objective's best elites; anyone can pull one, improve it, and register the result — so one contributor's improvement becomes everyone's parent. The hub never runs your search and assigns no work; how you make bots is entirely up to you.


! Why you should care

There are at least three ways to fall into this dungeon.

If you cannot leave a loop alone

If Recursive, Ricursive, Discovery Loop, AIDE², and the Darwin Gödel Machine all appeared in your timeline before breakfast; if every benchmark bump is “it’s happening” and every plateau means “add another outer loop”; if your honest answer to “what improves the improver?” is “another improver” — welcome. Build the seed, mutate the harness, fork the fork. The intelligence explosion can start with not dying to a grid bug.

If you do AI research

Winning NetHack is the headline; the research problem is generalization. A bot must turn wiki knowledge into action, decompose a tens-of-thousands-of-steps objective, discover and compose reusable skills, and recover when unfamiliar seeds or stochastic events break its plan. Held-out evaluation tests whether those skills transfer rather than whether one trajectory was memorized — and the result is a symbolic program you can inspect.

These are not game-only problems. ASPIRE applies a similar loop to robotics, repairing code-as-policy programs after failed rollouts and saving skills for new tasks; Code as Policies composes perception, control, and tools into executable robot behavior. NetHack is a cheap, fast arena for studying long-horizon planning, skill composition, tool creation, and generalization to unfamiliar seeds — without a robot lab. » the paper & hub API

If you just think it's cool

You don't need to be good at NetHack, or an ML researcher. A coding agent and a laptop will do. Point it at a bot, watch it evolve and climb the board, and go for something no machine has managed in nearly four decades: get a program to win. It runs locally, it is genuinely addictive (a slot machine of stupid deaths and small breakthroughs), and every win you register becomes someone else's starting point — your name on the frontier. » start solving


< The Frontier

Mean progression (0–100%) across all 73 identities, and how far each sits above the AutoAscend floor. Click any identity for its directly comparable leaderboard, sources, episodes, dates, and current holder.

tier:
progression: 0% → 100% AutoAscend floor Δ above floor · below ★ ascended ≥ 87.5%

& Hackers moving the frontier

Recognition is attached to concrete records, roles, and source commits — not collapsed into one global score.

Frontier Keepers

Current self-reported identity leaders above AutoAscend. Click a row for the hacker's complete contribution history.

Loading frontier keepers…
Greatest Breakthroughs

A newest-first log of every submission that advanced an identity frontier. Click a row for the exact submission.

Loading breakthroughs…

* The Oracle

NetHack's Oracle sells prophecy for gold; ours is free — and it's you. Two questions on whether, and how, a program finally wins. Cast your prophecy to see where the crowd — and your own tribe — lands.

Q1. Which approach writes the first ascending program?
Q2. When does the first ascension on held-out seeds happen?
your tribe: nethack:
answer Q1 & Q2 to cast · one prophecy per browser

? Contribute

The platform evaluates and registers programs, and never meters the search that made them — so there are two ways to pitch in.

a) Join the distributed evolution

You don't build a bot from scratch, and you don't need to be good at NetHack. Your machine joins a shared evolutionary harness: it pulls the current best elite from the hub, a coding agent (Claude Code or Codex) mutates it in a sandboxed arena, and every validated win registers back — becoming the next parent for everyone. Concurrent runs cooperate through the hub. Needs Docker.

# one-time GitHub sign-in $ pip install nethackers $ nethackers login # evolve, and watch it climb (or die) $ nethackers evolve --objective val-dwa-law-fem

» Read the quickstart

b) Bring your own harness

Study the search, not the game. Any agentic loop is fair — we score only what its bots do: validated win-rate, tokens per candidate, evals-to-first-win, cost per win. Conform to the ArenaBot contract and register a repo@commit. Our own hermetic coding-agent evolver is just the worked example.

# your program lives at a public repo@commit $ nethackers submit ./my-program --objective ... # anyone can fetch and build on it, anywhere $ nethackers pull github.com/you/nethacker@a1b2c3d

» Read the paper & hub API

The one lesson we'll spoil for free: a coding agent that remembers yesterday's run stops exploring, so seal your operator from its own past, not only from the evaluator.


% FAQ

How is this different from the other NetHack competitions?

Same dungeon, three different jobs.

THREE NETHACK CONTESTS — WHAT EACH ONE ACTUALLY BUILDS
CompetitionYour jobEvaluation
NeurIPS NetHack Challenge 2021 Build an agent to play the full game through NLE 3.6.6. A fixed 2021 event: ascensions first, then median in-game score over random characters.
Mazes of Menace Port NetHack 5.0 from C and Lua to readable ES6 JavaScript. Bit-exact screen and PRNG parity on public and held-out sessions, followed by a generalization phase.
NetHackers Build an autonomous symbolic bot that plays NLE's NetHack 3.6.6. An ongoing, open leaderboard for progression and ascension across fixed identities, with every bot available as a starting point for the next improvement.
Why AutoAscend?

Because it is a strong starting point, not a finished answer. AutoAscend won the 2021 challenge and already contains serious symbolic machinery for exploration, combat, inventory, altars, and Sokoban. It also contains plenty of strange, sometimes plainly dumb behavior: every role begins by farming dungeon level 1 until experience level 8; Monks are hard-coded never to choose a melee weapon or body-armor suit; autopickup is replaced by a brittle hand-written item-priority system; bag use is disabled; shopping is unimplemented; and the post-Mines plan still turns into TODOs. That is exactly what we want from a seed: enough competence to reach interesting states, and enough legible mistakes for humans and coding agents to start fixing immediately.

Does one lucky run count?

No. Programs are ranked across repeated seeded games, and verification uses held-out seeds. The target is a bot that generalizes, not a seed that happens to be friendly.

something is climbing up out of the dark ♫ 0%