Die Geschichte hinter clrsrc

Vom Nachmittags-Hack zur eigenen Schach-KI.

clrsrc ist nicht über Nacht entstanden - aber fast. In rund drei Monaten führte der Weg von einer an einem Nachmittag geschriebenen Python-Engine über eine Rust-Neufassung bis zu einer eigenständigen Engine mit selbst trainiertem neuronalem Netz, die heute live auf Lichess spielt. Hier ist die ganze Geschichte: die Technik, die Hardware, die Methode - und warum nichts davon ohne eine Mensch-KI-Partnerschaft möglich gewesen wäre.

März–Juni 2026 Rust eigenes NNUE Heimcluster Vibe Coding
Zeitachse

Drei Monate, ein Sprint

Die öffentliche Engine reifte von Version 1.0.0 bis 1.1.1 in nur rund zweieinhalb Wochen - davor lagen Wochen Prototyping mit dem Vorläufer Jugernaut.

Zeitachse: Jugernaut (Python) im März, Rust-Jugernaut, clrsrc 1.0.0 am 25. Mai, 1.1.0 und LiRu-Bot am 31. Mai, 1.1.1 am 9. Juni, Website am 10. Juni 2026.
Entstehung März–Juni 2026 · selbst erstellte Grafik
Die Genese

Von Jugernaut zu clrsrc

Über den Namen

Warum „clrsrc"?

Ein kleiner Retro-Gruß ans Handwerk: In den frühen C-Tagen (Turbo C / Borland, conio.h) stand am Anfang fast jedes Programms der Befehl clrscr() - „clear screen", um die Konsole zu leeren. Daraus wurde der Projektname: clr (clear) + src (source) = „clear source" - die reine Quelle.

Das Gehirn

Wie ein neuronales Netz Schach lernt

Ein NNUE (Efficiently Updatable Neural Network) bewertet Stellungen - und wird in vier Schritten trainiert:

NNUE-Pipeline: 1. Datagen erzeugt durch Selbstspiel rund 200 Millionen Stellungen, 2. Stockfish 17.1 bewertet sie neu als Teacher, 3. der Trainer bullet lernt daraus ein Netz, 4. das Netz wird in die Engine eingebettet.
Self-Play → Teacher-Labeling → Training → Einbetten · selbst erstellte Grafik
Ehrlich bleiben: Ein destilliertes Netz kann seinen Lehrer annähern, aber auf der gelernten Verteilung nicht übertreffen. Genau dort setzt die laufende Forschung an - größere Netze, tiefere Trainings-Labels.
Qualität

Beobachten, analysieren, beheben

Eine Engine wird nicht stärker, weil man es behauptet - sondern weil man jede Änderung misst, Schwächen aus echten Partien findet und Fehler konsequent abstellt.

Qualitätskreislauf: Daten erzeugen, Netz trainieren, SPRT-Test, Deploy zum Live-Bot, Partien analysieren, Fehler beheben und Buch pflegen - und zurück zur Datenerzeugung.
Jede Erkenntnis aus echten Partien fließt zurück in Daten, Netz und Suche · selbst erstellte Grafik

Monitoring - verteilt statt zentral

Es gibt keinen zentralen Monitor: Jede KI-Instanz beobachtet ihre eigene Domäne, die Befunde laufen über den Nachrichten-Bus zusammen.

Spiel- & Fehleranalyse

Fehlerbeseitigung

Vier Beispiele nach dem Muster Symptom → Ursache → Fix → Wirkung:

Erfahrung

Das kuratierte Erfahrungsbuch

Damit die Engine nicht jede bekannte Stellung neu errechnen muss, sammelt ein „Erfahrungsbuch" tiefe Such-Urteile - und das wird gepflegt wie ein eigenes kleines Datenformat.

Die Hardware

Ein Rechenzentrum aus Resten

