Install the free Arena skill, see what a run costs before you start, run a small test, then read the winner and every attack it survived.
Swipe or tap Next · checked on 2026-10-31
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.
Make the folder and start Claude in it
mkdir -p ~/arena-runs
cd ~/arena-runs
claudeThe setup prompt (copy all of it) · lines 1-3 of 18. Copy all copies the whole prompt; read it in full on the page.
Hi 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.Hi 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.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.
The skill only writes inside a .arena/ folder where you run it. If the winning answer would change files in your project, it asks you before applying anything. Applying it is your call.
Skip this if claude --version already prints a version. Claude Code needs a Pro, Max, Ultra, Team, Enterprise or Console account; the free plan doesn't include it.
Install Claude Code (macOS, Linux, WSL)
curl -fsSL https://claude.ai/install.sh | bash
# open a NEW terminal window, then:
claude --versionArena'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.
Both should print a version
git --version
python3 --versionA 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/skills folder before this session, type /reload-skills once.
Download and copy
git clone https://github.com/Jakeschincariol/arena-skill.git
mkdir -p ~/.claude/skills
cp -r arena-skill/skills/arena ~/.claude/skills/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:arena instead of /arena. Pick one way, not both.
Type these inside Claude Code
/plugin marketplace add Jakeschincariol/arena-skill
/plugin install arena-skill@arena-skillStart claude and type /ar. The command menu should list /arena. Don't press Enter on it yet: /arena on its own uses your last request as the task and starts a full 100-copy run.
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:
What a run costs, before you run it
python3 ~/.claude/skills/arena/bracket.py plan --agents 8
python3 ~/.claude/skills/arena/bracket.py plan --quick
python3 ~/.claude/skills/arena/bracket.py planFrom the Arena README (checked 2026-10-31). Each call gets bigger with a longer task, so the same count can cost more on a big job.
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.
Example (made up): type this inside Claude Code
/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./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.
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.
The full report for the last run
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.
It's the strongest answer this tournament found: the one that survived every match. It's still Claude's work, checked by Claude. Check every fact, price and claim yourself before it goes in an ad, on your site or to a customer.
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.
1. The opening lines of a video ad
/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 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.2. A follow-up text to a lead that went quiet
/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 --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.3. Beat an answer you already got
/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.
Checked 2026-10-31 on claude.com/pricing. Prices change: check before you buy.
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.
/arena isn't in the command menuCheck the folder landed at ~/.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.8Install a current Python from python.org, open a new terminal, and run python3 --version again. The skill can't keep score without it.
/arenaWith no flags it's 100, and with no task it uses your last request. Say stop: the run halts and can pick up later. Next time, type the size and the task: /arena --agents 8 ... or /arena --quick ....
Every copy writes a file, and the default mode asks about each one. Press Shift+Tab until it says accept edits on before you start. It only covers the folder you started Claude in.
The bracket is saved as it goes, in .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.
That's normal. Claude Code runs about 10 calls at once by default, so 100 copies is 70 waves one after another. Use --quick for everyday stuff.
The copies only know what's in the task: they can't see your chat. Put the facts, the reader, the length and what great looks like into the task text, then run it again.
It happens, and the skill tells you when it does. Keep the old one. That's still a useful answer: it held up against the best of the bracket.
The copies see only the task file Arena writes. That file, and every answer, stays on your computer in .arena/, so keep customer names, phone numbers and private details out of the task. To remove Arena, delete the ~/.claude/skills/arena folder (or uninstall the plugin in /plugin). To clear old runs, delete the .arena folder in your runs folder.
What each page backs up is listed at the end of the full guide.
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.
Want help setting this up? Receipts Group builds these systems.
Open the full guide as a page (every file in full, plus the table of contents).