nick_p12_bot checking…

After years of blitz games online, Nikhilesh decided to let his bot do the talking. nick_p12_bot is a Maia2 chess engine fine-tuned on 22,887 of his blitz games — playing his openings, his style. As white it heads for Queen's Gambit Declined and Open Catalan-like positions. As black it plays the Caro-Kann. Stockfish picks the move from a shortlist the network proposes, so the tactics don't collapse.

Most recent game Loading…

No games yet

Be the first to challenge. The embedded board will pick up your game in real time.

Avg opponent rating (last 100 rated blitz)
Overall
When winning
When drawing
When losing
Challenge me on Lichess

Rated game. Requires a free Lichess account (30-second signup).

or
Play anonymously in browser BETA

No account, no rating, no time limit. Same bot, served from the model directly.

Lichess blitz rating
Games
W · D · L

About the bot

nick_p12_bot is trained on Nikhilesh Prabhakar's games. Nikhilesh is an avid chess player with a peak USCF rating of 1850. Since his graduate life is in the foreground right now, he lets his bot do his chess bidding.

As white, the bot heads for Queen's Gambit Declined and Open Catalan-like positions. That's a different style from his gambit-heavy teenage self. He still likes aggression. The openings just funnel it into slowly outplaying the opponent instead of blowing the position open on move six. Against 1.e4 as black, the Caro-Kann is the answer roughly all of the time.

The bot is less creative than he is. But it has absorbed enough of his repertoire to play his openings consistently, and Stockfish keeps the tactics from collapsing. For the rest of his chess history, see the interests page of his main site.

Repertoire by frequency

Extracted directly from training data. These are the actual move-frequency distributions the bot inherits.

As white
  1. QGD / Catalan / Slav~9k
  2. 1.e4 lines~600
  3. otherscattered
As black vs 1.e4
  1. …c6 Caro~3.1k
  2. …c5 Sicilian~1.3k
  3. …d5 Scandi~390
  4. othermarginal

Recent games live from Lichess

  1. Fetching…

Accepted challenges

Rated

Strict. Only these:

  • 3+0blitz
  • 3+1blitz
  • 3+2blitz
  • 5+0blitz
  • 5+1blitz
Casual

Any time control within the blitz range above. Bullet, rapid, classical, and variants are auto-declined since the model wasn't trained for them.

Why these limits? The bot was fine-tuned on Nikhilesh's blitz games; longer time controls would let humans out-think it, shorter ones expose its lack of clock awareness.

How it works

1 Opening book

A 100,000-position book built from his games. Frequency-gated; positions reached in fewer than 10 games are skipped. Goes 30 plies deep in mainlines.

2 Maia2 policy

A 23M-parameter neural network fine-tuned on his moves. Top-1 move-prediction accuracy is 47%, up from 25% on the base Maia2.

3 Stockfish referee

Maia proposes its top 5 candidates, all already in his distribution. Stockfish evaluates each at adaptive depth 6–10, then a Maia-dominant softmax samples among them. Style intact, tactical blunders filtered.

4 Plays at human pace

A LightGBM quantile-regression model trained on his PGN clock data predicts how long he’d think on each position. The bot samples from that distribution and actually consumes that wall-clock time — recaptures blitzed, sharp positions get longer thinks. Calibrated to within 0.5pp on held-out games.

Known limitation

Bots trained this way (supervised move prediction over a single player's game history) still struggle in endgames. Once the board is reduced to a few pieces, the opening book no longer applies, the policy network has thin pattern coverage to draw from, and a shallow Stockfish lookup is not enough to convert won positions or defend lost ones reliably.

Two reasonable paths forward: wire in a Syzygy tablebase for positions with seven or fewer pieces, and replace the fixed-depth Stockfish filter with a proper MCTS that uses Maia as the policy prior. v2 territory.