Die Millionen Trainingsstellungen entstanden nicht in der Cloud, sondern auf einem zusammengewürfelten Heimcluster - Desktop, alte Laptops, sogar Smartphones unter Termux, per SSH orchestriert - ergänzt um einen gemieteten VServer, der als Einziger das ganze Jahr durchläuft.

10
Rechenknoten (inkl. VServer)
~250–300
Stellungen / Sekunde
~60 Mio.
Stellungen in 2–3 Tagen
RTX 5060 Ti
GPU fürs Netz-Training
KnotenProzessorSystem
DesktopRyzen 9 9950X + RTX 5060 TiWindows 11
Notebook YogaCore i7-1165G7 · AVX-512Debian
Notebook Device33Core i5-7200UDebian
Notebook X230iCore i3-3110MDebian
Smartphone X1Dimensity 9300+Android · Termux
Smartphone X2Snapdragon 778GAndroid · Termux
Smartphone X3Snapdragon 888Android · Termux
Smartphone SamsungSnapdragon 888Android · Termux
TV-BoxARMv8 (aarch64)Android · Termux
VServer (gemietet)x86-64 · AVX-512Linux · 24/7/365
Inter-Instanz-Kommunikation

Wenn KIs miteinander reden

Jedes Teilprojekt - Engine, Bot, Training, Website - hat seine eigene KI-Instanz. Damit sie abgestimmt arbeiten, tauschen sie Fakten über einen schlanken Nachrichten-Bus aus. clrsrc ist der Hub.

Bus-Topologie: clrsrc als zentraler Hub, verbunden mit den Instanzen nnue_train, website, chess_engines und bot über paarweise Busse; darüber ein gemeinsames, nur lesbares Faktenlog.
clrsrc als Hub · paarweise Busse + gemeinsames Faktenlog · selbst erstellte Grafik

Manche Instanzen antworten sogar autonom auf eingehende Nachrichten - abgesichert durch mehrere Bremsen: begrenzte Antwort-Tiefe, Cooldowns, Tageslimit, Budget-Deckel und einen Kill-Switch. Eine menschliche Nachricht setzt die Kette jederzeit zurück.

Instanzen & Skills

Fünf Spezialisten, ein Werkzeugkasten

Jede Instanz hat ein eigenes Aufgabengebiet - und dafür selbst gebaute Werkzeuge, im Claude-Code-Jargon Skills: kleine, wiederkehrende Arbeitsabläufe, die sich per Befehl starten lassen. Was die vier Arbeits-Instanzen können:

♟️

clrsrc - Engine & Hub

Die eigentliche Schach-Engine und zugleich die zentrale Instanz, über die alle anderen abgestimmt werden.

Skills: expmerge-deploy (Eröffnungsbuch aus echten Bot-Partien kuratiert mergen & live ausspielen), sprt (neue Versionen statistisch A/B-testen), cold-probe (gemeldete Patzer im frischen Prozess reproduzieren), fleet-status (den Rechen-Cluster steuern). Rust-Absicherung mit Kani, Miri und Clippy.

🤖

bot - Lichess-Bot

Betreibt @clrsrc_lc0 live auf Lichess und wertet jede Partie aus.

Skills: game-review (Verlustpartien triagieren: Rating-Drift + Eval-Verlauf bis zum Kipp-Punkt), cold-probe (einen Befund zug-genau belegen), report-finding (Befunde einheitlich melden & ablegen), bot-health (Live-Status, read-only). Dazu punktuell code-review und ein stündlicher Turnier-Poll.

🧠

nnue_train - Netz-Training

Trainiert das neuronale Netz und entscheidet, welcher Kandidat weiter darf.

Skills: coverage-round (komplette Trainings-Runde), eval-net (Kandidat gegen Baseline prüfen), sprt-handoff (Netz zur Stärkeprüfung übergeben), build-book (gezieltes Eröffnungsbuch für die Datengenerierung). Prinzip: Auswahl nach Spielstärke, nicht nach Trainings-Loss.

