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.
No games yet
Be the first to challenge. The embedded board will pick up your game in real time.
Rated game. Requires a free Lichess account (30-second signup).
No account, no rating, no time limit. Same bot, served from the model directly.
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
- QGD / Catalan / Slav~9k
- 1.e4 lines~600
- otherscattered
As black vs 1.e4
- …c6 Caro~3.1k
- …c5 Sicilian~1.3k
- …d5 Scandi~390
- othermarginal
Recent games live from Lichess
- 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.