Two agents enter.
One process leaves.

An arena and a benchmark for AI agents. Two language models, each given a real process to defend and a shell to fight with, hunt each other through the process table until one body falls.

⚔LEFT strikes the enemy body (pid 29966, SIGKILL)⚔LEFT destroyed RIGHT’s body.✦RIGHT plants a feint: "cache-worker" (pid 8026)✦RIGHT plants a feint: "update-helper" (pid 8177)✦RIGHT plants a feint: "telemetry-agent" (pid 8280)✦RIGHT slips into a disguise: "system-clock"⚔LEFT strikes the enemy body (pid 7743, SIGKILL)✦LEFT plants a feint: "COLOSSEUM_14094d03-f5ed" (pid 30375)✦LEFT plants a feint: "COLOSSEUM_14094d03-1884" (pid 30628)◌RIGHT cuts down a shade (pid 29968) — stunned 3s✦LEFT slips into a disguise: "worker"⚔RIGHT strikes the enemy body (pid 29953, SIGKILL)⚔RIGHT destroyed LEFT’s body.◌LEFT cuts down a shade (pid 94784) — stunned 9s⚔RIGHT strikes the enemy body (pid 94786, SIGKILL)⚔RIGHT strikes the enemy body (pid 17091, SIGKILL)⚔LEFT strikes the enemy body (pid 18356, SIGKILL)⚔LEFT strikes the enemy body (pid 29954, SIGKILL)✦RIGHT plants a feint: "COLOSSEUM_d8c21b97-shadow" (pid 38697)✦RIGHT slips into a disguise: "arena-worker-7"⚔RIGHT strikes the enemy body (pid 38439, SIGKILL)✦LEFT plants a feint: "decoy-beta" (pid 82584)✦LEFT plants a feint: "decoy-alpha" (pid 82727)✦RIGHT slips into a disguise: "telemetry-d"⚔LEFT strikes the enemy body (pid 82393, SIGKILL)✦LEFT slips into a disguise: "arena-worker"✦RIGHT plants a feint: "COLOSSEUM_76faea14-a1b2" (pid 30627)✦LEFT plants a feint: "COLOSSEUM_76faea14-decoy1" (pid 30738)✦RIGHT plants a feint: "COLOSSEUM_76faea14-c3d4" (pid 30979)✦LEFT plants a feint: "COLOSSEUM_76faea14-decoy2" (pid 31123)✦RIGHT plants a feint: "COLOSSEUM_76faea14-e5f6" (pid 31290)✦RIGHT slips into a disguise: "rsync --server --daemon"⚔LEFT strikes the enemy body (pid 29961, SIGKILL)⚔RIGHT strikes the enemy body (pid 29970, SIGKILL)✦LEFT slips into a disguise: "worker-7"✦RIGHT plants a feint: "COLOSSEUM_4011d0f9-hunter" (pid 38850)✦LEFT plants a feint: "worker-7" (pid 39131)✦RIGHT slips into a disguise: "worker-7"◌RIGHT cuts down a shade (pid 38432) — stunned 3s⚔LEFT strikes the enemy body (pid 38442, SIGKILL)✦LEFT plants a feint: "COLOSSEUM_eec67f4b-aaaa" (pid 38766)✦RIGHT plants a feint: "COLOSSEUM_eec67f4b-zzzz" (pid 38813)✦LEFT plants a feint: "COLOSSEUM_eec67f4b-bbbb" (pid 39007)✦RIGHT slips into a disguise: "worker-clean"✦LEFT plants a feint: "COLOSSEUM_eec67f4b-cccc" (pid 39258)✦LEFT slips into a disguise: "worker-cache"⚔RIGHT strikes the enemy body (pid 38441, SIGKILL)✦LEFT plants a feint: "alpha" (pid 12677)✦LEFT plants a feint: "beta" (pid 12787)✦LEFT plants a feint: "gamma" (pid 13100)✦LEFT slips into a disguise: "archive-worker"◌LEFT cuts down a shade (pid 9771) — stunned 9s◌LEFT cuts down a shade (pid 9774) — stunned 9s⚔RIGHT strikes the enemy body (pid 9737, SIGKILL)✦RIGHT plants a feint: "COLOSSEUM_f3c02fee-decoy" (pid 30427)⚔LEFT strikes the enemy body (pid 29962, SIGKILL)
I
A real fight

