Picochess on Windows

314 views
Skip to first unread message

Johan Sjöblom

unread,
Sep 18, 2026, 12:11:51 PMSep 18
to PicoChess
Hi.

Some Friday fun stuff I did. I created a branch named 471-port-to-windows
I can now play Picochess on my windows machine.

I cloned the repo to my windows machine, and also install Python 3.13.5 (do not install the latest 3.14.x). I created a .venv environment with this command:
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt

In the cloned repo I created a local directory engines\AMD64 and placed a downloaded stockfish.exe there (version 19)

I also needed to add a minimum uci file to get it going (attached), and a minimum engines.ini file. The attached files I also placed in engines\AMD64

Obviously there are restrictions at this point. The bluetooth communication does not work so I cannot use my DGT board.

I started the program using this command:
.\.venv\Scripts\python.exe picochess.py


// Johan
stockfish.exe.uci
engines.ini

Johan Sjöblom

unread,
Sep 18, 2026, 2:27:45 PMSep 18
to PicoChess
And (in theory) on Mac mini. Unfortunately I do not have any Mac mini hardware so I cannot test it. Its any MAC with arm64.
If someone has any of these hardware you could test:
  • Mac mini
  • MacBook Air and Pro
  • iMac
  • Mac Studio
  • Mac Pro
This experimental branch 471-port-to-windows is not intended for intel based MAC.
See the README.md file in engines folder of the repository in this branch for documentation.

Some more information about this experimental branch. The following does not work:
  • Authenticated PGN upload using Linux PAM
  • PicoChess and engine updates
  • System shutdown and reboot
  • Wi-Fi onboarding, hotspot control, and nmcli functions
  • Bluetooth pairing, repair, and reconnect scripts
  • Bluetooth eboards that depend on Linux-only bluepy
  • DGT Bluetooth through Linux bluetoothctl/RFCOMM
  • DGT Pi clock hardware and Raspberry Pi-specific libraries
  • systemd installation, service control, and automatic startup
  • kiosk management
  • MAME artwork/window switching through X11 or Wayland tools
  • System audio-volume adjustment through ALSA or PipeWire
  • Linux-specific internal-IP detection through the ip command
  • Opening books tab
  • Games tab

These may work but require actual Mac/Windows testing:

  • Native audio playback through sounddevice and CoreAudio
  • USB serial chessboards, especially automatic /dev/cu.* discovery
  • PGN saving, loading, and downloading
  • Browser speech
  • Tutor and analysis functions beyond basic startup
  • Application exit and graceful cleanup

The intended support in this experiment is more or less just the main use cases that work out of the box:

  • Python virtual environment
  • native engines (for MAC/Windows)
  • board-type = noeboard
  • Tornado web interface on port 8080
  • Playing a game against the local engine
  • Local Stockfish-based Tutor processes

// Johan

Luigi Vogliobene

unread,
Sep 19, 2026, 4:44:01 AMSep 19
to PicoChess
Hi Johann,

I tried to run picochess on a windows arm64 machine (iMac Apple Silicon M40 w/ Parallels Desktop)
but I get this :

PS C:\Users\luigi\picochess> .\.venv\Scripts\python.exe picochess.py
Traceback (most recent call last):
  File "C:\Users\luigi\picochess\picochess.py", line 40, in <module>
    import chess.pgn
ModuleNotFoundError: No module named 'chess'

Thank you.

Luigi

Johan Sjöblom

unread,
Sep 19, 2026, 5:24:56 AMSep 19
to pico...@googlegroups.com
That was because I forgot to inform that you also need to run this command. This command will install all the necessary python libraries in your venv environment which I assume is in the folder .venv

So run this, and then retry the start of picochess


.\.venv\Scripts\python.exe -m pip install -r requirements.txt
--
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+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/picochess/cb244d8d-b7a7-44d4-8913-df1f138836d6n%40googlegroups.com.

Johan Sjöblom

unread,
Sep 20, 2026, 1:54:22 AMSep 20
to PicoChess
If you do a git pull in this branch, or checkout this branch you will now get a windows install script to use:
install-picochess-windows.ps1
And its located in the picochess root folder.

