Modell / Datensatz
Windy3f3f3f3f/claude-code-from-scratch avatar
Windy3f3f3f3f/claude-code-from-scratch

claude-code-from-scratch: Claude Code in rund 5000 Zeilen nachbauen

Build your own Claude Code from scratch. 🔍 Claude Code 开源了 50 万行代码,读不动?用 ~5000 行 TypeScript / Python 从零复现核心架构,11 章分步教程带你理解 coding agent 精髓

2.680 Sterne541 ForksPythonMIT

Auf einen Blick

Was ist das?
Ein MIT-lizenziertes Lehrprojekt zerlegt einen Coding Agent in 13 Kapitel und zwei Sprachversionen. Der Wert liegt in der nachvollziehbaren Architektur, nicht in Produktionsreife.
Für wen ist es gedacht?
Wer die Mechanik eines Coding Agent verstehen will, findet hier einen der wenigen Lehrpfade, bei dem jeder Codeblock und jede Ausgabe aus derselben Quelle erzeugt werden. Wer einen Agenten für den Produktivbetrieb sucht, sollte beim etablierten Claude Code bleiben: der Autor selbst schreibt, das Projekt sei nicht mit Anthropic verbunden und nicht garantiert deckungsgleich mit dem Original.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 69 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Python, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Ein Lehrpfad statt eines Werkzeugs

Das Problem, das dieses Repository adressiert, ist kein technisches, sondern ein didaktisches. Der README beschreibt die Ausgangslage so: Claude Code bestehe aus mehreren hunderttausend Zeilen, die sich kaum am Stück lesen lassen. Der Autor setzt dagegen ein Projekt, das laut eigener Angabe rund 5000 Zeilen umfasst und in TypeScript und Python parallel gepflegt wird. Zielgruppe sind Entwickler, die verstehen wollen, wie ein Coding Agent intern arbeitet, und die dafür nicht den Quelltext eines kommerziellen Produkts durcharbeiten möchten. Das Repository ist ausdrücklich als Lernprojekt deklariert, nicht als Werkzeug für den Dauerbetrieb.

Agent Loop, Tools und Kontextdruck

Die Architektur folgt dem Muster, das der README als Kernloop beschreibt: das Modell aufrufen, Werkzeuge ausführen, wiederholen. Auf dieser Schleife sitzen mehrere Schichten. Kapitel 2 behandelt 13 Werkzeuge, dazu ein mtime-Schutz und verzögertes Laden. Kapitel 5 beschreibt zwei Backends, Streaming-Werkzeugausführung und parallele Ausführung. Kapitel 7 widmet sich der Kontextverwaltung mit vier Kompressionsstufen und dem Auslagern großer Ergebnisse. Kapitel 8 ergänzt ein Gedächtnissystem mit vier Typen, semantischem Abruf und asynchronem Prefetch. Kapitel 11 führt Sub-Agents im fork-return-Muster ein, Kapitel 12 verbindet über JSON-RPC auf stdio externe Werkzeuge per MCP. Die Dokumentation stellt jedem Kapitel eine Entsprechung im Original gegenüber, etwa agent.ts gegen query.ts oder tools.ts gegen Tool.ts. Diese Gegenüberstellung ist der eigentliche Inhalt: sie macht sichtbar, welche Entscheidung an welcher Stelle getroffen wurde.

Installation und Konfiguration in zwei Sprachen

Der TypeScript-Pfad beginnt mit git clone, gefolgt von npm install && npm run build. Der Python-Pfad verlangt laut README Python 3.11 oder neuer und wird über pip install -e . im Verzeichnis python eingerichtet. Zwei Einstiegspunkte stehen bereit: mini-claude-py und python -m mini_claude. Die Benennung ist bewusst gewählt, um eine Kollision mit dem TypeScript-Kommando mini-claude zu vermeiden. Die Backend-Auswahl läuft über Umgebungsvariablen. Für das Anthropic-Format setzt man ANTHROPIC_API_KEY, optional ANTHROPIC_BASE_URL. Für OpenAI-kompatible Endpunkte dienen OPENAI_API_KEY und OPENAI_BASE_URL. Das Modell lässt sich über MINI_CLAUDE_MODEL oder den Schalter --model überschreiben, wobei der Kommandozeilenwert laut README Vorrang hat. Die REPL kennt Befehle wie /clear, /cost, /compact, /memory und /skills. Sicherheitsrelevante Modi sind als Flags ausgeführt: --plan für reine Analyse, --accept-edits für automatisch genehmigte Dateiänderungen, --dont-ask für den CI-Betrieb, in dem bestätigungspflichtige Aktionen abgelehnt werden. --yolo überspringt die Sicherheitsbestätigung vollständig.

Der Übungspfad ohne API key

