Here's the goal: when one answer from Claude isn't good enough, you type /arena with the job, and a bunch of copies of Claude each take a different approach, attack each other's answers in pairs, and a judge knocks out the loser of every match until one is left. You get the winner and every attack it survived.
Arena is a free, open-source skill for Claude Code (a skill is a set of instructions Claude Code can load and follow). The skill costs nothing. The usage does: a full 100-copy run is 595 calls to Claude, so this guide shows you what a run costs before you start one, has you test it small, and tells you where I'd actually use it: the stuff you're about to put money behind, like an ad.
Start here: paste this into Claude Code
Open a terminal, make an empty folder for your arena runs and start Claude Code in it. Then paste the prompt below. It installs Arena, runs the free cost check, and helps you write a good task, then stops and hands the actual /arena command to you, because the moment you type it, the run starts and spends usage.
mkdir -p ~/arena-runs
cd ~/arena-runs
claudeHi Claude. Please be my patient setup helper. I run a home-service business and I'm not technical: one step at a time, tell me exactly what to type, and wait for me after each step.
Goal: install the free Arena skill for Claude Code (https://github.com/Jakeschincariol/arena-skill) as a personal skill, check what a run costs before anything runs, and help me write one good task so I can run a small test myself.
Steps:
1. Check that git and python3 are installed (git --version, python3 --version). Arena needs Python 3.8 or newer. If one is missing, tell me where to get it and stop.
2. Install Arena: git clone https://github.com/Jakeschincariol/arena-skill.git, then cp -r arena-skill/skills/arena ~/.claude/skills/ . Before the copy, check whether ~/.claude/skills/arena already exists. If it does, stop and ask me; don't overwrite it.
3. Free cost check: run python3 ~/.claude/skills/arena/bracket.py plan --agents 8 and then the same with --quick and with no flag (that's 100). This only does math and writes nothing. Show me the sub-agent calls and rounds for each in a small table.
4. Help me write the task. Ask me what I want the best version of (an ad headline, the first lines of an ad, a follow-up text). Then write it as one self-contained paragraph: what it's for, who reads it, the facts it can use, the length, and what a great answer looks like. The copies only see that text, not our chat. No customer names, phone numbers or private data in it, because it gets saved to a file.
5. Stop. Don't run /arena and don't start the tournament yourself. Show me the exact line to type for the smallest test: /arena --agents 8 followed by my task, and tell me how many sub-agent calls that is from step 3. Remind me that typing it starts the run right away and uses my Claude plan's limits, and that I can check my usage with /usage first.
House rules for this setup:
- If you use a technical word, explain it in plain English the first time.
- Ask me before you assume anything about my business, my accounts or my setup.
- Stop and check with me before anything that costs money or uses a lot of my plan's usage. Never start an arena run for me.
- Stop and check with me before anything that sends, posts or publishes to real people. Arena only writes text; nothing it makes goes out unless I send it.
- Stop and check with me before you delete or overwrite anything.
- Never ask me for, print or save a password, key or token.How the pieces connect
This is the manual way: every step and every command, the same ones the prompt above uses. Here's what happens inside one run, in the order the skill does it.
- 1Your taskYou type /arena with the job (or just /arena after an answer you didn't like)→ the task, plus the old answer to beat if there was one
- 2The task fileThe skill writes your task as one self-contained brief in .arena/→ the only thing the copies ever see (they can't see your chat)
- 3SpawnEach copy gets the same task and a different strategy card (a way of reasoning, a workflow and a strategy)→ one answer per copy, saved in .arena/
- 4Attack and defendCopies pair off; each attacks the other's answer (FATAL, MAJOR or MINOR), then answers the attacks and fixes its own→ two revised answers per match
- 5JudgeA separate judge scores both on the rubric, without seeing the cards→ the higher score moves on
- 6WinnerRounds repeat: 100, 50, 25, 13, 7, 4, 2, 1→ the winning answer, why it won and the attacks it survived
Words you'll see
- Skill: a folder with instructions (a SKILL.md file) that Claude Code loads when you type its name after a slash.
- Sub-agent: a separate copy of Claude that Claude Code starts to do one piece of the job. Every copy in the arena is a sub-agent of the same model you're running.
- Strategy card: the different way of thinking each copy is told to use. It's the only thing that makes the copies different from each other.
- Wave: a batch of sub-agents running at the same time. Claude Code runs about 10 at once by default, so 100 copies don't all go at the same moment.
- Rubric: the judge's scorecard: correctness 30, completeness 25, robustness (how well it held up to attacks) 20, specificity 15, clarity 10, out of 100.
Install Arena
Have Claude Code on a paid plan
Skip this if
claude --versionalready prints a version. Claude Code needs a Pro, Max, Ultra, Team, Enterprise or Console account; the free plan doesn't include it.curl -fsSL https://claude.ai/install.sh | bash # open a NEW terminal window, then: claude --versionCheck git and Python
Arena's bookkeeping runs on Python 3.8 or newer, using only what comes with Python, so there's nothing else to install. Git is how you download it.
git --version python3 --versionCopy the skill into your personal skills folder
A skill in
~/.claude/skills/works in every project on your computer, and you call it with/arena. Claude Code watches that folder, so it shows up without a restart. If you never had a~/.claude/skillsfolder before this session, type/reload-skillsonce.git clone https://github.com/Jakeschincariol/arena-skill.git mkdir -p ~/.claude/skills cp -r arena-skill/skills/arena ~/.claude/skills/PermissionsThis copies a folder of text instructions and one Python file (bracket.py) onto your computer. It asks for no account, key or login.Or: install it as a plugin instead
Same skill, installed from inside Claude Code. The difference is the name: plugin skills get the plugin's name in front, so you'd type
/arena-skill:arenainstead of/arena. Pick one way, not both./plugin marketplace add Jakeschincariol/arena-skill /plugin install arena-skill@arena-skillCheck it's there
Start
claudeand type/ar. The command menu should list/arena. Don't press Enter on it yet:/arenaon its own uses your last request as the task and starts a full 100-copy run.
First test: the free cost check, then 8 copies
Free first. The skill comes with a planner that only does math. It doesn't call Claude and writes nothing, so it costs nothing. Run it for the sizes you're thinking about:
python3 ~/.claude/skills/arena/bracket.py plan --agents 8
python3 ~/.claude/skills/arena/bracket.py plan --quick
python3 ~/.claude/skills/arena/bracket.py plan| Copies | Rounds | Calls to Claude | Waves of 10 |
|---|---|---|---|
| 100 (the default) | 7 | 595 | 70 |
| 64 | 6 | 379 | 49 |
| 32 | 5 | 187 | 28 |
| 16 (--quick) | 4 | 91 | 16 |
| 8 | 3 | 43 | 10 |
Then the smallest real run. Check where you stand with /usage first. Then pick something short where you can tell a good answer from a bad one, and run it with 8 copies. That's the size I'd learn on, before I ever try 100.
/arena --agents 8 Write the headline for a Facebook ad for a roofing company that does free roof inspections after storms. The reader is a homeowner scrolling on their phone. Under 10 words, no prices, no promises we can't back up, no "best in town". A great answer makes a homeowner with a leak stop scrolling.Before it starts, the skill tells you the size in one line, and it'll suggest accept-edits mode (press Shift+Tab until the bottom of the screen says accept edits on). Without it, Claude Code asks your permission for every file the copies write, which on a big run is hundreds of yes clicks. Accept-edits only covers files inside the folder you started in, and the skill keeps everything in .arena/.
Good: you get one progress line per round, then the winning headline, why it won, how many rounds it went, and the attacks it beat. Bad: a vague task gives you a vague winner. That's the task's fault, not the arena's: tighten the task and run it again.
Read the winner and the attacks it survived
The attacks are the part I love. They're a list of everything another copy tried to break, and how the winner held up. Read them like a checklist of what could go wrong with your ad before a customer finds it.
cd ~/arena-runs
python3 ~/.claude/skills/arena/bracket.py winner
python3 ~/.claude/skills/arena/bracket.py statuswinner prints the champion, its strategy card, where its answer is saved, and every match it won: the opponent, both scores, the judge's reason and the attacks it survived. status shows each round: how many were alive, how many got knocked out. Every run gets its own folder under .arena/, so older runs stay there.
Real use: when it's worth the usage
I'd save this for the stuff you're about to spend money on or send to a lot of people, where a better version is worth an hour of waiting. For an everyday question, one answer is fine. Start with --quick (16 copies) and only go to the full 100 when it really matters.
/arena --quick Write the first two sentences a roofing company owner says to camera in a 30-second Facebook video ad for storm inspections. Spoken, casual, no prices, no guarantees, no claims about other companies. The viewer is a homeowner who just had a storm. A great answer gets them to keep watching past three seconds./arena --quick Write a text message from a home-service company to a homeowner who asked for a quote a week ago and stopped answering. Under 300 characters, friendly, one clear question they can answer yes or no, no pressure, no discounts, includes how to stop getting texts. A great answer gets a reply./arena --quickThe third one is for right after Claude gives you an answer you don't like. With no task text, Arena uses your last request as the task and your rejected answer as the one to beat, and at the end it scores your old answer against the winner, blind. Leave off --quick and it's the full 100.
Want the same cards and the same bracket again? Add --seed and a number (for example --seed 7). Leave --wave at 10 unless you've raised Claude Code's limit on how many tools run at once.
What it costs
| Part | Plan | Price, as of 2026-10-31 |
|---|---|---|
| Arena skill | Open source, MIT license | Free |
| Python 3.8+, git | Open source | Free |
| Claude Code | Claude Pro | $20 a month billed monthly, or $17 a month billed yearly ($200 up front) |
| Claude Code | Claude Max (5x Pro's usage) | $100 a month |
| Claude Code | Claude Ultra (no 5-hour limit, 10x Pro's weekly usage) | $200 a month |
Where the real cost is: Arena itself is free, but every copy, every attack and every judge is a call to Claude, and on a subscription those calls come out of your plan's usage limits (a 5-hour limit and a weekly one, shared between Claude and Claude Code). Anthropic doesn't publish a fixed number of calls per plan; it depends on the model, how long the conversation is and how big the files are. So I can't promise you a 100-copy run fits in Pro. Run /usage in Claude Code before and after your 8-copy test, and you'll see what a run costs you.
If you hit a limit, Anthropic's options are: wait for the reset, turn on usage credits, or buy API credits at API rates. Saying no to the API credit prompt keeps you on your plan.
When it breaks
/arena isn't in the command menu
~/.claude/skills/arena/SKILL.md. If the skills folder didn't exist when your session started, type /reload-skills. If you installed the plugin, the command is /arena-skill:arena.python3: command not found, or a version under 3.8
python3 --version again. The skill can't keep score without it.It started a full 100-copy run when you only typed /arena
/arena --agents 8 ... or /arena --quick ....Hundreds of permission prompts
accept edits on before you start. It only covers the folder you started Claude in.You hit your usage limit in the middle of a run
.arena/. When your limit resets, start claude in the same folder (the one the run started in) and paste: Resume the arena run: run bracket.py status, then next, and keep going.It's slow
--quick for everyday stuff.The winner is generic or misses something you know
Your old answer scored higher than the winner
That's the arena
Instead of Claude's first answer, you get the one that survived every attack, with the attacks right there to read, and you know what the run costs before you start it.
Checked on Oct 31, 2026 against
Every claim about a third-party tool in this guide (plans, prices, menu paths, commands, limits) was checked against these official pages on Oct 31, 2026. These screens change often: if something looks different, trust the page over this guide.
- Arena skill on GitHubInstall (copy the folder or the plugin), requirements (Claude Code, Python 3.8+), flags (
--agents,--quick,--seed,--wave), the calls-per-size table, MIT license, and the caveats. - Arena: SKILL.mdHow a run goes: size in one line then start, the task file, waves, accept-edits suggestion, writes only in
.arena/, resume with status then next. - Arena: the judge's rubricCorrectness 30, completeness 25, robustness 20, specificity 15, clarity 10; the judge never sees the cards.
- Arena: bracket.py
plan(math only, writes nothing),winnerandstatusreports. - Claude Code: Advanced setupInstall command,
claude --version, and which accounts include Claude Code. - Claude Code: SkillsPersonal skills in
~/.claude/skills/, picked up without a restart,/reload-skills, plugin skills named/plugin-name:skill-name. - Claude Code: Permission modesShift+Tab to accept-edits mode, and that it covers only the working folder.
- Claude Code: Commands
/usageshows plan usage limits;/reload-skills. - Claude Help: Using Claude Code with your Pro or Max planLimits shared between Claude and Claude Code, and the options when you hit one.
- Claude: Plans and pricingPro $20 monthly or $17 yearly, Max $100, Ultra $200 a month; usage limits apply (checked 2026-10-31).