Simple instructions:
  To install PicoChess on Windows, first install 64-bit Python 3.13 and Git for Windows. Download or clone PicoChess, open PowerShell in the PicoChess folder, and run:
     Set-ExecutionPolicy -Scope Process Bypass
     .\install-picochess-windows.ps1 
That first command to Set-ExecutionPolicy is only needed if your Windows reports that install-picochess-windows.ps1 “cannot be loaded because running scripts is disabled.”
For windows help with this command use the windows normal help command to see what parameters are available:
     Get-Help .\install-picochess-windows.ps1

The installer does not require administrator rights. It installs the Python libraries, opening books, and game data, but you must add a Windows chess engine separately, see engines\README.md.  

For you Luigi, or anyone who already cloned the repo on their windows machine, you can simpley do:
     git pull
     .\install-picochess-windows.ps1

// Johan

Luigi Vogliobene

unread,
Sep 20, 2026, 4:34:22 AMSep 20
to PicoChess
Hi Johann,

thank you for your reply.

I got the attached error trying to execute picochess on a windows system.

Luigi

Screenshot 2026-09-20 103221.png

Johan Sjöblom

unread,
Sep 20, 2026, 6:07:07 AMSep 20
to pico...@googlegroups.com
As you are running windows on ARM it seems you need to have a Python version  3.11, 3.12, 3.13, or 3.14, but not 3.15. This is because of the numpy library.

This Python version needs to create the venv, so remove the .venv and recreate it after switching to on of the above Python versions.

Check the Python version using this:
.\.venv\Scripts\python.exe --version



Johan Sjöblom

unread,
Sep 20, 2026, 7:53:15 AMSep 20
to pico...@googlegroups.com
After checking more libraries, I recommen one of the following Python version for Windows:

Python 3.11 – 3.13

Johan Sjöblom

unread,
Sep 20, 2026, 10:20:49 AMSep 20
to PicoChess
I am using python 3.13.15 and now with the latest branch update I have both books and games tab working.
For games tab to work you need to install Scid vs. PC on your windows machine and make sure that its bin folder is in your path.
The Scid vs. PC can be found on: https://scidvspc.sourceforge.net/
Its the same that is used on Pi and Linux... there tcscid is installed under gamesdb folder, in Windows you need to install it and make sure its in the path.

// Johan

Johan Sjöblom

unread,
Sep 20, 2026, 11:05:59 AMSep 20
to PicoChess
And of course I can play against my Fritz 19....  on Windows, using Picochess.
I just added this to my engine.ini file...

[Fritz19AVX2.exe]
name = Fritz 19
small = Fritz
medium = Fritz 19
large = Fritz 19
elo = 3645

Johan Sjöblom

unread,
Sep 20, 2026, 1:05:14 PMSep 20
to pico...@googlegroups.com
And Yes, I can connect my DGT eboard on Bluetooth and play, I just added dgt-port=COM6 (can be 5, 6, 7...)

Windows port works!

Message has been deleted
Message has been deleted

Luigi Vogliobene

unread,
Sep 21, 2026, 5:00:48 AMSep 21
to PicoChess
Hi Johann,

I installed the Python version 3.12 but now I got the attached error running this command :

.\.venv\Scripts\python.exe -m pip install -r requirements.txt 

Thank you.

Luigi
Nuovo Documento di testo.txt

Johan Sjöblom

unread,
Sep 21, 2026, 11:33:53 AMSep 21
to PicoChess
Hi Luigi.

Keep working, eventually it will work :-) We are learning as we are the first ones to run on Windows.

It seems we need the correct architecture of Python! You have a special setup with Windows on an ARM machine.
You installed the ARM64 version of Python. Please install Python 3.11, 3.12, or 3.13 – Windows installer (64-bit). Do not select the ARM64 installer.

I updated the installer to give a warning, you can do a "git pull" if you want, but not necessary for this fix. The fix I made will help others and warn them if Python version is wrong.

After installing the Python for windows 64bit (not arm) do:

1. open PowerShell in the PicoChess folder and first remove the ".venv" folder.

Remove-Item -Recurse -Force .venv
or
rmdir /s /q .venv

2. Then re-run the installer
.\install-picochess-windows.ps1 -RecreateVenv

The installer will create a new environment named venv. It will automatically run pip inside this environment, so you do not need to run the pip command yourself.


// Johan


