AI Chess

The Best Lichess Bots To Play Against At 1000-1900

Most club players discover bots the same way: they lose three blitz games in a row, rage-quit the pool, and click “Play with the computer” for something safer. Then Level 3 hangs a rook on move 11 and Level 4 plays a 22-move king hunt that no human on earth would find. Neither game teaches anything. The problem isn’t that you picked the wrong level, it’s that the Lichess AI levels were never designed to imitate a person at your rating. They’re a full-strength engine with damage applied.

This page is about the bots that were designed for it, which ones to challenge at which rating, and how to squeeze a training plan out of the games afterwards. If you want the wider argument for why human-like sparring beats both the engine ladder and the blitz pool, the overview lives at Sparring Against Human-Like Bots At Your Rating. What follows goes narrower: specific accounts, specific settings, specific numbers.

Why Lichess Level 3 Is Not A 1400 Opponent

Lichess’s eight computer levels are Stockfish running under two restrictions: a Skill Level setting and a search depth cap. The configuration in lila (Lichess’s server code) has shifted over the years as Stockfish versions changed, but the shape has stayed the same:

Level   Skill Level   Depth cap    Feels roughly like
  1         -9            5        ~800
  2         -5            5        ~1100
  3         -1            5        ~1350
  4          3            5        ~1650
  5          7            5        ~1950
  6         11            8        ~2300
  7         16           13        ~2700
  8         20           22        3000+

Skill Level works by making the engine deliberately pick a worse move from its own list, weighted randomly. That produces a very particular failure mode: near-perfect play punctuated by moves that are randomly bad rather than humanly bad. Level 3 will defend a cramped position with computer accuracy for twenty moves and then drop a piece for no reason. You never get to practise the thing club games are actually decided by, which is a plausible-looking inaccuracy that you have to notice and punish.

There’s a second gap. The levels are symmetric in a way humans aren’t. A 1400 has characteristic weaknesses: loose pieces on the back rank, an aversion to giving up the bishop pair, a tendency to grab a pawn with the knight on b2. Stockfish at depth 5 has none of those. It has no opening repertoire, no habits, and nothing you can prepare against.

The Maia Family: What Each One Actually Is

Maia is a neural network from the Maia Chess project (a collaboration out of Toronto, Cornell and Microsoft Research) trained not to win but to predict the move a human of a given rating plays. Three of them run as bot accounts on Lichess:

BotTrained on games ratedMove-match accuracyBest sparring partner for
maia1~1100~51-53%1000-1350
maia5~1500~52-54%1350-1650
maia9~1900~50-52%1650-1900

That accuracy figure is the headline result and it’s worth sitting with. Given an arbitrary position from a real game, Maia plays the exact move a human of its target rating played about half the time. Stockfish at matched playing strength matches human moves closer to 35-40%. Maia isn’t stronger, it’s more recognisable.

Two caveats you’ll hit immediately. First, the Lichess blitz rating shown on maia1’s profile will look far too high, often 1600 to 1800 rather than 1100. That’s not a lie, it’s a different measurement: Maia plays instantly, so it never loses on time, never panics with 8 seconds left, and never blunders because it got distracted. Strip the clock out of chess and a 1100-style move-picker beats a lot of 1500s. Judge the bot by its move quality, not its rating badge.

Second, these bots evaluate a single node. There’s no search, no lookahead. Maia has excellent pattern intuition and essentially zero calculation, which means it will walk into three-move tactics that a real 1500 would spot, and it will occasionally find a positional move that a real 1500 would never consider. The texture is human. The failure points are slightly off-human.

Picking Your Bot By Rating Band

1000-1250. Challenge maia1 at 10+0 rapid. Not blitz. At this rating the bottleneck is almost never speed, it’s that you don’t see your opponent’s threat, and a 10-minute clock removes the excuse. Expect to lose the first several. maia1 doesn’t hang pieces the way your 1100-rated pool opponents do, so games last longer and you have to actually break something down.

1250-1500. Split your sessions. Half against maia1 where you should be winning consistently by now, half against maia5 where you won’t be. Watching the same position handled by both networks is the cheapest positional lesson available; more on that below.

1500-1700. maia5 at 15+10, plus Lichess Level 4 as a calculation stress test roughly once every five games. Level 4 is not human, but it is a hard, cheap check on whether your tactics hold up against something that doesn’t miss.

1700-1900. maia9 at 15+10 or 10+5. This is the band where Maia starts to feel genuinely uncomfortable: the bot plays the sort of solid, unambitious, structurally sound moves that 1900s actually play, and you have to generate winning chances against a position with no obvious holes. Add LeelaQueenOdds for a different kind of pain.

How To Actually Challenge One

Go to lichess.org/@/maia5, click the challenge icon (crossed swords) next to the username, set your time control and colour, send it. That’s it, no API, no setup.

Things that will trip you up: bots can be offline, in which case the challenge sits unanswered and you should check lichess.org/player/bots for who’s currently up. Bots also decline time controls they aren’t configured for, and Maia typically refuses correspondence. If a challenge bounces, try 10+0 before assuming the bot is broken.

One property worth exploiting: with a single node and no randomness, Maia is effectively deterministic. Play the same six moves twice and you’ll usually get the same six replies. Test it yourself on your next two games. If it holds, you can drill a specific opening line against a specific human-like response over and over, which no live opponent will ever let you do.

Worked Example: Reading The Report Afterwards

Play the game, then hit “Request a computer analysis” on the game page. Lichess runs Stockfish server-side and produces a summary that looks like this:

                        You      maia5
