# Arena

Make 100 versions of Claude fight to the death over one task.

- Repository: https://github.com/Jakeschincariol/arena-skill (1186 stars)
- Category: AI and agents
- License: MIT
- Last updated: 2026-09-27
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add Jakeschincariol/arena-skill --skill arena -g -a claude-code -y`
Codex: `npx skills add Jakeschincariol/arena-skill --skill arena -g -a codex -y`
Cursor: `npx skills add Jakeschincariol/arena-skill --skill arena -g -a cursor -y`
Gemini CLI: `npx skills add Jakeschincariol/arena-skill --skill arena -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add Jakeschincariol/arena-skill`

## Description

Make 100 versions of Claude fight to the death over one task. Spins up N sub-agents (default 100, --quick for 16), gives every one the exact same task plus a different strategy card (reasoning mode, workflow, strategy), then runs a single-elimination bracket: they attack each other's solutions, defend and revise, and a judge scores every match on a written rubric until one solution survives. Use when the user is not satisfied with an answer, calls it a bad answer, says try again or do better, says "arena", or asks to make them compete.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# arena

For when Claude keeps giving a bad answer. Instead of asking again and again, this runs a tournament:
N sub-agents get the exact same task, each attacks it with a different reasoning mode, workflow and
strategy, and then they attack each other in a bracket until one solution is left. You are the
orchestrator. You never compete and you never judge.

What the user typed after `/arena`: `$ARGUMENTS`

If that is blank, or still reads like a placeholder, nothing was passed: take the task from the
conversation.

## The tool

Every piece of bookkeeping goes through `bracket.py` in this skill's folder:

```bash
python3 "${CLAUDE_SKILL_DIR}/bracket.py" <command>
```

Below, `ARENA` means exactly that command. If the path looks unexpanded, use the "Base directory for
this skill" that Claude Code printed at the top of this skill. The state lives in
`.arena/<run>/arena.json` in the current directory, and every command after `init` finds it through
`.arena/LATEST`.

## Step 1: size it, and get a yes if nobody asked for it

Read the flags out of the request. Everything that is not a flag is the task.

| flag | meaning |
| --- | --- |
| `--agents N` | N competitors. Default 100. |
| `--quick` | 16 competitors. The everyday setting. |
| `--seed S` | Fixes the cards and the pairings. Default: random, and recorded. |
| `--wave W` | Sub-agents per wave. Default 10. Only raise it if the user raised Claude Code's limit. |

No task text at all means: the task is the user's most recent request in this conversation, and your
last answer to it is the baseline to beat.

Run `ARENA plan --agents N` (or `--quick`). It prints the rounds, the sub-agent calls and the waves.

The rest: https://github.com/Jakeschincariol/arena-skill/blob/HEAD/skills/arena/SKILL.md
