UCI-Engines auf dem Mac einbinden

UCI-Engines auf dem Mac einbinden

Schritt für Schritt am Beispiel Pawnocchio und Leela Chess Zero

Einleitung: Warum „UCI-kompatibel“ nicht automatisch „Mac-kompatibel“ bedeutet

Fast jede moderne Schach-Engine wirbt damit, das UCI-Protokoll (Universal Chess Interface) zu unterstützen – und tatsächlich stimmt das auch fast immer. Das Problem liegt selten am Protokoll selbst, sondern an zwei Sicherheitsmechanismen von macOS, die mit UCI nichts zu tun haben, aber jede frisch heruntergeladene Engine zunächst blockieren:

  • Fehlendes Ausführungsrecht – eine heruntergeladene Datei ist zunächst nur ein „Dokument“, kein ausführbares Programm.
  • Gatekeeper-Quarantäne – macOS markiert jede aus dem Internet geladene Datei automatisch und verweigert die Ausführung, wenn kein offizielles Apple-Entwicklerzertifikat vorliegt.

Kleinere, meist von Einzelentwicklern gepflegte Open-Source-Engines (wie Pawnocchio) haben kein solches Zertifikat – Signierung und Notarisierung bei Apple kosten Geld und Aufwand, den Hobbyprojekte selten betreiben. Das Ergebnis: HIARCS Chess Explorer, Arena, En Croissant & Co. zeigen entweder eine Fehlermeldung, oder die Engine lässt sich zwar auswählen, reagiert aber nie auf Analysebefehle.

Die gute Nachricht: Die Lösung ist in beiden Fällen (fast) identisch und dauert nur wenige Minuten – auch ohne Terminal-Erfahrung.

Überblick: UCI-Engines mit Mac-Unterstützung

Es gibt keine offizielle Gesamtliste – auf Plattformen wie OpenBench, CCRL oder CEGT taucht ständig Nachwuchs auf. Die folgende Übersicht sortiert die relevanten Engines danach, wie unkompliziert sich die Mac-Einbindung gestaltet.

1. Direkt startklar (signierter Build oder Homebrew)

EngineInstallationsweg
StockfishOffizielle signierte Mac-App oder brew install stockfish – stockfishchess.org/download
Leela Chess Zero (Lc0)brew install lc0 oder offizieller Mac-Download – lczero.org/play/download
Komodo DragonKommerzieller Installer mit Mac-Signatur – komodochess.com

2. Cross-kompiliert für Mac verfügbar (rohe Binärdatei, Anleitung unten anwendbar)

Pawnocchio ist in der Programmiersprache Zig geschrieben. Zig kann sehr einfach für andere Plattformen cross-kompilieren, weshalb der Entwickler bei jedem Release direkt einen fertigen macOS-Build (Apple Silicon und Intel) mitliefert – ohne dass jemand selbst kompilieren muss.

EngineReleases-Seite
Pawnocchiogithub.com/JonathanHallstrom/pawnocchio/releases

3. Nur Windows/Linux offiziell — Mac nur durch Selbstkompilieren (siehe Teil 3)

Die meisten in C/C++ geschriebenen Spitzen-Engines aus der OpenBench-Community veröffentlichen offiziell ausschließlich Windows- und Linux-Binaries. Koivisto schreibt es im eigenen README wörtlich: „We do not provide binaries for MacOS yet.“ Caissa bietet laut Ankündigung „sources and Windows release“, Ethereal unterstützt in aktuellen Versionen nur noch Windows und Linux. Bei diesen Engines bleibt auf dem Mac nur die Kompilierung aus dem Quellcode (Anleitung dazu in Teil 3) oder eine inoffizielle Community-Binärdatei. Die Links unten führen direkt zur jeweiligen Quelle:

EngineGitHub-Repository
Berserkgithub.com/jhonnold/berserk
Obsidiangithub.com/gab8192/Obsidian
Caissagithub.com/Witek902/Caissa
Etherealgithub.com/AndyGrant/Ethereal
Koivistogithub.com/Luecx/Koivisto
Clovergithub.com/lucametehau/CloverEngine
Alexandriagithub.com/PGG106/Alexandria
RubiChessgithub.com/Matthies/RubiChess

Bevor man sich auf eine dieser Engines festlegt, lohnt sich trotzdem ein kurzer Blick auf die jeweilige Releases-Seite (Link öffnen → „Assets“ des neuesten Releases aufklappen) – die Situation kann sich mit jeder neuen Version ändern, und gelegentlich taucht doch ein macOS-Build auf.

Teil 1: Pawnocchio Schritt für Schritt