NOTE: The venv folder does not have a dot any more. Its just "venv". So if you would to run the pip yourself (you dont have to, the installer will run it) the command would be:

.\venv\Scripts\python.exe -m pip install -r requirements.txt     <--- Notice that one dot is removed from the folder name, its not ".venv" its "venv" now.



Johan Sjöblom

unread,
Sep 22, 2026, 11:34:01 AMSep 22
to PicoChess
You can download a Windows installer (.net 10, C# code) from here: https://github.com/JohanSjoblom/picochess/releases/tag/v4.3.5
This is for brave testers, comments are welcome
// Johan

Dirk

unread,
Sep 22, 2026, 11:40:09 AMSep 22
to pico...@googlegroups.com, PicoChess
Thanks Johan,

is there also an installer script for the Mac?

Dirk

Am 22.09.2026 um 17:34 schrieb Johan Sjöblom <messi...@gmail.com>:



Johan Sjöblom

unread,
Sep 22, 2026, 11:59:33 AMSep 22
to PicoChess
It was on my todo list :-) We are still being creative ... and perhaps a little bit crazy ;-)

... Even when using these installers they still dont do any picochess.ini file, or download any example engines. So any brave testers here would need to create their own picochess.ini, and populate the engines folder under engines\AMD64 for windows and engines/arm64 folder for MAC OS on arm.

