Claude Code SDK
(docs.anthropic.com)- Das Claude Agent SDK ermöglicht es, die Tool-Ausführung, Agenten-Schleife und Kontextverwaltung von Claude Code aus Python- und TypeScript-Code heraus zu steuern und damit das Lesen von Dateien, das Ausführen von Befehlen, Websuche und Codebearbeitung zu automatisieren
- Als Standard-Tools stehen Read, Write, Edit, Bash, Monitor, Glob, Grep, WebSearch, WebFetch, AskUserQuestion bereit, sodass Aufgaben von der Codebase-Erkundung bis zu Rückfragen an Nutzer ohne separate Ausführungsschicht erledigt werden können
- Durch die Kombination von Hooks, Subagenten, MCP, Berechtigungen und Sessions lassen sich Konfigurationen wie Audit-Logs für Dateiänderungen, spezialisierte Subagenten für Code Reviews, Playwright-basierte Browser-Automatisierung oder Read-only-Analyseagenten umsetzen
- Die Installation erfolgt über
@anthropic-ai/claude-agent-sdkoderclaude-agent-sdk; Python erfordert 3.10 oder höher, und das TypeScript-SDK enthält das native Claude-Code-Binary für die jeweilige Plattform als optionale Abhängigkeit - Anders als das Anthropic Client SDK, bei dem die Tool-Schleife selbst implementiert wird, bietet das Agent SDK integrierte Tool-Ausführung und läuft nicht wie Managed Agents auf Anthropic-Infrastruktur, sondern in den Prozessen und auf der Infrastruktur der Nutzer
Zuständigkeitsbereich des Claude Agent SDK
- Das Claude Agent SDK macht die Tools, Agenten-Schleife und Kontextverwaltung, die Claude Code antreiben, in Python und TypeScript nutzbar
- Agenten können Dateien lesen, Befehle ausführen, im Web suchen und Code bearbeiten
- Die integrierte Tool-Ausführung ist enthalten, sodass Nutzer keine eigene separate Tool-Ausführungsschicht bauen müssen, damit Agenten mit der Arbeit beginnen können
- Das Basisbeispiel erlaubt die Tools
Read,EditundBash, um einen Bug inauth.pyzu finden und zu beheben
Installation und Authentifizierungsablauf
- Die Installation erfolgt über sprachspezifische Pakete
- TypeScript:
npm install @anthropic-ai/claude-agent-sdk - Python:
pip install claude-agent-sdk
- TypeScript:
- Das Python-Paket erfordert Python 3.10 oder höher
- Wenn der Fehler
No matching distribution found for claude-agent-sdkauftritt, ist der Interpreter möglicherweise älter als 3.10 - Unter macOS oder Linux prüft man dies mit
python3 --version, unter Windows mitpy --version
- Wenn der Fehler
- Das TypeScript-SDK enthält das native Claude-Code-Binary für die Plattform als optionale Abhängigkeit, sodass Claude Code nicht separat installiert werden muss
- Der API-Key wird in der Console erstellt und als Umgebungsvariable
ANTHROPIC_API_KEYgesetzt - Auch die Authentifizierung über Drittanbieter-API-Provider wird unterstützt
- Amazon Bedrock:
CLAUDE_CODE_USE_BEDROCK=1setzen und anschließend AWS-Anmeldedaten konfigurieren - Claude Platform on AWS:
CLAUDE_CODE_USE_ANTHROPIC_AWS=1undANTHROPIC_AWS_WORKSPACE_IDsetzen und anschließend AWS-Anmeldedaten konfigurieren - Google Vertex AI:
CLAUDE_CODE_USE_VERTEX=1setzen und anschließend Google-Cloud-Anmeldedaten konfigurieren - Microsoft Azure:
CLAUDE_CODE_USE_FOUNDRY=1setzen und anschließend Azure-Anmeldedaten konfigurieren
- Amazon Bedrock:
- Anthropic erlaubt Drittentwicklern ohne vorherige Genehmigung nicht, in Produkten auf Basis des Claude Agent SDK einen
claude.ai-Login oder Rate Limits bereitzustellen
Standard-Tools und Agentenfunktionen
- Das SDK macht zentrale Funktionen von Claude Code im Code nutzbar
- Integrierte Tools
- Hooks
- Subagenten
- MCP
- Berechtigungen
- Sessions
- Die wichtigsten integrierten Tools erfüllen folgende Rollen
Read: Dateien im Arbeitsverzeichnis lesenWrite: Neue Dateien erstellenEdit: Präzise Änderungen an bestehenden Dateien vornehmenBash: Terminalbefehle, Skripte und Git-Operationen ausführenMonitor: Hintergrundskripte überwachen und auf jede Ausgabezeile als Event reagierenGlob: Dateien anhand von Mustern wie**/*.tsodersrc/**/*.pyfindenGrep: Dateiinhalte per regulärem Ausdruck durchsuchenWebSearch: Aktuelle Informationen im Web suchenWebFetch: Inhalte von Webseiten abrufen und parsenAskUserQuestion: Nutzern Bestätigungsfragen mit Multiple-Choice-Optionen stellen
- Ein Beispielagent erlaubt
Read,GlobundGrep, um TODO-Kommentare in einer Codebase zu finden und zusammenzufassen
Hooks, Subagenten, MCP
- Hooks führen an wichtigen Punkten im Agenten-Lebenszyklus Nutzercode aus
- Über Callback-Funktionen lässt sich Agentenverhalten prüfen, protokollieren, blockieren oder transformieren
- Verfügbare Hooks sind unter anderem
PreToolUse,PostToolUse,Stop,SessionStart,SessionEndundUserPromptSubmit - Ein Beispiel erkennt in
PostToolUseVorgänge vom TypEdit|Writeund protokolliert Dateiänderungen inaudit.log
- Subagenten sind spezialisierte Agenten für fokussierte Teilaufgaben
- Der Hauptagent delegiert Aufgaben, und der Subagent gibt Ergebnisse zurück
- Custom Agents werden über Beschreibung, Prompt und zu verwendende Tools definiert
- Subagenten-Aufrufe erfolgen über das Tool
Agent; für eine automatische Freigabe mussAgentdaher inallowedToolsenthalten sein - Nachrichten im Kontext eines Subagenten enthalten das Feld
parent_tool_use_id, damit nachvollziehbar ist, zu welcher Subagenten-Ausführung sie gehören
- Über das Model Context Protocol (MCP) lassen sich externe Systeme wie Datenbanken, Browser und APIs anbinden
- Relevante Server findet man in der Liste der Model-Context-Protocol-Server
- Ein Beispiel bindet den Playwright MCP server an, um dem Agenten Browser-Automatisierung bereitzustellen
Berechtigungen und Session-Verwaltung
- Berechtigungseinstellungen beschränken, welche Tools ein Agent verwenden darf
- Sichere Aktionen können erlaubt, riskante Aktionen blockiert und für sensible Vorgänge Genehmigungen verlangt werden
- Ein Beispiel konfiguriert einen Read-only-Agenten, der nur
Read,GlobundGrepvorab freigibt, um Code zu analysieren, ohne ihn zu verändern
- Das Tool
AskUserQuestionund interaktive Genehmigungs-Prompts werden gemeinsam im Ablauf zur Verarbeitung von Nutzereingaben verwendet - Sessions erhalten Kontext über mehrere Interaktionen hinweg
- Claude merkt sich gelesene Dateien, durchgeführte Analysen und den Gesprächsverlauf
- Später kann dieselbe Session fortgesetzt oder per Fork ein anderer Ansatz erkundet werden
- Ein Beispiel ruft in der ersten Query eine
session_idab und führt in der zweiten Query mitresume=session_iddenselben Kontext fort
Unterstützung für Claude-Code-Einstellungen
- Das SDK unterstützt die dateisystembasierten Einstellungen von Claude Code
- Mit den Standardoptionen werden Einstellungen aus
.claude/im Arbeitsverzeichnis und aus~/.claude/geladen - Um die zu ladenden Einstellungsquellen einzuschränken, verwendet man in Python die Option
setting_sourcesund in TypeScriptsettingSources - Unterstützte Funktionen und Speicherorte sind
- Skills: Spezialisierte Funktionen, die Claude automatisch nutzt oder per
/nameaufruft,.claude/skills/*/SKILL.md - Commands: Custom Commands im Legacy-Format,
.claude/commands/*.md - Memory: Projektkontext und Anweisungen,
CLAUDE.mdoder.claude/CLAUDE.md - Plugins: Erweiterung um Skills, Agents, Hooks und MCP-Server, programmatische Konfiguration über die Option
plugins
- Skills: Spezialisierte Funktionen, die Claude automatisch nutzt oder per
Unterschiede zu anderen Claude-Tools
- Das Anthropic Client SDK bietet direkten API-Zugriff; Nutzer senden Prompts und implementieren die Tool-Ausführung selbst
- Im Agent SDK übernimmt Claude die Tool-Verarbeitung autonom
- Im Client SDK implementieren Nutzer die Tool-Schleife
- Das Agent SDK stellt Claude integrierte Tool-Ausführung bereit
- Auswahlkriterien nach Einsatzzweck
- Interaktive Entwicklung: CLI
- CI/CD-Pipelines: SDK
- Custom Applications: SDK
- Einmalige Aufgaben: CLI
- Produktionsautomatisierung: SDK
- Viele Teams nutzen im Alltag die CLI und in Produktion das SDK; Workflows lassen sich direkt zwischen beiden übertragen
- Managed Agents ist eine gehostete REST API, bei der Anthropic Agenten und Sandboxes ausführt
- Das Agent SDK ist eine Library, die die Agenten-Schleife im Nutzerprozess ausführt
- Ausführungsort: Beim Agent SDK sind es Nutzerprozess und Nutzerinfrastruktur, bei Managed Agents die von Anthropic verwaltete Infrastruktur
- Interface: Das Agent SDK ist eine Python- oder TypeScript-Library, Managed Agents eine REST API
- Arbeitsziel: Das Agent SDK arbeitet mit Dateien in der Nutzerinfrastruktur, Managed Agents mit sitzungsbezogenen verwalteten Sandboxes
- Session-Zustand: Beim Agent SDK als JSONL im Dateisystem, bei Managed Agents als von Anthropic gehostetes Event-Log
- Custom Tools: Beim Agent SDK sind es prozessinterne Python- oder TypeScript-Funktionen, bei Managed Agents triggert Claude Tools und Nutzer geben Ausführungsergebnisse zurück
- Geeignete Einsatzzwecke: Das Agent SDK eignet sich für lokales Prototyping und Agenten mit direktem Zugriff auf Dateisystem und Services; Managed Agents für Produktionsagenten ohne Betrieb eigener Sandbox- oder Session-Infrastruktur sowie für lang laufende, asynchrone Sessions
- Ein üblicher Weg besteht darin, zunächst mit dem Agent SDK lokal einen Prototyp zu bauen und ihn anschließend in Produktion auf Managed Agents zu übertragen
Changelog, Bug Reports und Branding
- SDK-Updates, Bugfixes und neue Funktionen findet man in den Changelogs der jeweiligen Repositories
- TypeScript SDK: CHANGELOG.md
- Python SDK: CHANGELOG.md
- Bugs oder Issues werden auf GitHub gemeldet
- TypeScript SDK: GitHub issues
- Python SDK: GitHub issues
- Wenn Partner das Claude Agent SDK integrieren, ist die Verwendung des Claude-Brandings optional
- Erlaubt: „Claude Agent“, „Claude“, „Powered by Claude“
- Verboten: „Claude Code“, „Claude Code Agent“, Claude-Code-ASCII-Art als Markenelement oder visuelle Elemente, die Claude Code nachahmen
- Produkte müssen ihr eigenes Branding beibehalten und dürfen nicht wie Claude Code oder Anthropic-Produkte wirken
- Für die Nutzung des Claude Agent SDK gelten die Anthropic’s Commercial Terms of Service
- Ausgenommen sind Fälle, in denen bestimmte Komponenten oder Abhängigkeiten in der LICENSE-Datei der jeweiligen Komponente eine andere Lizenz angeben
1 Kommentare
Meinungen auf Hacker News
Die Richtung, die Claude Code einschlägt, passt genau zu dem, was ich mir von agentischen Coding-Tools wünsche, und mir gefällt auch die Philosophie „wie ein Unix-Tool“.
Ich nutze es seit der frühen öffentlichen Preview, und die Richtung war erkennbar. Der ideale Endzustand eines Coding-Agenten wäre aus meiner Sicht, dass man ihm eine Feature-Anfrage wie ein Jira-Ticket gibt und er daraus einen PR erstellt, den man prüfen und zu dem man Feedback geben kann. In diesem Sinne sind auf lokale Editoren fokussierte Tools wie Cursor oder Windsurf fast eine Sackgasse, weil sie nicht in CI laufen können. Wenn man eine Codebase mit Regeln, MCP usw. auf AI ausrichtet, sollte man auf Technologien abzielen, die bis hin zur Headless-Nutzung führen können. Claude Code lässt sich über Tools leicht als Teil von Automatisierung einsetzen, daher ist es für mich inzwischen der Standard, wenn ich über Coding-Agenten nachdenke; das Codex-npm-Paket ist ähnlich. Allerdings helfe ich Unternehmen dabei, ihre Codebases für den Einsatz von Agenten vorzubereiten, daher kann ich eine Voreingenommenheit zugunsten leicht konfigurierbarer Tools haben.
Alles läuft über Gespräche, und in 99 % der Fälle muss ich die Tastatur nicht anfassen.
Stell dir vor, du müsstest jedes Mal bezahlen, wenn du im Terminal Befehle wie
ls,psoderkillausführst — das ergibt keinen Sinn. Bei LLMs ist es genauso. Ich meine nicht, dass proprietäre LLMs verboten werden sollten, aber die Hauptwerkzeuge der Hacker von früher sollten freie und Open-Source-Tools sein.Mit Claude habe ich es auch versucht, aber die Limits waren schnell aufgebraucht. Nur in etwa 25 % der Fälle war der PR direkt „bereit zum Mergen“, und oft ist es schneller, es einfach selbst richtig zu machen, statt herauszufinden, wo die AI es vermasselt hat.
Claude Code ist die Art, LLMs fürs Coding zu nutzen, die mir bisher am besten gefällt.
Was aber wirklich nötig wäre, ist eine Open-Source-Version, an die man jedes beliebige Modell übergeben und auch die Antworten mehrerer Modelle vergleichen kann. Aider und andere Alternativen fühlen sich nicht so angenehm an wie Claude Code. Aus Sicht von Anthropic wäre das natürlich unerwünscht, weil damit der Burggraben verschwindet, aber aus Verbrauchersicht will man einfach das beste Modell nutzen, ohne an ein bestimmtes Ökosystem gebunden zu sein. Wahrscheinlich ist genau das der Punkt, vor dem LLM-Modellanbieter am meisten Angst haben.
Im Moment ist es noch nicht so gut wie Claude Code, aber ich denke, es wird schnell aufholen. https://github.com/openai/codex/tree/main
Es ist noch in Entwicklung, sieht aber vielversprechend aus.
Aider unterstützt schon seit langer Zeit Python und Shell-Scripting [0].
Kürzlich habe ich im Zuge der Erweiterung um 130 neue Programmiersprachen auch einen Screencast erstellt, in dem spontanes Bash-Scripting mit Aider gezeigt wird [1]. Das kann ein Gefühl dafür geben, wie mächtig dieser Ansatz sein kann.
[0] https://aider.chat/docs/scripting.html
[1] https://aider.chat/docs/recordings/tree-sitter-language-pack...
Dann kann man mit einem Modell, dem man vertraut, über PRs, Tickets usw. Entwicklung von Anfang bis Ende durchführen.
Dass es sogar Commits erstellt, möchte ich nicht unbedingt; mir gefällt vor allem das Nutzungserlebnis von Claude Code.
Es sollte reichen, eine einzige Datei zum Repository hinzuzufügen, sodass man über Issues mit einem beliebigen Modell interagieren kann.
Das Claude-Code-Team hat das Thema ausführlicher behandelt: http://latent.space/p/claude-code
Man kann auch nur das Transkript überfliegen, aber mich persönlich haben vor allem diese Punkte beeindruckt: dass Anthropic-Mitarbeiter trotz unbegrenzter Claude-Nutzung im Schnitt nur etwa 6 US-Dollar pro Tag verbrauchen; dass sie headless Claude Code wie ein „Linux“-Utility sehen, das man überall in CI einsetzen kann; dass sie es als vom Nutzer erweiterbare Plattform betrachten; dass Sandboxing, Branching und Planungsfunktionen auf der künftigen Roadmap stehen; und dass sie Sonnet 3.7 als Modell für persistente Agenten sehen.
Mich würde interessieren, wie hoch P50, P75 und P95 der Ausgaben pro Mitarbeiter sind.
Für persönliche Projekte war mir das zu teuer, deshalb habe ich aufgehört, es zu verwenden.
Erstaunlich ist, dass über das letzte halbe Jahr oder sogar mehrere Jahre hinweg die Menge und der Wert der öffentlichen Arbeit weiter gewachsen sind, während gleichzeitig mehrere Unternehmen aufgebaut wurden. Ich hoffe, dass auch andere eine ähnliche Produktivitätskurve finden können. Es wird grob geteilt, was gut funktioniert, aber es ist nicht leicht zu reproduzieren. Mir fallen etwa simonw und gwern ein.
Wenn ich einen AI-Code-Assistenten bauen würde, wäre das Letzte, was ich tun würde, ihn an einen bestimmten Anbieter von Foundation Models zu binden.
Damit dieses Produkt erfolgreich ist, müsste man voraussetzen, dass die Modellleistung gerade ein Plateau erreicht hat, dass alle Foundation Models auf nahezu dieselbe Leistung und dieselben Fähigkeiten konvergieren und dass Integratoren ihre Wahl nur noch anhand kleiner Komfortvorteile wie vertrauter SDKs treffen.
Man kann es durch etwas anderes ersetzen oder einen Wrapper darum bauen. Hier gibt es nicht viel Komplexes.
Wir bauen etwas rund um AI-Code-Assistenten und waren gerade dabei, zuerst zu hacken, wie man Claude Code integriert. Es war das Erste, worauf wir aufsetzen wollten. Für Lock-in-Sorgen ist es zu früh; wir brauchen das Beste, also bauen wir nur um das Beste herum.
Claude Code ließ sich bereits im nicht-interaktiven Modus verwenden und konnte daher wie andere Unix-Command-Line-Utilities in andere Apps integriert werden.
Dieses SDK scheint derzeit nur die Nutzung über die Kommandozeile zu unterstützen; ist das dann nicht dasselbe wie das, was es schon gab? Ich verstehe nicht, was daran tatsächlich neu ist. Übersehe ich etwas?
Ich empfehle auch Codebuff (https://www.codebuff.com/). Das ist ein hervorragender CLI-Code-Assistent, ähnlich wie Claude Code, und kann viele Token-Kosten sparen.
Ich habe keine Verbindung zu dem Projekt, ich bin nur Nutzer.
In den Nutzungsbedingungen steht, dass man den Dienst nicht verwenden darf, „um Produkte oder Dienste zu entwickeln, die mit dem Service konkurrieren, um künstliche Intelligenz oder Machine-Learning-Algorithmen oder -Modelle zu entwickeln oder zu trainieren oder um den Service weiterzuverkaufen“.
Ich frage mich, was es überhaupt für Softwareprodukte oder -dienste gibt, die nicht mit allgemeiner Intelligenz konkurrieren. Wenn man Intelligenz verkauft und das streng auslegt, versieht man sie im Grunde mit einer Rechtsklausel, die sagt, man solle sie nirgendwo einsetzen. Ist das so vage, dass es nicht durchsetzbar ist? Wenn man sie nicht zum Wettbewerb mit allgemeiner Intelligenz verwenden darf, wie kann man dann die Outputs besitzen? Ist das nach dem Motto „Rechtsbedingungen interessieren sowieso niemanden“? Wenn es niemanden interessiert, warum dann ein pauschales Verbot für die Nutzung des Dienstes einbauen? Soll man für solche Ergebnisse auch noch die Verantwortung für eine Prozessniederlage akzeptieren? Ich habe zu viele Fragen.
Modell-Lock-in wäre ein großer Nachteil bei der Nutzung. Wenn jemand das neueste Modell mit der besten Performance herausbringt und man bereits in diese Infrastruktur investiert hat, sitzt man fest.
Selbst wenn es später geöffnet wird, könnte es sein, dass dieses Modell speziell auf diese CLI trainiert wurde und deshalb nicht gut funktioniert. Man muss sich nur Codex CLI ansehen: Man kann zwar Gemini 2.5 Pro verwenden, aber im Vergleich zu OpenAI-Modellen bleibt es häufiger zufällig hängen oder schlägt fehl.
Die neue GitHub Action ist genau das Feature, nach dem ich gesucht habe: https://docs.anthropic.com/en/docs/claude-code/github-action...
Allerdings scheint es keine Möglichkeit zu geben, sie mit dem Max-Plan von Claude Code zu nutzen. Aus meiner Sicht akzeptiert sie wohl nur einen API-Key.