Inaccuracies              4          2
Mistakes                  3          1
Blunders                  1          0
Average centipawn loss   71         38

Here is the part most club players skip. Lichess doesn’t classify mistakes by raw centipawns, it converts the evaluation into a win percentage and flags the drop: roughly 10 points of win% lost is an inaccuracy, 20 a mistake, 30 a blunder. This matters enormously. Going from +7.0 to +4.5 is 250 centipawns and almost nothing in win%, so it won’t be flagged. Going from +0.3 to -0.4 is 70 centipawns and gets flagged as a mistake, because that’s the difference between pressing and defending. Chase the flagged moves, ignore the centipawn drops in already-decided positions.

Average centipawn loss is the other number to track, and the only honest use of it is against yourself over time. Rough bands in rapid: 1200 players land around 65-85, 1600 around 45-60, 1900 around 35-45. A single game’s ACPL is noise. A twenty-game rolling average that drops from 68 to 54 over two months is the most reliable improvement signal you have.

Now open the analysis board and click the gear on the engine panel. Set Multiple lines to 3. You now see the top three candidate moves with separate evaluations, which is the difference between “Stockfish says Nd5” and “Stockfish says Nd5 at +0.9, Rfe1 at +0.8, and everything else at +0.1.” The gap between line 1 and line 3 tells you whether the position had one solution or several, and only the one-solution positions are worth memorising.

Using Maia As A Second Engine

This is the trick almost nobody uses and it’s the real reason to care about Maia specifically.

Take a position you got wrong. Stockfish tells you the best move. That’s useful but incomplete, because the question you actually need answered is what will a person do here. Maia answers that question. If you can get Maia’s move for a position (the Maia team’s site at maiachess.com exposes this, and you can reconstruct it by challenging the bot and steering into the position), you get two outputs to compare:

  • Stockfish’s move at depth 30: the truth.
  • maia9’s move: what a 1900 plays.

When those agree, the position is a pattern you should own outright. When they diverge sharply, you’ve found a trap: a position where the natural club move is wrong. Those are worth ten times more study time than positions where intuition and truth line up, because they’re where rating points actually leak.

A concrete drill. Take ten positions from your own losses where you were roughly equal and then weren’t. For each, note Stockfish’s top three lines and whether maia5 or maia9 would have played any of them. The ones where no human-like move appears in the top three are the positions you should be memorising, not the ones where you simply miscalculated.

The Odds Bots: Leela With A Missing Queen

LeelaQueenOdds is a Leela Chess Zero network specifically trained to play without its queen from move one, against a full army. It’s not a normal engine handicapped; it’s a network that has learned how to generate practical chaos from a materially lost position.

For a 1000-1900 player this is the best attacking-defence trainer on the site, because you start up a queen and still have to survive. The bot plays aggressively, creates threats on every move, and punishes any passive consolidation. The lesson is trading: you are winning, so simplify, and the bot will spend the whole game making simplification look dangerous.

Related accounts in the same family include LeelaKnightOdds and LeelaRookOdds, tuned for stronger opponents, and there have been configurable piece-odds bots that let you request specific handicaps via the challenge. Start with queen odds at 10+0. If you’re winning comfortably above 70% of those, move to rook odds.

Trap Bots And Other Specialists

Boris-Trapsky plays opening traps and gambits deliberately. It’s a narrow tool: useless for improving your middlegame, excellent for one specific thing, which is learning not to be the person who falls for the same trap twice. Six games against it will teach you more about early-game vigilance than reading a trap list.

Beyond that, the bot list has dozens of hobby engines of wildly varying strength, most of which are just weak conventional engines and carry the same non-human texture as the Lichess AI levels. ToromBot, Eubos, halcyonbot and similar are fine curiosities, poor training partners. The Maia family and the odds bots are the ones with a coherent design goal behind them.

A Four-Week Sparring Block

Week one, calibrate. Twelve games at 10+0 against the Maia one rung below your band (maia1 if you’re 1400, maia5 if you’re 1800). Request analysis on all twelve. Record only your ACPL and blunder count in a text file. You’re establishing a baseline, not improving yet.

Week two: same bot, same time control, twelve more games, but add one rule. Any game where you were flagged for a blunder, replay that exact position from the analysis board and find the move you missed before moving on to the next game. Expect this to take twice as long as week one.

In week three, step up to your own band’s Maia and drop to eight games, because they’ll be harder and longer. Add four LeelaQueenOdds games as a separate session. Note which loss types repeat.

Week four is for the divergence drill: pull the twelve worst moments from the previous three weeks, run each with Multiple lines set to 3, and separate them into “I miscalculated” and “my instinct was wrong.” Only the second pile needs study.

Where Bots Stop Being Useful

Maia has no clock model. It plays its 1500-style move with 30 seconds left exactly as it does with 15 minutes, which means it will never teach you time management, and time management is a real chunk of your blitz rating. Cover that separately, against humans.

Deterministic play cuts both ways too. The repeatability that makes Maia a great drilling partner also means you can grind out a line that works against maia5 specifically and doesn’t generalise. If you find yourself scoring 80% with a single pet variation, that’s a signal to change openings rather than a signal you’ve improved.

Newer research has moved toward single models conditioned on a target rating rather than separate networks per band, so the specific accounts on this page will eventually be superseded. Check lichess.org/player/bots every few months and see what’s new at the top.

Tonight: open lichess.org/@/maia5, challenge it to 10+0, play one game, request the analysis, and set Multiple lines to 3 on the first move the report flags. That single position will tell you more than the next hour of blitz.