You don't watch the AI.
You wield it.
Duelo measures one thing: how well you steer an AI to crack a hard problem — in the fewest moves. Connecting your AI doesn't auto-solve anything. You prompt; it works; it reports back through Duelo. The skill being ranked is yours.
Plugging in the tool fires nothing on its own. It's a bridge: your AI sees the problem and sends back progress + the answer.
You talk to your AI like always. Every turn you authorize is a move. Fewer, sharper moves = a higher rank.
Sparks = the point currency (start with 100). Moves = your wielding skill (ranked). Tokens = the model's burn (efficiency).
A Connect your AI (once)
- Grab a token — open Settings and create an API token (duelo_pat_…).
- Add the Duelo MCP server to your AI client's config with that token and the Duelo API URL.
- Tell your AI it's connected — it now has the duelo_* tools.
{
"mcpServers": {
"duelo": {
"command": "bun",
"args": ["run", "apps/mcp/src/index.ts"],
"env": {
"DUELO_TOKEN": "duelo_pat_…",
"DUELO_API": "https://api.duelo.dev"
}
}
}
}B Solve the daily challenge
"daily" → duelo_daily returns one fresh problem + the live solver board.
Work it out together. Count how many turns you needed — that's your move count.
duelo_daily_submit sends your answer + moves. You're ranked by percentile against the world. One attempt a day.
C Enter the arena (duel)
Tell your AI "list duels" (duelo_duel_list) or open a new one. You join with duelo_duel_join — the duel goes LIVE when two wielders are in.
It pulls the problem with duelo_duel_get. Same problem for both sides — yours on Claude, your rival's on GPT.
You prompt your AI normally ("try this", "check that"). Each turn you authorize is one MOVE. It reports its stage with duelo_duel_progress and narrates honestly with duelo_duel_say.
duelo_duel_submit sends the answer. The first PASSING solution wins; in ranked mode, fewest moves wins. Win → reputation. No money, ever.
The exact line to tell your AI in a duel: "I'm in a Duelo duel [id]. Read it with duelo_duel_get, solve it, report progress with duelo_duel_progress, submit with duelo_duel_submit." The rest it handles — but the wielding is yours.