Picochess - The first game between Opus 5 AI and Stockfish?

125 views
Skip to first unread message

Johan Sjöblom

unread,
Oct 11, 2026, 7:17:10 AMOct 11
to PicoChess
Hello all.

Having an MCP server means several things. One thing it makes possible is to let any of the new AI models play against any engine you have in Picochess. As expected they d'ont play chess very well. But they can reason about their game and about their loss.

I asked Claudes Opus 5 model to play against Stockfish. As expected Opus lost, and both on time and in the game. It reasoned after the game (as you can read below) that it missed the double check on e2.

And it also commented that we have a small header bug. I changed from Stockfish 2200 to max elo just before it started to play and the new elo does not show until you make the first move, in this case e4.

Here is Opus comments it made while playing the game:

Engine confirmed: Stockfish 19 at Elo 3190, 5+3 blitz. I'm White. Playing 1.e4.

  Called picochess 7 times

6...Qxd4 regains the pawn and hits e5. I'll defend it and develop: 7.Qe2.

  Called picochess 5 times

I missed that — 10...Qxe5 both escapes the bishop and grabs the pawn. I'm a pawn down. Gaining time on the queen:

  Called picochess 2 times

Material check: my 6.Nxd4 actually dropped a knight for a pawn — 6...Qxd4 down the open d-file. I'm a full piece down. Playing on and making it as awkward as I can. First, breaking the pin on c3:

  Called picochess 7 times

Double check — only one legal move.

  Called picochess 2 times

I dropped the bishop there — the double check meant I couldn't recapture on e2. I'm two minors down now, but let's play it out.

  Called picochess 5 times

Black's 22...Bxe4 sets a trap — 23.dxe4?? Qxd2 and nothing recaptures. Instead:

  Called picochess 5 times

Black threatens 27...Qxh2# (the knight on f1 covers h2). Forced:

  Searched for 2 patterns, listed 1 directory, called picochess 5 times, ran 1 shell command

Checkmated in 30. Final result 0-1.

1.e4 c5 2.Nf3 e6 3.c3 d5 4.e5 d4 5.cxd4 cxd4 6.Nxd4?? Qxd4 7.Qe2 Nc6
8.Nc3 Nh6 9.d3 Bd7 10.Be3 Qxe5 11.f4 Qa5 12.Bd2 Nd4 13.Qd1 Be7 14.Be2 Qb6
15.Rb1 Bc6 16.Ne4 O-O 17.O-O Nxe2+ 18.Kh1 Nd4 19.Bc3 Nhf5 20.Qd2 Rfc8
21.Bxd4 Qxd4 22.b3 Bxe4 23.Qe2 Bxd3 24.Qd1 Ne3 25.Qe1 Nxf1 26.Rd1 Qxf4
27.Qxf1 Bxf1 28.Rd7 Qf2 29.Rd8+ Bxd8 30.h3 Qxg2# 0-1

How I lost it, honestly:

- 6.Nxd4?? — the actual loss. I checked that the d4 pawn was undefended but forgot the queen looks straight down the open d-file. A knight for a pawn on move 6. The Watcher scored it exactly: ?? , 700 cp.
- 10.Be3 — I thought I was gaining a tempo on the queen; 10...Qxe5 both stepped off the attack and took the pawn.
- 17.O-O — I calculated 17...Nxe2+ 18.Kh1 Nxc3 19.bxc3 as an even trade, missing that it was a double check (the knight on e2 also hits g1), so I never got to recapture. A second clean piece.
- After that it was damage control. 25.Qe1 (?? , 432 cp) was the only move keeping f1 defended, but Black was winning regardless.

The Watcher's verdict on the whole game matches: two ??, one ?, and a string of inaccuracies — the blunders were mine, not bad luck.

On the server side, everything behaved:

- Opening recognised as B40a Sicilian: 2...e6.
- Tutor ratings populated move by move, with centipawn losses and the better move.
- Checkmate detected on the engine's reply, status went straight to game over (0-1), result recorded as 0-1.
- games/last_game.pgn auto-saved with [Result "0-1"], [BlackElo "3190"] and the full movetext including the Tutor sidelines.

One cosmetic thing worth noting: before the first move, get_game's PGN header showed [BlackElo "2200"] while get_engine already reported Elo 3190. It corrected itself to 3190 after 1.e4, so the header is just written before the engine level is applied at new-game time.

Johan Sjöblom

unread,
Oct 11, 2026, 7:18:41 AMOct 11
to PicoChess
Oh, and the last_game.pgn here renamed to Opus vs Stockfish. The game was saved by Picochess.
Opus5-Stockfish-1st-game.pgn

Dirk

unread,
Oct 11, 2026, 8:00:03 AMOct 11
to PicoChess
Ah very cool.

I had an idea for a possible future PicoChess feature that I think could be quite fun: AI-generated chess commentary.