Der interessanteste Teil der Distribution ist der Runner im Verzeichnis steps. Der Befehl node steps/run.mjs --list zeigt alle lauffähigen Kapitel, node steps/run.mjs 7 führt Kapitel 7 aus, --diff beschränkt die Ausgabe auf die Zeilen, die dieses Kapitel gegenüber dem vorigen hinzufügt, und --py wechselt auf die Python-Variante. Der README betont, dass die gezeigten Ausgaben aus einem lokalen Mock-Modell stammen und keine Netzwerkverbindung benötigen. Mit --live lässt sich stattdessen ein echtes Modell ansprechen. Bemerkenswert ist die Zusicherung, dass Codeblock, Dokumentation und Ausgabe aus derselben Quelle generiert werden. Genau hier scheitern viele Tutorials: der abgedruckte Code driftet vom Repository ab. Ob diese Zusicherung in der Praxis lückenlos hält, lässt sich aus dem Material nicht belegen, aber die Konstruktion ist plausibel und überprüfbar.

Wo das Projekt an seine Grenzen stößt

Die wichtigste Einschränkung steht im Repository selbst. Der Autor erklärt, das Projekt folge dem öffentlich beobachtbaren Verhalten von Claude Code und allgemeinen Agent-Mustern, ohne Übereinstimmung mit der tatsächlichen internen Implementierung zuzusichern. Wer also hofft, durch das Lesen dieser 5000 Zeilen das echte Produkt zu verstehen, versteht am Ende eine Rekonstruktion. Das ist kein Mangel des Lehrprojekts, sondern eine Grenze, die man kennen sollte. Hinzu kommt der Umfang: 13 Kapitel decken den Kern ab, aber die Tabelle nennt für die Originalseite 66 Werkzeuge und ein permissions-Verzeichnis von 52 KB. Ein Agent, der auf Produktionslast, mehrstufige Rechteprüfungen oder Fehlerinjektion ausgelegt ist, lässt sich daraus nicht ableiten. Die Sicherheitsmodi sind als Flags beschrieben, nicht als auditierbare Policy-Engine. Wer einen Agenten in einer Umgebung mit echten Schreibrechten betreibt, sollte dieses Projekt nicht als Grundlage nehmen. Ein weiterer Punkt: die Lizenz ist MIT, was die Weitergabe und Anpassung erlaubt, aber der Name Claude Code ist eine Marke von Anthropic, und der README stellt ausdrücklich klar, dass keine Verbindung zu Anthropic besteht. Wer aus dem Code ein eigenes Produkt baut, muss die Markenfrage selbst klären. Rechtsberatung ist das hier nicht.

Was ein etablierter Agent anders macht

Die naheliegende Alternative ist das Original: Claude Code von Anthropic. Der Unterschied liegt nicht in der Funktion, sondern in der Verantwortungsschicht. Das Original liefert die Rechteverwaltung, die Telemetrie und die Werkzeugabdeckung als Teil eines gepflegten Produkts, während dieses Repository die Mechanismen offenlegt und auf das Nötigste reduziert. Ein zweiter Vergleichspunkt ist das Schwesterprojekt how-claude-code-works, das der README mit 12 Artikeln und 330000 Zeichen beschreibt. Dort geht es um Analyse auf Quelltextebene, hier um Nachbau. Wer verstehen will, wie etwas gemacht wurde, liest das Schwesterprojekt. Wer es selbst einmal getippt haben möchte, arbeitet mit diesem hier. Der Unterschied ist der zwischen Lesen und Schreiben, und beide haben ihren Platz.

Pflegeaufwand und Aktualität

Der letzte Push liegt laut Repository-Metadaten bei Juli 2026, das Release v1.0.0 stammt vom März 2026. Das Projekt ist nicht archiviert. Der Aufwand für Nutzer beschränkt sich auf zwei Dinge: die Abhängigkeiten des jeweiligen Sprachpfads und die Modellkonfiguration über Umgebungsvariablen. Weil zwei Versionen parallel existieren, entsteht ein doppelter Pflegepfad, den der Autor selbst trägt. Für Leser bedeutet das, dass Änderungen an einer Sprachvariante nicht automatisch in der anderen ankommen. Ein Blick in den jeweiligen README vor dem Einstieg ist deshalb sinnvoll, besonders unter python/README.md, wo die Version 3.11 als Voraussetzung genannt wird. Die MIT-Lizenz erlaubt es, den Code zu forken und anzupassen, solange der Lizenztext erhalten bleibt. Eine Kostenaussicht gibt es nur indirekt: die REPL kennt /cost, und die Flags --max-cost und --max-turns begrenzen den Verbrauch, was bei einem Live-Backend relevant wird.

Redaktionelles Fazit

Wer die Mechanik eines Coding Agent verstehen will, findet hier einen der wenigen Lehrpfade, bei dem jeder Codeblock und jede Ausgabe aus derselben Quelle erzeugt werden. Wer einen Agenten für den Produktivbetrieb sucht, sollte beim etablierten Claude Code bleiben: der Autor selbst schreibt, das Projekt sei nicht mit Anthropic verbunden und nicht garantiert deckungsgleich mit dem Original. Vor dem Einstieg lohnt ein Blick in python/README.md, weil dort Python 3.11+ als Voraussetzung steht, und ein Testlauf von node steps/run.mjs --list, der ohne API key zeigt, welche Kapitel lokal startbar sind.

Offizielle Quellen

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. Windy3f3f3f3f/claude-code-from-scratch on GitHub
Community-Notizen

Community-Notizen