Free guide · from the reel

Make 100 Claudes fight for the best answer.

Arena is a free Claude Code skill. You give it one task. It hands that exact task to 100 sub-agents, each with a different strategy. They attack each other's answers, defend and fix their own, and a judge knocks one out every match. You get the one that survives.

✦ Free · open source (MIT)⭐ 699 stars on GitHub📋 1 paste to install

How it works

Use it when Claude's answer isn't good enough. Instead of asking again and again, you run a tournament.

1.One task, 100 sub-agentsEvery sub-agent gets the exact same task, word for word.
2.A different strategy card eachA way of reasoning, a workflow and a strategy, like "Contrarian · Options matrix · Speed". 2,160 possible cards, no repeats.
3.They pair off and fightEach attacks the other's answer (FATAL, MAJOR or MINOR), then defends and fixes its own.
4.A judge scores bothOn a written rubric: correctness 30, completeness 25, robustness 20, specificity 15, clarity 10. The loser is out.
1005025137421

Agents left after each round of the default 100-agent arena. You get the winning answer, the attacks it survived and the number of rounds.

What you need

💻Claude Code In the Claude desktop app (Code tab) or a terminal. Arena needs Claude Code because it spins up sub-agents. claude.com
🐍Python 3.8 or newer freeArena's bracket tool is plain Python. Nothing to pip install. python.org
⚔️The Arena skill free · MITBy Jakeschincariol on GitHub. You install it in step 1. GitHub

The steps

Install once. After that it's one command whenever an answer isn't good enough.

1

Install the skill

Once · paste into Claude Code

Open Claude Code and paste this. It's the exact install message from the Arena README:

Paste into Claudehttps://github.com/Jakeschincariol/arena-skill Install this skill, then confirm /arena works.
The Install section of the Arena README: paste the GitHub link into Claude and ask it to install the skill

The install section on github.com/Jakeschincariol/arena-skill.

Prefer doing it yourself? In a terminal:

Or copy the foldergit clone https://github.com/Jakeschincariol/arena-skill.git cp -r arena-skill/skills/arena ~/.claude/skills/
2

Turn on accept-edits

Before each run · Shift+Tab

Every sub-agent writes its answer to a file inside a .arena/ folder. In the default permission mode, that's one approval per file, which is hundreds on a big run.

💡Press Shift+Tab in Claude Code to switch to accept-edits mode before you start. Arena never edits your project files. The winning answer comes back to you, and using it is your call.
3

Run it

/arena · --quick · --agents N

Start with quick mode. It's 16 agents instead of 100, and it's what I used for the real run below.

Everyday · 16 agents/arena --quick [your task, e.g. write the headline for our pricing page]
The full arena · 100 agents/arena [your task]
Pick the size/arena --agents 32 [your task]
💡Just got a bad answer? Type /arena --quick with no task. It takes your last request as the task and the answer you didn't like as the one to beat, then tells you honestly if the old answer scores higher.
4

Write a task that stands on its own

The step that decides the result

The sub-agents can't see your chat. All they know is the task, so a vague task gets 100 kinds of vague back. Put the audience, length, tone and "what done looks like" in the task itself. This prompt helps:

Sharpen the task firstBefore we run /arena, rewrite my task so a stranger could do it without seeing this chat: who it's for, the goal, length and format, tone, what must not change, and what a great result looks like. Ask me up to 3 questions if something is missing. My task: [task]

I ran it for real

Everything in the reel comes from this run: the strategy cards, the attacks, the scores and the winning email.

The task: "Write a cold email to land my first client. I build websites for local restaurants." I ran /arena --quick, and also gave it a plain one-shot Claude answer to beat.

16agents
4rounds
92sub-agent calls
91–61vs plain Claude

Three of the cards that were dealt:

Agent 14 · the winner
Constraint first · Research, then synthesise · Completeness
Agent 6 · the finalist
Expert panel · Research, then synthesise · User empathy first
Agent 7
Contrarian · Options matrix · Speed

The final went 87–82. In a blind check, the winner beat the plain one-shot answer 91–61. The judge noted that the plain answer asked for a portfolio link a first-timer doesn't have, promised online booking a website can't create, and left out the legal footer and opt-out. A few of the attacks the winner survived:

No fake "book online" promiseOpt-out + legal footerFollow-ups on day 7 & 21No unsourced stats
The winning email from the arena run, shown in the reel

The winning email (the filled example from the champion's answer). Fill in your own details:

Winning email · exampleSubject: Nonna Rosa's website: menu on mobile Hi Marco, Had the cacio e pepe last Friday. It was excellent. I opened Nonna Rosa's website on my phone and the menu is a PDF I had to pinch and zoom to read. The menu is usually the first thing people look for, and a hard-to-read one can lose someone who's deciding where to eat tonight. I build websites for local restaurants. They load fast on a phone, with the menu, hours, photos and a Book button right on the first screen. I'm taking on my first clients now, so you'd get my full attention and a founding-client price. Can I mock up a new homepage for Nonna Rosa so you can see what it would look like on your phone? It's free and there's no obligation. You'd have it within 48 hours. Should I make it? A one-word reply is fine. Sam Carter Restaurant websites · Portland (503) 555-0142 PO Box 1234, Portland, OR 97201 If you'd rather not hear from me, reply "no" and I won't email again.

Only offer "a Book button" if the restaurant already takes online reservations. Otherwise say "tap-to-call and directions". The winning answer flagged that a website can't create a booking system on its own. The name, phone and address in the example are placeholders.

What it costs

The skill is free. The tokens are yours, and 100 agents is a lot of them. These numbers are from the Arena README:

AgentsRoundsSub-agent calls
100 (default)7595
646379
325187
16 (--quick)491
8343
💡Use --quick for everyday things and save the full 100 for the answer that really matters. Claude Code runs about 10 sub-agents at a time, so a full arena runs in waves and takes a while.

Good to know

🧠It's 100 copies of your model, not 100 modelsWhat makes them different is the strategy card each one gets.
⚖️The judges are Claude tooYou get the strongest answer this tournament found, not a proof that it's right. That's why it shows you the attacks it survived.
📝It doesn't fix a bad taskVague task in, 100 flavours of vague out. Step 4 matters.
🔒It never touches your projectEverything is written inside .arena/. Code changes come back as a diff, and Claude asks before applying them.

If something goes wrong

Hundreds of permission promptsPress Shift+Tab to switch Claude Code to accept-edits mode before you run it.
/arena isn't foundInstalled as a plugin, it's /arena-skill:arena. Copy the folder to ~/.claude/skills/ if you want plain /arena, then start a new session.
"python3: command not found"Install Python 3.8 or newer from python.org, open a new terminal and try again.
It's slow or uses too muchUse --quick (16 agents) or --agents 8. A full 100-agent run is 595 sub-agent calls.
The winner still misses somethingThe sub-agents only know the task file. Add the missing requirement to your task and run it again.
🙌The Arena skill is by Jakeschincariol (MIT). Claude and Claude Code are by Anthropic.

This is what I do. Check out my work.

I make content, websites and AI tools for brands, with the same kind of AI tools you just saw.

See my portfolio →
Got a project in mind? paulino@trigonagency.com