Pawnocchio ist eine moderne, in der Programmiersprache Zig geschriebene Open-Source-Engine von Jonathan Hallström. Sie steht exemplarisch für die meisten Open-Source-Engines: keine Installationsdatei, kein Installer, nur eine nackte Programmdatei auf GitHub – und genau deshalb ein gutes Lehrbeispiel.

Schritt 1 – Mac-Typ feststellen

Apple-Menü (🍎) oben links → „Über diesen Mac“. Steht dort bei „Chip“ etwas wie „Apple M1“, „M2“, „M3“ oder „M4“, brauchst du die aarch64- bzw. arm64-Version. Steht dort „Intel“, brauchst du die x86_64-Version.

Schritt 2 – Download

Die Releases-Seite von Pawnocchio öffnen:

https://github.com/JonathanHallstrom/pawnocchio/releases

Die neueste Version wählen und die Datei mit „macos-aarch64“ (Apple Silicon) bzw. „macos-x86_64“ (Intel) im Namen herunterladen, z. B. pawnocchio-2.0.1-macos-aarch64.

Schritt 3 – Ordner anlegen

Im Finder einen festen Ordner für Engines anlegen, z. B.:

~/Programme/Schach-Engines/Pawnocchio/

Die heruntergeladene Datei dorthin verschieben. Ein dauerhafter Speicherort verhindert, dass die Engine beim nächsten Aufräumen des Downloads-Ordners versehentlich gelöscht wird und die Verknüpfung in HIARCS ins Leere zeigt.

Schritt 4 – Terminal öffnen

Cmd + Leertaste drücken, „Terminal“ eintippen, Enter drücken. Es öffnet sich ein einfaches Textfenster – hier wird nichts programmiert, nur zwei Befehle abgeschickt.

Schritt 5 – Datei ausführbar machen

Im Terminal-Fenster Folgendes eintippen, aber noch nicht Enter drücken (auf das Leerzeichen am Ende achten):

chmod +x 

Jetzt die Pawnocchio-Datei aus dem Finder per Drag & Drop direkt hinter das Leerzeichen ins Terminal-Fenster ziehen. Der vollständige Dateipfad erscheint automatisch. Erst jetzt Enter drücken.

Schritt 6 – Gatekeeper-Sperre entfernen

Genauso nochmal, mit einem neuen Befehl:

xattr -cr 

Wieder die Datei hineinziehen, Enter drücken. Der Parameter -cr entfernt alle Quarantäne-Markierungen, auch wenn man später einen ganzen Ordner statt einer einzelnen Datei zieht.

Schritt 7 – In HIARCS Chess Explorer Pro einbinden

1. Einstellungen → Engines → Hinzufügen (+)

2. Im Dateidialog Cmd + Shift + G drücken, um direkt einen Pfad einzugeben, oder einfach zum Ordner „Schach-Engines/Pawnocchio“ navigieren

3. Die Pawnocchio-Datei auswählen und bestätigen

4. HIARCS liest automatisch die UCI-Optionen der Engine aus (Hash-Größe, Threads etc.) – das ist das Zeichen, dass alles funktioniert hat

Schritt 8 – Test

Eine beliebige Stellung laden und die Engine als Analyse-Engine aktivieren. Zeigt Pawnocchio nach wenigen Sekunden Zugvorschläge mit Bewertung an, ist die Einbindung erfolgreich.

Falls trotzdem eine Warnung erscheint:„…kann nicht geöffnet werden, da der Entwickler nicht verifiziert werden kann.“ → Systemeinstellungen → Datenschutz & Sicherheit → nach unten scrollen → dort erscheint die blockierte Datei mit einem Button „Trotzdem öffnen“. Einmal anklicken und bestätigen, danach funktioniert es dauerhaft.

Teil 2: Leela Chess Zero (Lc0) Schritt für Schritt

Lc0 unterscheidet sich von klassischen Engines wie Pawnocchio oder Stockfish in einem wichtigen Punkt: Das Programm selbst enthält keine Schachkenntnisse. Die gesamte „Spielstärke“ steckt in einer separaten neuronalen Netzwerkdatei (den „Weights“), die zusätzlich zur Programmdatei heruntergeladen werden muss. Ohne diese Datei startet Lc0 zwar, spielt aber keinen einzigen Zug.

Weg A (empfohlen): Installation über Homebrew

Homebrew ist ein Paketverwalter für den Mac, der Signierungs- und Quarantäne-Probleme automatisch löst – die deutlich komfortablere Variante, wenn einmal eingerichtet.

Schritt 1 – Homebrew installieren (falls noch nicht vorhanden)

Terminal öffnen (Cmd + Leertaste, „Terminal“ eintippen) und diese Zeile eintippen und mit Enter bestätigen:

curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | bash

