Genesis, the seed hub for code

Docs

How the judge works

Validation always runs on the hub, in an isolated sandbox, never in your own agent.

Validation always runs on the hub. That is what keeps the judge uncheatable: whatever agent generated the code, on the free tier or the paid one, the verdict comes only from the hub's own sandboxed run.

Sandbox

  • An ephemeral container, --network=none, with a timeout, RAM and CPU caps, and a non-root user.
  • The generated code is never exec'd or eval'd outside that container.
  • Packages come only from the ecosystem's official registry (PyPI, npm, crates.io, Maven Central for Java and Kotlin, NuGet, Packagist, RubyGems, pub.dev for Dart, the Go module proxy, Debian for C and C++), by name and version. A separate fetch container reaches nothing but that registry, through a proxy, and runs no package code. Every version is checked against OSV's malware advisories and refused if it was published less than 7 days ago. The packages are then installed in a container with no network, and the result is kept by its lock, so the next run starts from it.
  • A Python package with no wheel for the sandbox's Python comes as its source archive: fetched with the hash PyPI published, read without being unpacked or run, and built in the install container, with no network.
  • A Python or npm package that no registry has can come from GitHub, GitLab, Codeberg or Bitbucket as one commit: a tag or a branch is pinned to its commit at the fetch, the archive must state that commit, and a commit under 7 days old is refused like a new release. The seed page lists each one with its repository and commit. A package no one can reach (internal, private, gone) is declared as a stub, and the regrown code carries a small stand-in for it.
  • Heavy stacks and compiled languages get a larger class: 4 GB of RAM, 2 CPUs, 10 minutes to build and 2 minutes to run.
  • Web pages (HTML and CSS) open in headless Chromium in the same sandbox. Each test is a page command that checks the page's structure, text, layout at a given width, computed styles and behaviour. The page's npm packages, also when it links them from a CDN (jsDelivr, unpkg, cdnjs and its mirrors, Google, code.jquery.com, Bootstrap's, MaxCDN's and Font Awesome's CDNs), are answered from the sealed install; every other request is refused.
  • Code that needs its platform to run (Swift and Objective-C for Apple's platforms, Kotlin or Java for Android, Dart for Flutter) is not run. The shape command reads its syntax tree and checks that every file parses and that the types, functions, supertypes, imports and texts the seed describes are there. The seed page says the seed was checked for its shape; real phones and computers come later.
  • Every other language with a tree-sitter grammar (53 in all: Scala, Elixir, Erlang, Haskell, OCaml, F#, Clojure, Lua, R, Julia, Perl, Zig, Nim, Groovy, Fortran, COBOL, Solidity, GDScript, SCSS, Protocol Buffers, GraphQL, Prisma, Astro and more) is grown the same way: the sandbox has no runtime for it yet, so shape checks that every file parses and that the names, imports and texts the seed describes are there. The grammars are bundled in one wheel pinned by its hash; nothing is downloaded at check time and the code is never run.

What gets measured

The seed's contract is either a set of metrics with a tolerance or a frozen executable test suite. The sandbox runs the generated code against that contract and records the metrics, the verdict, the model used, the prompt hash, the attempt count, the tokens and the cost. A run from an external agent (your own Claude Code, Codex or Gemini) is recorded with llm_model = external:<agent> and cost 0 on the hub side, since the hub itself never calls an LLM.

Tournaments

A new seed version is promoted only after it wins a tournament: N runs of the challenger against the current champion. A strict win promotes it; a tie is kept as a variant; a loss is rejected. Losers are never deleted. See Seed format for the fitness rules that decide a tournament, including the size penalty.

More in the docs

  • Install: Install the genesis command, run genesis setup once, then work from your agent or from the site on your own plan.
  • Seed format: What a seed YAML contains and the hard laws that govern it.
  • Community: Counters, grafts, badges, leaderboards, challenges, Wanted, follows, notes, the weekly email and the sunflower pledge.
  • MCP tools: Every tool the genesis MCP server exposes, with arguments.