In windows you still need this start command. The windows installer (first version) does not make any bookmarks.
powershell.exe -NoProfile -ExecutionPolicy Bypass `
  -File "$env:USERPROFILE\PicoChess\start-picochess-windows.ps1"

I have now added the first MAC install script. Do a new git pull or checkout the branch 471-port-to-windows. See PR: https://github.com/JohanSjoblom/picochess/pull/472
If you fix something you can commit it, or just report whats broken. I have no MAC hardware to use to test it on. On MAC start it using something like:
cd "$HOME/PicoChess"
./venv/bin/python picochess.py

and MAC picochess ini should be something like
engine = engines/arm64/stockfish
engine-level = Elo@2200
tutor-engine = engines/arm64/stockfish
board-type = noeboard
web-server = 8080
theme = dark
book = books/h-varied.bin

The installers should download the books and gamesdb folders.... On MAC I would assume the games tab would not work, but openings tab should.

Happy and brave testing... Let me know what happens! This is still quite experimental.

// Johan

Dirk

unread,
Sep 22, 2026, 12:09:08 PMSep 22
to pico...@googlegroups.com, PicoChess
Incredible - thanks Johan.

At the moment I only have an intel Mac but this will change hopefully soon ;-)

Dirk



Am 22.09.2026 um 17:59 schrieb Johan Sjöblom <messi...@gmail.com>:

It was on my todo list :-) We are still being creative ... and perhaps a little bit crazy ;-)

Johan Sjöblom

unread,
Sep 22, 2026, 12:21:51 PMSep 22
to PicoChess
First I am sure we will find out what python libraries are challengine when doing pip install requirements.txt.
Secondly, I can easily create support for MAC intel as well, but first we need to say how to deal with the engines folder:
- Linux reports x86_64 from the platform.machine() call in Python, and MAC intel reports exactly the same.

Our architecture challenge is that our engine libraries are only based on operating system, they should be both CPU and OS.
But we could just make an exception for MAC intel and add more python code to override the engine folder name for MAC intel.

So name the folder we should have Dirk, and next time I have coding time I might add MAC intel install and runtime support. Its probably not so difficult

Johan Sjöblom

unread,
Sep 22, 2026, 2:02:54 PMSep 22
to PicoChess
Ok Dirk, now there is support for Intel macOS. Engines should be placed in engines/mac_x86_64 (as x86_64 is already for Linux as aarch64 for Pi)
Same mac install script:
install-picochess-mac.sh <--- Now supports both arm and intel MAC.

As said, no picochess.ini created, and engines folder will be empty so those still have to be made manually until we create the first Windows and MAC resource files for engines.... And add a picochess.ini.example-windows and picochess.ini.example.mac files to the repo that matches the resource file...

...its now possible to test MAC installation :-)

// Johan


Johan Sjöblom

unread,
Sep 23, 2026, 2:54:25 PMSep 23
to PicoChess
The windows installer script install-picochess-windows.ps1 now creates a picochess.ini if one does not exist, and it downloads a windows a-stockf.exe.
This means that if you install python and git, and clone that repository in windows and run that installer script everything should be ready to start.

There is a start script start-picochess-windows.ps1

I have zipped the windows installer exe that should install python, git, and clone the repo: https://github.com/JohanSjoblom/picochess/releases/download/v4.3.5/PicoChessInstaller.zip

Whats still missing, and on my todo list is to make a small control panel where picochess can be start/stop and a web browser launched on 8080. That one can then be started instead of the start-picochess-windows.ps1 script. It will be a small windows form exe app with 3 buttons for starters.

// Johan

Johan Sjöblom

unread,
Sep 24, 2026, 12:05:35 PMSep 24
to PicoChess
Rock n Roll.
The installer will allow you to point to an new location for your picochess files, or use an existing picochess repository you might already have cloned.

The installer will install git if you don't have it, and a python 3.13 if you don't have a "good enough" python 3.11-3.13.
The installer is not signed, so it might give a warning that there is no signature of the developing company. I need to figure out if I can self-sign it or then we need to purchase a valid picochess certificate :-)

AND: After installing when you launch picochess from your menu (or desktop) you get a control panel from which you can start it, and launch it in a browser. The control panel works a little bit the same as the Linux systemctl start/stop picochess :-)

You dont need to have any technical skills to install picochess on Windows now, but you need to be a brave tester :-)

Please report problems with installations... I have mostly considered 64-bit windows, and the installer and control panel is based on .NET 10 and C#. The installer code can be found in the repository.
You can build your own installer using the script win/build-dist.ps1 and it builds your own Picochess installer into the sdist folder.

PicochessWindows.png

Johan Sjöblom

unread,
Sep 24, 2026, 12:07:34 PMSep 24
to PicoChess
The previous attachment and this are just pictures. To get the proper install, build it yourself (requires .NET 10) or fetch it from https://github.com/JohanSjoblom/picochess/releases/download/v4.3.5/PicoChessInstaller.zip
PicochessWindows.jpg

Johan Sjöblom

unread,
Sep 24, 2026, 2:43:55 PMSep 24
to PicoChess
Brave MAC users can now build their own installer and control panel. 
We would need someone with an Apple dev account (99$/year) to sign it, but if you build it yourself you can test it already now.

needed:
- The .NET 10 SDK for macOS.
- Git (Xcode Command Line Tools) and a checkout of the branch, because the build script lives in the repo. 
The Command Line Tools install is the same one PicoChess needs anyway. codesign, ditto and shasum come with macOS itself.

Steps:
git clone --branch 471-port-to-windows https://github.com/JohanSjoblom/picochess.git ~/PicoChess
cd ~/PicoChess
bash mac/build-dist-mac.sh
Then unzip the zip for your architecture from sdist, PicoChess-mac-arm64.zip or PicoChess-mac-x64.zip, and open PicoChess.app.

As said, I dont have any MAC to test on... And notice that there is no picochess.ini or engine package for MAC yet.

Luigi Vogliobene

unread,
Sep 25, 2026, 5:24:12 AMSep 25
to PicoChess
Thank you Johann,
please would you like to tell me what credentials can I use to connect via SSH from other PC's ?
Thank you
Luigi

Johan Sjöblom

unread,
Sep 25, 2026, 6:13:13 AMSep 25
to PicoChess
First of all, to run Picochess on Windows you do not need the ssh. Picochess can now be installed on Windows and run only on Windows (or MAC). But I think you understood that already. Just to be clear: its now possible to install the entire Picochess on Windows (or Mac). Earlier Picochess only worked on Pi and Linux machines. Now it should be possible to use Picochess on any computer.

But I think you might be thinking about the remote engine. That is a different discussion. To use a windows engine from a picochess on your Pi, then you need to set up the SSH like Andrea has in his document: https://groups.google.com/g/picochess/c/JFH6QGEOHko/m/tqdDZFFOCgAJ
I have only used SSH between Pi and Linux, I have not yet tried to use Windows engines as remote engines. 
I guess the only thing you need to do is to set up a new Windows user, and to make it simple name that user "pi". But thats all in Andreas manual on how to do it. I cannot help you with the remote engine on Windows.

// Johan
Reply all
Reply to author
Forward
0 new messages