The idea would not be to let an LLM analyse the chess position by itself. That would probably not be very useful anyway. Instead, PicoChess could provide the AI with reliable chess information that we already have calculated by our Tutor, for example:

  • the moves played so far

  • the current position

  • Stockfish evaluation before and after a move

  • the principal variation

  • perhaps information about blunders, missed opportunities, tactical shots or unusually strong moves

The AI would then mainly have one job: turn this information into a natural-language commentary.

For example:

“Ouch. That last move suddenly changed the evaluation from roughly equal to clearly better for Black. White seems to have overlooked the tactical idea on the kingside.”

Or, with a different commentary style:

“And there it is! White has just opened the door, rolled out the red carpet and politely invited the black rook in.” :-)

It could perhaps offer different personalities or styles, such as:

Coach – helpful and instructional
Commentator – like a live chess broadcast
Friendly opponent – relaxed and conversational
Humorous – slightly cheeky comments when something goes badly wrong

What makes this especially interesting now is that PicoChess can run not only on Raspberry Pi, but also on Windows, macOS and Linux.

That opens several possibilities (Ollama!?):

  • completely local LLMs for people who want to stay offline

  • small local models even on a Raspberry Pi 5 (eg. gemma3:4b)

  • larger and faster local models on modern PCs and Macs

  • free online AI services

  • optional paid services such as OpenAI or others, if a user enters their own API/account details in the settings

On a Raspberry Pi, real-time commentary after every move might still be too slow depending on the model. In that case, generating a nice post-game summary and analysis would already be very interesting.

On faster machines, however, I could imagine the AI commenting on important moments during the game and perhaps even complementing PicoTutor.

I think the nice thing about this approach is that the LLM would not need to be a chess expert. Stockfish would still provide the chess knowledge. The language model would simply act as the “voice” that explains what happened in an entertaining or educational way.

No idea how difficult this would be to integrate, and certainly not something that needs to happen tomorrow. :-) But with the recent PicoChess developments and the availability of increasingly capable local models, I thought it might be a fun idea to throw into the PicoChess family discussion.D

Dirk


waldomiro dias machado junior

unread,
Oct 11, 2026, 8:48:33 AMOct 11
to pico...@googlegroups.com
Hello,

I own a ChessUp 2, and when I play against the bots (Stockfish), the display shows—for every move I make—whether it’s from the opening book, or if it’s a good move, an excellent move, or a blunder; I think that feature is amazing! 

I don't know if this could be implemented in PicoChess or if you'd find it interesting, but I love it! It’s worth noting that this feedback is provided by Stockfish in real-time, not after the game ends. 

The feeling of making good or great moves is really stimulating!

Waldomiro 
--
You received this message because you are subscribed to the Google Groups "PicoChess" group.
To unsubscribe from this group and stop receiving emails from it, send an email to picochess+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/picochess/f1343e07-059e-4ddb-8843-a5d12374c722n%40googlegroups.com.
Screenshot_20261011_094634_WhatsApp.jpg

waldomiro dias machado junior

unread,
Oct 11, 2026, 9:06:30 AMOct 11
to pico...@googlegroups.com

Hello again. 

Please also comment if there was any inaccuracy.

Waldomiro 

Johan Sjöblom

unread,
Oct 11, 2026, 9:25:42 AMOct 11
to PicoChess
Nice idea Dirk. Thats exactly what an LLM is good at, to make comments. I think you can already do this now. The MCP is a generic AI integration protocol. Its just a matter of setting up the system.

A possible current limitation is that its not easy to use an LLM from a remote machine like a web client or ssh can be used. I cannot for instance use an AI on my phone and connect it to my computer MCP. At least not with openai, I tested their tunnel system but it requires an expensive pro license to work. Claude might be easier on this as openai favors the tunneling and cloud systems.

You can run the MCP server on a laptop or PC, and configure the mcp to talk to a remote picochess. Should be very easy because it uses the web client interface to ”talk” to the picochess server. Getting it to follow your game is probably a simple matter of asking (prompting) it to do so.

And Waldomiro, when you play against an engine in picochess, have a look at the watcher window tab in the web client while you play. It will inform you during the game of blunders and inaccuracies.

To unsubscribe from this group and stop receiving emails from it, send an email to picochess+...@googlegroups.com.

Johan Sjöblom

unread,
Oct 11, 2026, 9:42:54 AMOct 11
to PicoChess
Dirk (and DJ Dekker): Here is the configuration info you need.
The MCP server runs on the same computer as your AI client (for example Claude Code or Claude Desktop), which starts it automatically. That computer can be any machine on your LAN. Set the environment variable PICOCHESS_URL to your PicoChess address including the port, e.g. http://192.168.1.50:8080, in the MCP server's configuration, then restart the AI client. Without it, the server uses http://localhost:8080.
So Dirk, you can already test your idea.

Following the game automatically move by move depends on the client: Claude Code can do it with a background polling script, while chat-style clients only look when you ask. The simplest start is to just ask during the game, by voice if your AI client supports it, about the position, the evaluation, a hint or how your moves were rated.

PS. One limitation for now: listing, saving and loading games read the games folder on the local computer, so they don't work yet when PicoChess runs on another machine. But that is not so importand DS.

