The next question arrived shortly after three consecutive checkmates.

Could I just leave OneZenPanda running overnight?

It sounds like a small extension of an evening’s experiment. The bot finds opponents, Stockfish plays the moves, and I wake up to more games. The panda gets the night shift. I get some sleep.

Then I started thinking about the machine doing the work: my M2 MacBook Air.

The silence has an explanation

The M2 Air has no fan. Apple describes it as a silent, fanless design.

That is lovely when I am writing a blog post. It is a more interesting detail when I am asking Stockfish to calculate through a succession of blitz games.

My current configuration gives the engine four threads, 512 MB of hash memory, and permission to ponder during its opponent’s turn. One game at a time does not mean one brief calculation at a time. With pondering enabled, the other player’s clock is also an opportunity to work.

The laptop may be silent while the engine is very busy.

I have not measured its temperatures during an overnight run. This is the question that stopped me before treating an unattended night as the obvious next step, not a report that the machine overheated.

Apple says warmth can be normal and recommends a stable work surface with good ventilation, an ambient temperature between 10°C and 35°C, and nothing covering the keyboard. A desk qualifies. A blanket does not. Apple’s temperature guidance is a better starting point than guessing from how quiet the laptop is.

For a gentler experiment on the Air, I could disable pondering and reduce the search to two threads. Stockfish would have fewer computing resources, and the machine would have more breathing room between moves. How much that changes temperature or results is something to measure.

What does “maximum strength” actually mean?

I had set Skill Level 20, which invites the comforting assumption that the engine is simply on its highest setting and the subject is settled.

Twenty is indeed the maximum. Checking the installed Stockfish 19 directly confirmed a range of 0 to 20. My configuration also has UCI_LimitStrength disabled.

Those settings remove the intentional handicap. Stockfish’s documentation explains that lower skill settings introduce weaker move choices. They are a way to make an opponent less strong, not a dependable temperature control.

But “no intentional handicap” does not mean “the same chess on every computer.”

SettingWhat it controls in this setup
Skill Level 20, strength limiting offNo deliberate weakening of move selection
Four threadsCPU search parallelism
512 MB hashMemory reserved for the search hash table, not the entire process
Pondering enabledCalculation during the opponent’s turn
One concurrent gameHow many games the bot plays at once

A faster machine can search more positions in the time available. More time can also change what the engine finds. The same Skill Level does not guarantee identical moves or identical playing strength across hardware.

There is no final knob labeled “all possible chess.” There is an engine, a machine, a clock, and a decision that eventually has to leave the computer.

Could the panda live on a Raspberry Pi?

A Raspberry Pi 5 has a four-core processor. Running one bot with four search threads and 512 MB of hash is a plausible job for it. I would consider a model with at least 4 GB of RAM to leave room for the operating system, the engine’s other memory needs, and the bot software.

For this particular job, cooling would be part of the setup from the beginning.

Raspberry Pi’s published cooling tests show sustained heavy load pushing an uncooled Pi 5 into thermal throttling. The official Active Cooler kept the tested board well below that threshold. Those are their measurements under their test conditions, not a benchmark of my bot.

The prospective build is straightforward: a Pi 5, an appropriate power supply, active cooling, and a case that leaves the cooler room to work. Install a compatible Stockfish build and the bot bridge, then adjust the engine path from the Homebrew location used on my Mac.

I would expect lower search throughput than on the M2 Air, but I have not measured that comparison. The attraction is a small dedicated machine that can keep playing without borrowing my laptop for the evening.

A tiny computer with one job: remain calm and find the next move.

Or give it a Mac mini

A Mac mini is the other direction I am considering: a dedicated computer in the environment I already use, with active cooling for sustained work. Apple’s Mac mini thermal-design description explains how its cooling system moves air through the machine.

My existing four-thread, 512 MB setup does not require a top-end model just to run. Choosing a machine would be about the performance, cost, and other uses I want from it, rather than finding something that can unlock Skill Level 20.

The Pi appeals to the experiment. The mini appeals to the convenience.

Neither has been purchased for this project. Neither has played these games. For now, OneZenPanda still lives on the Air.

An overnight bot needs more than a cooler

The hardware question also exposed a difference between getting a program running and making it dependable.

A terminal window is enough for an evening while I am sitting beside it. For regular unattended runs, I would want the bot managed as a service: starting after a reboot, restarting after an unexpected crash, and keeping logs without filling the disk. On Linux that could be a systemd service; on macOS, a launchd job.

I would also want a stable network connection, system sleep configured for the job, and a clear way to stop accepting games and shut down cleanly. Wired Ethernet would be worth using where practical.

Before leaving a new setup alone overnight, I want to run it for several hours while I am around. Watch for thermal throttling, memory pressure, disconnects, and losses on the clock. Start with ordinary settings and automatic cooling controls. Change one thing at a time.

That would give the next post actual observations instead of a shopping list dressed as a conclusion.

The next experiment

For now, the useful discovery is that I can keep Stockfish at full skill while making deliberate choices about how much hardware it uses. Two threads with pondering off is still Stockfish trying to find its best move. Four threads with pondering on gives it more opportunities to calculate, and gives me more reason to think about sustained load.

I want to try those configurations, see how the Air behaves, and eventually compare a dedicated setup. Search speed will be one measurement. Heat, reliability, and whether I can leave the machine alone will matter too. A handful of wins will not settle all of those questions.

Tonight began with getting a bot online. It ended with me considering where that bot might live.

There is more to experiment with than I expected, and I am looking forward to it.

The panda may be ready for the night shift. I am still arranging its desk.