Das Skript fragt eventuell nach dem Mac-Passwort und zeigt am Ende zwei zusätzliche Befehle an, die einmalig ausgeführt werden müssen, damit „brew“ im Terminal gefunden wird (die genaue Zeile hängt vom Mac-Typ ab – sie steht direkt in der Ausgabe unter „Next steps“). Diese Zeilen einfach kopieren und ins Terminal einfügen.

Schritt 2 – Lc0 installieren

brew install lc0

Homebrew lädt die Engine automatisch in der richtigen Version für den eigenen Mac (Apple Silicon oder Intel) herunter, entfernt selbst die Gatekeeper-Sperre und richtet die Programmdatei ein.

Schritt 3 – Speicherort finden

Um den genauen Pfad zu erfahren, im Terminal eintippen:

which lc0

Auf Apple-Silicon-Macs lautet die Antwort meist:

/opt/homebrew/bin/lc0

auf Intel-Macs meist:

/usr/local/bin/lc0

Schritt 4 – Netzwerkdatei (Weights) herunterladen

Ohne Netzwerkdatei bleibt Lc0 stumm. Eine aktuelle, gut geeignete Datei findet man hier:

https://lczero.org/play/download

Dort im Bereich „Networks“ die empfohlene Datei für die eigene Spielstärke/Hardware laden (der Dateiname ist meist ein langer Hash-String). Die Datei ebenfalls in den eigenen Engine-Ordner legen, z. B.:

~/Programme/Schach-Engines/Lc0/weights.pb.gz

Ein Umbenennen in schlicht „weights.pb.gz“ erleichtert später die Konfiguration.

Schritt 5 – In HIARCS Chess Explorer Pro einbinden

1. Einstellungen → Engines → Hinzufügen (+)

2. Cmd + Shift + G drücken und den unter Schritt 3 ermittelten Pfad eingeben (z. B. /opt/homebrew/bin/lc0)

3. Die Datei „lc0“ auswählen

4. Im Konfigurationsdialog der Engine nach der Option „WeightsFile“ (manchmal auch „Weights“ oder „NetworkFile“) suchen und dort den Pfad zur zuvor heruntergeladenen Netzwerkdatei eintragen

5. Bei Bedarf die Option „Backend“ prüfen – auf dem Mac ist meist „blas“ oder „eigen“ (reine CPU-Berechnung) voreingestellt; das funktioniert zuverlässig, ist aber langsamer als eine GPU-Beschleunigung auf Windows/Linux

Schritt 6 – Test

Eine Stellung laden und Lc0 als Analyse-Engine starten. Die ersten Sekunden dauern spürbar länger als bei klassischen Engines, da das neuronale Netz zunächst geladen wird. Erscheinen danach Zugvorschläge mit Bewertung (meist als Prozent-Gewinnwahrscheinlichkeit statt Bauerneinheiten dargestellt), war die Einbindung erfolgreich.

Weg B (Alternative): Manueller Download ohne Homebrew

Wer Homebrew nicht installieren möchte, kann die offizielle Programmdatei auch direkt laden:

https://lczero.org/play/download

Im Bereich „macOS“ die passende Datei laden, entpacken, und wie bei Pawnocchio in Teil 1 (Schritte 3–6) vorgehen: eigenen Ordner anlegen, chmod +x und xattr -cr im Terminal ausführen, anschließend die Netzwerkdatei wie oben in Schritt 4 beschrieben ergänzen.

Häufiger Stolperstein bei Lc0Die Fehlermeldung „Engine ist angehalten“ in HIARCS, ohne dass eine Analyse startet, bedeutet in den allermeisten Fällen: Die Netzwerkdatei fehlt oder der Pfad dazu ist in den Engine-Optionen falsch eingetragen – nicht, dass die Einbindung selbst fehlgeschlagen ist.

Teil 3: Selbst kompilieren (für Engines ohne Mac-Build)

Für Engines wie Berserk, Obsidian, Caissa, Ethereal, Koivisto, Clover, Alexandria oder RubiChess gibt es offiziell keine fertige Mac-Datei – nur den Quellcode. Das klingt aufwändiger, als es ist: Alle diese Engines sind in C oder C++ geschrieben und bringen eine fertige Bauanleitung (ein „Makefile“) mit. Man muss keine einzige Zeile Code verstehen oder schreiben – nur ein paar zusätzliche Befehle ins Terminal eintippen.

Schritt 1 – Compiler installieren (einmalig)

macOS bringt keinen C/C++-Compiler von Haus aus mit. Er wird über Apples „Kommandozeilentools“ nachinstalliert – ein kostenloses, offizielles Apple-Paket, kein Umweg über Dritte. Terminal öffnen (Cmd + Leertaste, „Terminal“) und eintippen:

xcode-select –install

Es öffnet sich ein Dialogfenster von Apple selbst; „Installieren“ klicken und warten (je nach Internetverbindung 5–15 Minuten). Ist bereits ein Compiler vorhanden, meldet das Terminal stattdessen sofort „command line tools are already installed“ – dann einfach weiter zu Schritt 2.

Schritt 2 – Den Quellcode herunterladen

Jede der genannten Engines lässt sich mit git direkt von GitHub herunterladen (git ist Teil der Kommandozeilentools aus Schritt 1). Am Beispiel Koivisto:

cd ~/Programme/Schach-Engines

git clone https://github.com/Luecx/Koivisto.git

Das erzeugt einen neuen Ordner „Koivisto“ mit dem kompletten Quellcode darin. Für eine andere Engine einfach die Adresse aus der jeweiligen Tabelle in Teil „Überblick“ oben verwenden, z. B.:

git clone https://github.com/jhonnold/berserk.git

Schritt 3 – Kompilieren

In den Quellcode-Unterordner wechseln (der Name variiert je Engine – meist src, src_files oder ähnlich; steht in der README auf der GitHub-Seite) und den Bau-Befehl ausführen. Bei Koivisto:

cd Koivisto/src_files

make pgo

Bei den meisten anderen Engines genügt schlicht:

cd berserk/src

make pgo CC=clang

Der genaue Befehl steht immer im Abschnitt „Building“ oder „Compiling“ der README-Datei auf der jeweiligen GitHub-Seite. Der Kompiliervorgang dauert je nach Mac-Modell 30 Sekunden bis wenige Minuten und zeigt dabei viel technischen Text im Terminal an – das ist normal, auch wenn einzelne Warnungen (keine Fehler!) dabei erscheinen.

Schritt 4 – Die fertige Datei finden

Nach erfolgreichem Kompilieren liegt im selben Ordner eine neue ausführbare Datei, meist einfach mit dem Namen der Engine (z. B. koivisto oder berserk, ohne Dateiendung). Diese Datei ist bereits eine fertige Mac-Version, exakt für den eigenen Mac gebaut.

Schritt 5 – Ausführbar machen und einbinden

Selbst kompilierte Dateien tragen in der Regel keine Gatekeeper-Quarantäne (die betrifft nur aus dem Internet heruntergeladene Dateien), benötigen aber trotzdem das Ausführungsrecht:

chmod +x 

(wie gewohnt: Datei per Drag & Drop aus dem Finder hinter das Leerzeichen ziehen, dann Enter). Anschließend wie in Teil 1 beschrieben über Einstellungen → Engines → Hinzufügen in HIARCS Chess Explorer Pro einbinden.

Falls „make“ oder „git“ nicht gefunden wirdDas bedeutet, dass Schritt 1 (xcode-select –install) noch nicht abgeschlossen wurde oder ein Neustart des Terminals fehlt. Terminal einmal schließen und neu öffnen, dann den Befehl aus Schritt 1 wiederholen und den Installationsdialog vollständig durchlaufen lassen.
Falls der Bau-Befehl einen Fehler wie „fatal error“ zeigtManche Engines verlangen zusätzliche Bau-Werkzeuge (z. B. CMake) oder unterstützen bestimmte, sehr neue Prozessor-Befehlssätze (etwa avx512-pext) nicht auf jedem Mac. In diesem Fall in der README nach einer einfacheren Variante des Bau-Befehls suchen (oft „make native“ oder „make basic“ genannt) und diese anstelle von „make pgo“ verwenden.

Fazit

Die scheinbar unterschiedlichen Probleme bei Pawnocchio, Lc0 und den meisten anderen frei verfügbaren UCI-Engines laufen fast immer auf dieselben zwei Ursachen hinaus: fehlendes Ausführungsrecht und die Gatekeeper-Quarantäne von macOS. Wer einmal die Kombination aus chmod +x und xattr -cr verinnerlicht hat (oder für die etablierten Engines gleich zu Homebrew greift), kann künftig jede neue Engine binnen wenigen Minuten in HIARCS, Arena, En Croissant oder ein beliebiges anderes UCI-fähiges Programm einbinden. Und selbst wenn eine Engine gar keinen Mac-Build mitbringt, ist das dank Teil 3 kein Hindernis mehr – nur ein zusätzlicher Terminal-Befehl.

Tipp: Wer regelmäßig neue Engines testet, kann mit xattr -cr direkt auf den gesamten Engine-Sammelordner zeigen (statt auf einzelne Dateien) – das entsperrt alle neu hinzugekommenen Dateien auf einen Schlag.

Schreibe einen Kommentar

Schreibe einen Kommentar

Nach oben scrollen