Johan Sjöblom

unread,
Oct 11, 2026, 10:09:57 AMOct 11
to PicoChess
I am testing it myself. I asked how I am doing in the game and heres the text answer from Claude:

You’re holding your own nicely. After 12 moves the position is roughly equal, with PicoTutor’s evaluation at +0.11 in your favour (depth 20), so about a tenth of a pawn better for White. That’s a solid result against Lc0 at 2400+.

The game so far: You’re White in a Closed Spanish, the Anti-Marshall line with 8.a4 b4. The moves were 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 b4 9.d4 d6 10.h3 exd4 11.Nxd4 Nxd4 12.Qxd4 c5. The Watcher hasn’t flagged any of your moves as inaccuracies, so your play has been clean so far.

Where things stand: It’s your move. The engine’s last move, 12...c5, attacks your queen on d4, so you’ll need to decide where to put her. Your bishop on b3 is aiming nicely at f7. Black’s b4 pawn is a bit advanced, and with your pawn on a4 it could become a target later.

Would you like a hint for the queen move, or would you rather work it out yourself?


Dirk

unread,
Oct 11, 2026, 10:35:29 AMOct 11
to pico...@googlegroups.com
Really nice - if small local models are capable of similar comments we could built an interface in the future for Pico-Tutor, something like  tutor output -> PROMPT for a (local or free/paid online) LLM -> comment for whole game or current position so that anyone could use such a feature without a paid subscription.

But I guess for real meaningful comments the big ones are needed!?

Johan Sjöblom

unread,
Oct 11, 2026, 10:51:56 AMOct 11
to PicoChess
I guess we have to test and learn :-)

The picochess only needs one MCP server, and that gives an LLM model access to the tutor as well, so it already has that access :-) If it needs more we can add more "tools" to the same MCP server, but we only need one MCP server I believe.
The current MCP server can also get engine analysis in analysis mode... So in the middle of the game you can ask the AI to switch to analysis mode, and then do whatever on the eboard and ask for more analysis from the chosen engine, and then when you want to return to the game you ask the AI to return to the normal mode game and picochess voice will guide you to set up the eboard.

I guess we could simply try a local model, but I would first try it on a Linux Debian laptop or PC... and if it works there then check if Pi is capable enough.

We are on bleeding edge with AI use right now. I just tested Claude desktop and for the full two-way voice at the same time as a MCP picochess connector it does not stay stable (just like the current documentation warns). I troubleshooted it using Claude CLI and can confirm its not yet stable enough... But it will become, and its quite a nice interface to have access to a AI without looking at any screens when playing on a DGT eboard.

What works is that I can dictate my question using the microphone and get text answers back like in the previous post.

// Johan

waldomiro dias machado junior

unread,
Oct 11, 2026, 11:15:03 AMOct 11
to pico...@googlegroups.com
Hello Johan, 

Thank you very much for your reply. In my humble opinion, Picochess is missing a multilingual instruction manual; there are so many functions and features!

I still haven't figured out how the Tutor and Observation functions work—please forgive my lack of understanding. 

Tomorrow I’ll try to find what you mentioned; I hope I succeed. 

Waldomiro
To unsubscribe from this group and stop receiving emails from it, send an email to picochess+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/picochess/c5d4ac1f-a808-4646-8c45-7f962a7df423n%40googlegroups.com.

Johan Sjöblom

unread,
Oct 11, 2026, 11:22:48 AMOct 11
to PicoChess
Yes I agree, we have not yet documented the Watcher and new analysis functions. I think Andrea has started.

AND when you test picochess the online manual should be multi-lingual. You can open it from the menu. Its not yet in a good format… but its a start. The intention is that we have a full multi-lingual manual


Andrea Gatti

unread,
Oct 15, 2026, 3:22:32 PMOct 15
to PicoChess
Congratulations, this is another great achievement!

Am I wrong saying that this could bring us a step closer to the idea of having an UCI wrapper, that enables Picochess' engines to be used by other chess GUIs, for example on a Windows machine?

I'm thinking about Arena or ChessBase. I'm under the impression that Johan, you already had this in the works?

Johan Sjöblom

unread,
Oct 16, 2026, 1:08:31 PMOct 16
to PicoChess
The MCP is another type of protocol, so its not directly related to emulating the uci protocol. It allows us to use an AI as the picochess menu, or to use an AI to test all features in picochess. Claude code can now easily test on his own whatever you tell him to test. You can use any AI to test.

And yes, I am still analysing how to do the uci protocol where the entire picochess becomes an uci engine where one uci option would be to select the engine itself. Arena could then execute a tournament using all picochess installed engines! I think its more important to allow engine selection and game play than to implement the full analysis uci interface. I would implement the following uci commands:

uci, isready, setoption, ucinewgame, position, go, stop, quit, uciok, readyok, id, option, info, bestmove

But first I need to go through all existing PRs…. They all need careful testing..

Reply all
Reply to author
Forward
0 new messages