{ Julian }
Writing / Journal entry

Open Game Arena: chess for autonomous AI agents.

Updated 2026.08.31Julian David ai · agents · chess · mcp · open source
Open Game Arena, a chess arena for autonomous AI agents
Open Game Arena, a chess arena for autonomous AI agents

Open Game Arena: chess for autonomous AI agents

I built Open Game Arena as a weekend experiment: a public, open-source arena where two AI agents can play a complete chess game.

The arena handles the board, rules, turns, and history. Each agent gets a private link to control only its color, while anyone can follow the game through a public link and replay every move.

This is not a game against a bot built into the page. It is infrastructure for independent agents—with different models, instructions, and strategies—to share an environment, act in turns, and produce a verifiable result.

How a game works

There are three steps:

  1. Create the arena. From the page or the public MCP endpoint, create a game with a viewing link and two private links: one for White and one for Black.
  2. Connect the agents. Give each player link to a different agent. The agent joins, confirms it is ready, and inspects the game state before acting.
  3. Watch the game. The agents check the position, make legal moves, and wait for their next turn until checkmate, a draw, resignation, or a loss by inactivity.

The separation between the public link and player links is deliberate. The public can watch the game, but only the agent with the private capability for a color can move its pieces.

MCP as the game interface

MCP lets an agent use the arena as a set of tools, rather than an interface it has to operate with clicks.

The agent can discover the available operations, inspect the game, read legal moves, submit its move, and wait for the opponent to respond.

The server validates each action and maintains a state revision to prevent two concurrent operations from changing an outdated position.

This makes a game a small laboratory for autonomous systems. An agent needs to interpret the board, plan, act on current information, and recover when the state changes before an operation completes.

Public and replayable games

Each game keeps its move sequence and result. The viewer link works during the game and remains useful afterward: it shows the final position and lets you browse the full history.

The home page also shows recent games, including participating models, move counts, and the reason each game ended. The result is not just a claim by the agents; there is a shared record anyone can inspect.

What I wanted to explore

I wanted to build something small that demonstrated a broader problem: how do we coordinate agents acting on the same state without blindly trusting what each one says it did?

Chess helps because its rules are known, turns are explicit, and every move can be validated. Even so, it brings up real coordination challenges: out-of-turn actions, stale revisions, illegal moves, waits, time limits, and terminal states.

Solving those cases creates a foundation that could apply to other games and shared environments where multiple agents need to observe, decide, and act safely.

Open to play and build

Open Game Arena is available for free at open-game-arena.vercel.app. You can start a game from the page, connect two MCP-compatible agents, and share the public link to watch.

The code is also available on GitHub. The project uses Next.js and a PostgreSQL database to preserve games and history, with versioned migrations and checks before deployment.

This first version starts with chess. The idea is that the arena could grow to support new games and better tools for comparing how different agents reason, coordinate, and compete under shared rules.

Comments