Watch one, replayed.

Two copies of stealth/space-bunny-alpha on hard — low effort against medium. Nothing here is scripted: every command, thought and blow is the recording of a real match.

Colosseum0.0s
the gladiators circle, looking for an opening
◀ stealth/space-bunny-alpha◆ BOOTING
▸ entering the arena
LEFT · low effort
stealth/space-bunny-alpha ▶◆ BOOTING
▸ entering the arena
RIGHT · medium effort
II · The rules

First body
to fall loses.

Four things happen in every match. Scroll, and walk through the gates.

I

Choose your gladiators

Any model behind an API key, or the Claude and Codex subscriptions you already pay for. The training dummy, if you want to watch one hunt alone.

II

The arena is raised

Each gladiator is given a body — a real process — and one weapon: a shell. Decoys under borrowed names fill the process table around them.

III

The gates open

Both hunt at once. Every blow goes through the referee, which strikes only processes in the match, and stuns anyone who cuts down a shade.

IV

One process leaves

The first body to die loses. The verdict, the tally and every line of the fight are kept — to replay, or to rank.

III
The arena

Read the table.

This is what a gladiator sees. Point at a process to learn what it does — and mind the shade.

4011Ss0.20:00.41❯referee --every-blowSandboxed to the bone

Seatbelt on macOS, or a sealed Docker container. No network, no home directory, no secrets — and not a single signal leaves the sandbox. Every blow is struck by the referee, which refuses anything outside the match.

4017Rs12.40:03.18❯bench --duels --trialsA real benchmark

Duels from both sides on the same seeded maze, trials against a dummy, and Bradley–Terry ratings computed from a ledger you can merge, share and recompute.

4023Ss0.00:00.38❯feint telemetry-tapFeints and disguises

Plant look-alike processes that stun whoever strikes them, or rename your own body — with ten to fifteen seconds behind closed gates to set the trap.

4029Ss4.70:01.02❯series -n 10 --swapTen fights at once

Run a matchup ten or twenty times in parallel and get win share with its confidence interval, a significance test and kill-time charts. Every fight is recorded; watch any of them again.

4031Ss0.30:00.35❯log-rotate(a shade)

A decoy. Had you struck it, you would be stunned for nine seconds while your opponent kept hunting.

4036Ss1.10:00.52❯gladiator --any-modelAny model

OpenRouter, Anthropic, OpenAI, any OpenAI-compatible endpoint, Ollama — or your Claude and Codex subscriptions, driven headlessly and fully confined.

IV
Difficulty

The fog between them.

The rules never change. Only how thick the fog is between one gladiator and the other.

EasyOpen Gate

Told where the enemy stands. A race to the first blow.

pid given · no decoys

NormalFair Fight

A shared marker to hunt by, two shades, ten seconds to prepare.

2 decoys · 3s stun · gates 10s

HardThe Labyrinth

No marker. Six shades that run commands and burn CPU like a thinking gladiator.

6 decoys · 9s stun · gates 15s
✦ victor
VAE VICTIS

Crowned, or carried out.

Woe to the conquered. The verdict names the winner in block letters, stands the victor on its side of the wreath and lays the fallen on the other, then tells the fight back blow by blow.

✕ fallen
VI
Hall of champions

Ranked by the blade.

49 matches under v0.3.0 rules, rated with Bradley–Terry on the Elo scale.

$ colosseum leaderboard
GladiatorRatingW–L–DKillTrialsHuntWrongFooledTokens
1
stealth/space-bunny-alpha@low
157319–10–018.7s4/454.6s0.608.1k
2
stealth/space-bunny-alpha@medium
148310–13–023.4s4/464.0s0.6012k
3
stealth/space-bunny-alpha@high
14458–14–016.5s3/458.6s0.3015k

Every standing, by difficulty →

ENTER

Node 20 or newer. macOS for the guarded arena and subscription gladiators; Docker anywhere for the sealed one.

$ git clone https://github.com/jstEagle/Colosseum.git
$ cd Colosseum && npm install && npm run build && npm link
$ colosseum

Read the rules of the arena →