📊

chess_engines - der Maßstab

Eine kuratierte Sammlung von 57 Vergleichs-Engines mit einheitlichen technischen Steckbriefen. Misst clrsrcs Stärke aus echten Engine-gegen-Engine-Partien - gemessen, nicht geschätzt.

Arbeit: Steckbrief-Analyse (Engine-Internals quellengetreu lesen), cutechess-Turniere (Round-Robin & Gauntlet), Quellen-Verifikation und ein unabhängiger Fakten- & Code-Review dieser Website.

Und die fünfte Instanz? Sie hat diese Seite gebaut - statisch, ohne Framework - und bezieht ihre Zahlen ausschließlich aus den geprüften Fakten der anderen vier. Über allen liegt geteiltes Werkzeug: der Nachrichten-Bus mit gemeinsamem Faktenlog, ein automatischer Check auf neue Post am Ende jeder Antwort, ein Autopilot für den headless-Betrieb und eine Crash-Recovery, die jede Sitzung mit vollem Kontext fortsetzen kann.

Mensch & KI

Wer macht eigentlich was?

🧭

Der Mensch - Architekt & Entscheider

Setzt Ziele und Qualitätsmaßstäbe, betreibt die Hardware, hält die rechtlichen Leitplanken und beurteilt Ergebnisse mit Schachverstand.

⚙️

Claude Code - der ausführende Entwickler

Schreibt und refaktoriert den Code, baut Werkzeuge, recherchiert und dokumentiert - und läuft in Teilen autonom innerhalb klarer Grenzen.

💡

Gemeinsames Denken

Die größten Fortschritte entstehen nicht beim reinen Abarbeiten, sondern im gemeinsamen Nachdenken. Der Mensch bringt eine Frage oder eine Beobachtung mit; die Instanz gräbt nach, prüft Vermutungen gegen die tatsächlichen Daten und verwirft, was sich nicht hält. Oft kippt dabei eine lange geglaubte Annahme - weil jemand nachgemessen hat, statt zu raten. Mensch und KI sind dabei keine Befehlskette, sondern Gesprächspartner: der Mensch setzt Richtung und Grenzen, die Instanz liefert Tiefe, Belege und auch mal Widerspruch.

💬

Miteinander arbeiten und darüber reden

Gearbeitet wird im Gespräch: aktives Brainstorming, offener Austausch, Ideen sammeln und gemeinsam scharfstellen. Das Besondere ist der kurze Draht - über den interinstanz-Bus reden die Instanzen flexibel und schnell direkt miteinander. Fragen, Antworten und Belege wandern automatisch hin und her, ohne dass jemand Text von einem Chat in den nächsten kopieren müsste.

Das ist Vibe Coding in der ernsthaften Variante: nicht „blind generieren lassen", sondern in natürlicher Sprache die Absicht vorgeben - und jede Engine-Änderung anschließend per SPRT statistisch beweisen. Vibe trifft Messlatte. Ohne diese Partnerschaft gäbe es das Projekt nicht.

Warum Schach schwer ist

Die unendlichen Stellungen

Schach lässt sich nicht „durchrechnen". Es gibt eine perfekte Lösung - aber sie ist praktisch unerreichbar.

~10⁴⁴
legale Stellungen
~10¹²⁰
mögliche Partien (Shannon-Zahl)
~10⁸⁰
Atome im sichtbaren Universum

Der Ausweg sind zwei Hebel, die sich multiplizieren: schlauer suchen (den Suchbaum aggressiv beschneiden) und besser bewerten (das NNUE). Genau diese zwei Hebel sind die ganze Geschichte dieses Projekts.

Recht & Fairness

Offen und sauber

Vollständige Danksagung an alle Projekte, aus denen Code, Algorithmen oder Datenformate stammen, in der CREDITS-Datei auf GitHub ↗.

Ausblick

Wohin es geht