[{"data":1,"prerenderedAt":708},["ShallowReactive",2],{"tool-openai-codex-cli-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":23,"sources":30,"cover":61,"og":62,"expertise":63,"locales":64,"lang":66,"title":68,"description":69,"coverAlt":70,"url":33,"pricing":71,"kind":9,"metaTitle":72,"takeaways":73,"faq":79,"toc":92,"blocks":123,"others":476},"openai-codex-cli","2026-08-31",11,"agents",[9,10,11,12,13],"Coding agent","Terminal","Sandbox","CI","Rust",[15,16,17,18,19,20,21,22],"openai codex cli","codex cli config.toml","codex exec CI","codex sandbox mode","codex vs claude code","codex cli review","codex cli pricing","AGENTS.md codex",[24,27],{"name":25,"url":26},"OpenAI Codex","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex",{"name":28,"url":29},"Model Context Protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_Context_Protocol",[31,34,37,40,43,46,49,52,55,58],{"title":32,"url":33},"Codex CLI documentation","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fcli",{"title":35,"url":36},"Codex: configuration","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fconfiguration",{"title":38,"url":39},"Codex: sample configuration","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fconfig-file\u002Fconfig-sample",{"title":41,"url":42},"Codex: permissions","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fpermission-modes",{"title":44,"url":45},"Codex: non-interactive mode","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fnon-interactive-mode",{"title":47,"url":48},"Codex: authentication","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fauth",{"title":50,"url":51},"Codex: Model Context Protocol","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fextend\u002Fmcp",{"title":53,"url":54},"Codex: pricing","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fpricing",{"title":56,"url":57},"Codex: open-source components","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fopen-source",{"title":59,"url":60},"Codex changelog","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fchangelog","\u002Fimages\u002Fblog\u002Fopenai-codex-cli\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fopenai-codex-cli\u002Fog.jpg","ai-engineer",[65,66,67],"en","de","hu","OpenAI Codex CLI: der Agent, der Rechte als Konfigurationsdatei behandelt","Codex CLI ist OpenAIs quelloffener Terminal-Agent fürs Programmieren. Wie Sandbox, Freigaberichtlinie und config.toml zu bewerten sind und was unbewachte CI-Läufe kosten.","Eine Terminalsitzung mit einem Prompt an das Modell, einem sandboxed Shell-Befehl und einer Freigabeabfrage, bevor der Befehl läuft.","Included with ChatGPT plans · API pay per token","Codex CLI: Rechte als Konfigurationsdatei · Balázs Csorba",[74,75,76,77,78],"Codex CLI steht unter Apache-2.0, der Kern ist in Rust geschrieben, und es gibt versionierte npm-Pakete. In CI lässt sich also eine Version pinnen, statt zur Laufzeit per curl zu laden.","Das Berechtigungsmodell besteht aus zwei unabhängigen Einstellungen, sandbox_mode und approval_policy. Wer eine Freigabe prüft, weitet die Sandbox nie aus.","codex exec läuft standardmäßig read-only, schreibt den Fortschritt nach stderr und nur die letzte Nachricht nach stdout. Das ist gefahrlos in eine Pipeline einhängbar.","Die CLI verlangt ein Git-Repository und startet außerhalb eines Repositories nicht, außer man setzt --skip-git-repo-check.","ChatGPT-Abo und API-Abrechnung sind verschiedene Buchhaltungssysteme: Das Abo zählt Nachrichten, die API zählt Tokens, und egymást számolni nem lehet.",[80,83,86,89],{"q":81,"a":82},"Ist Codex CLI quelloffen?","Ja. CLI, SDK und App-Server liegen im Repository openai\u002Fcodex unter der Apache-2.0-Lizenz. Die IDE-Erweiterung und Codex Cloud sind nicht quelloffen, die Security-CLI erscheint separat als openai\u002Fcodex-security.",{"q":84,"a":85},"Wie bringe ich Codex CLI in CI, ohne dass es etwas anfasst?","Nimm codex exec. Es läuft in einer read-only Sandbox, sofern du nicht --sandbox workspace-write setzt. Der Fortschritt geht nach stderr, die letzte Agentennachricht nach stdout, eine Pipeline kann die Antwort also greifen, ohne Fortschrittszeilen zu parsen. Ein API-Key ist in CI das richtige Credential, weil die API pro Token abrechnet.",{"q":87,"a":88},"Worin unterscheiden sich sandbox_mode und approval_policy?","sandbox_mode legt die Grenze fest: read-only, workspace-write oder danger-full-access. approval_policy legt fest, wann der Agent pausiert: on-request, never oder eine granulare Tabelle. Sie sind getrennt, und der Wechsel des Prüfers von user auf auto_review lässt die Sandboxgrenze unverändert.",{"q":90,"a":91},"Funktioniert Codex CLI ohne Git-Repository?","Nicht standardmäßig. Die CLI verlangt, dass Befehle in einem Git-Repository laufen, damit keine destruktiven Änderungen entstehen, und codex exec startet sonst nicht. --skip-git-repo-check hebt das auf, was nur in einem Container sinnvoll ist, den man ohnehin selbst kontrolliert.",[93,96,99,102,105,108,111,114,117,120],{"id":94,"title":95},"what-it-is","Was es ist",{"id":97,"title":98},"how-it-works","Wie es funktioniert",{"id":100,"title":101},"getting-started","Erste Schritte",{"id":103,"title":104},"permissions","Sandbox und Freigaben",{"id":106,"title":107},"automation","Automatisierung und codex exec",{"id":109,"title":110},"mcp-support","MCP und Projektkontext",{"id":112,"title":113},"cost","Kosten und Limits",{"id":115,"title":116},"where-it-shingles","Wo es zu kurz kommt",{"id":118,"title":119},"verdict","Urteil",{"id":121,"title":122},"sources","Quellen",[124,128,136,139,142,176,177,180,189,192,193,196,198,220,221,232,234,280,283,294,295,301,303,314,332,333,336,338,341,342,345,352,353,356,407,410,411,414,427,442,443],{"type":125,"content":126},"paragraph",[127],"OpenAI Codex CLI ist ein Terminal-Agent fürs Programmieren: Er liest ein Repository, ändert Dateien, führt die Kommandos des Projekts aus und iteriert, bis die Aufgabe erledigt ist. Interessant ist nicht die Agentenschleife, die mehrere Wettbewerber ebenfalls haben. Interessant ist, dass das Sicherheitsmodell als zwei Einstellungen in einer TOML-Datei ausgedrückt wird, die ein Team committen, reviewen und pinnen kann, statt als Prompt oder als Kontoregel, die der Anbieter serverseitig durchsetzt.",{"type":125,"content":129},[130,131,135],"Das macht es zum am besten steuerbaren Coding-Agent seiner Kategorie, und zugleich zu dem, in dem Konfigurationsfehler am teuersten sind. Denn ein committetes ",{"tag":132,"children":133},"code",[134],"sandbox_mode = \"danger-full-access\""," ist eine Richtlinie, die ohne Review in Produktion geht. Alles Weitere ist eine Bewertung, wie gut dieser Kompromiss trägt.",{"type":137,"level":138,"id":94,"text":95},"heading",2,{"type":125,"content":140},[141],"Die CLI wird als versionierte npm-Pakete ausgeliefert, aktuell 0.160.1, das Repository steht unter Apache-2.0 mit einem Rust-Kern. Sie ist eine Oberfläche eines breiteren Codex-Produkts, zu dem außerdem die ChatGPT-Desktop-App, eine IDE-Erweiterung und ein Cloud-Runner gehören. Die CLI ist der Teil, der auf einem Entwicklerrechner läuft, und der einzige, der quelloffen ist.",{"type":143,"ordered":144,"items":145},"list",false,[146,152,162,164,174],[147,148,151],"Apache-2.0, Rust-Kern, npm-Paket ",{"tag":132,"children":149},[150],"@openai\u002Fcodex"," sowie ein eigenständiges Installationsskript.",[153,154,157,158,161],"Die Konfiguration liegt in ",{"tag":132,"children":155},[156],"~\u002F.codex\u002Fconfig.toml"," und lässt sich pro Projekt über ",{"tag":132,"children":159},[160],".codex\u002Fconfig.toml"," eingrenzen.",[163],"Zwei getrennte Anmeldewege: ChatGPT-Abonnement oder API-Key, mit unterschiedlichen Limits und unterschiedlicher Abrechnung.",[165,166,169,170,173],"Lokale Arbeit braucht ein Git-Repository; ",{"tag":132,"children":167},[168],"codex exec"," erzwingt dieselbe Regel und bietet ",{"tag":132,"children":171},[172],"--skip-git-repo-check",".",[175],"MCP-Server werden in derselben Konfigurationsdatei definiert und mit IDE-Erweiterung und Desktop-App auf demselben Host geteilt.",{"type":137,"level":138,"id":97,"text":98},{"type":125,"content":178},[179],"Der Turn-Ablauf ist der bekannte: Ein Prompt plus Repository-Kontext gehen ans Modell, das Modell erzeugt Tool-Calls, die CLI führt sie in einer Sandbox aus, und die Ergebnisse kommen als Tool-Output für den nächsten Turn zurück. Anders als bei einem Shell-Wrapper sind Sandbox und Freigabeprüfung zwei getrennte Tore, und beide sind konfiguriert, nicht interaktiv erfragt.",{"type":181,"attrs":182,"inner":186,"caption":187},"diagram",{"viewBox":183,"role":184,"aria-labelledby":185},"0 0 720 320","img","cx-t cx-d","\u003Ctitle id=\"cx-t\">One Codex turn, with the sandbox and the approval gate\u003C\u002Ftitle>\u003Cdesc id=\"cx-d\">The prompt and the AGENTS.md instructions go to the model. The model emits a tool call. The sandbox decides whether the call touches only the workspace, and the approval policy decides whether it pauses for the user first. If the call runs, its output returns to the model and the loop continues.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"ah-cx\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\">\u003Cpath d=\"M0 0L10 5L0 10z\" class=\"d-head\" \u002F>\u003C\u002Fmarker>\u003C\u002Fdefs>\u003Crect x=\"20\" y=\"110\" width=\"160\" height=\"72\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"100\" y=\"140\" text-anchor=\"middle\" class=\"d-text\">prompt\u003C\u002Ftext>\u003Ctext x=\"100\" y=\"162\" text-anchor=\"middle\" class=\"d-small\">task, AGENTS.md\u003C\u002Ftext>\u003Crect x=\"250\" y=\"110\" width=\"170\" height=\"72\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"335\" y=\"140\" text-anchor=\"middle\" class=\"d-text\">model\u003C\u002Ftext>\u003Ctext x=\"335\" y=\"162\" text-anchor=\"middle\" class=\"d-small\">tool call\u003C\u002Ftext>\u003Crect x=\"520\" y=\"30\" width=\"170\" height=\"72\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"605\" y=\"60\" text-anchor=\"middle\" class=\"d-text\">sandbox\u003C\u002Ftext>\u003Ctext x=\"605\" y=\"82\" text-anchor=\"middle\" class=\"d-small\">workspace-write\u003C\u002Ftext>\u003Crect x=\"520\" y=\"190\" width=\"170\" height=\"72\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"605\" y=\"220\" text-anchor=\"middle\" class=\"d-text\">host\u003C\u002Ftext>\u003Ctext x=\"605\" y=\"242\" text-anchor=\"middle\" class=\"d-small\">files, git, commands\u003C\u002Ftext>\u003Crect x=\"250\" y=\"210\" width=\"170\" height=\"72\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"335\" y=\"240\" text-anchor=\"middle\" class=\"d-text\">approval\u003C\u002Ftext>\u003Ctext x=\"335\" y=\"262\" text-anchor=\"middle\" class=\"d-small\">on-request\u003C\u002Ftext>\u003Cpath d=\"M180 146H248\" class=\"d-line\" marker-end=\"url(#ah-cx)\" \u002F>\u003Ctext x=\"214\" y=\"136\" text-anchor=\"middle\" class=\"d-label\">1 send\u003C\u002Ftext>\u003Cpath d=\"M335 110V66H518\" class=\"d-line\" marker-end=\"url(#ah-cx)\" \u002F>\u003Ctext x=\"430\" y=\"56\" text-anchor=\"middle\" class=\"d-label\">2 call\u003C\u002Ftext>\u003Cpath d=\"M605 102V188\" class=\"d-line-accent\" marker-end=\"url(#ah-cx)\" \u002F>\u003Ctext x=\"624\" y=\"150\" class=\"d-label\">3 allowed\u003C\u002Ftext>\u003Cpath d=\"M520 226H422\" class=\"d-line\" marker-end=\"url(#ah-cx)\" \u002F>\u003Ctext x=\"470\" y=\"216\" text-anchor=\"middle\" class=\"d-label\">4 output\u003C\u002Ftext>\u003Cpath d=\"M335 210V184\" class=\"d-line\" marker-end=\"url(#ah-cx)\" \u002F>\u003Ctext x=\"350\" y=\"200\" class=\"d-label\">5 next turn\u003C\u002Ftext>",[188],"Sandbox und Freigabeprüfung sind getrennt. Die eine zu erweitern erweitert die andere nicht.",{"type":125,"content":190},[191],"Die Schleife ist nicht das Produkt, auch wenn sie interessant klingt. Was ein Team tatsächlich konfiguriert, ist die Grenze um sie herum, und die Dokumentation betont ungewöhnlich deutlich, dass beide orthogonal zueinander stehen. Ein Lauf mit Full access bearbeitet jede Datei auf dem Rechner und führt Befehle mit Netzwerk ohne Nachfrage aus, und die Doku beschreibt das als erheblich erhöhtes Risiko von Datenverlust und Leaks, statt es zu verstecken.",{"type":137,"level":138,"id":100,"text":101},{"type":125,"content":194},[195],"Installieren, anmelden, starten. Beim ersten Start bietet die CLI Sign in with ChatGPT oder einen API-Key an, und die Wahl wirkt später, weil sie entscheidet, welche Limits gelten und in welchem Abrechnungsmodus du arbeitest.",{"type":132,"code":197},"# Install on macOS or Linux; npm and Homebrew are also supported.\ncurl -fsSL https:\u002F\u002Fchatgpt.com\u002Fcodex\u002Finstall.sh | sh\n\n# Run inside a project directory, then sign in.\ncodex\n\n# Pin the version in CI instead of tracking latest.\nnpm install -g @openai\u002Fcodex@0.160.1\n\n# The first prompt is a good place for \u002Finit, which writes AGENTS.md.\n# \u002Fstatus, \u002Fmodel, \u002Fpermissions and \u002Freview are the other useful commands.",{"type":125,"content":199},[200,201,204,205,208,209,212,213,215,216,219],"",{"tag":132,"children":202},[203],"AGENTS.md"," ist die dauerhafte Instruktionsdatei. Die CLI liest eine globale ",{"tag":132,"children":206},[207],"~\u002F.codex\u002FAGENTS.md"," und geht danach vom Projektwurzelverzeichnis bis zum aktuellen Verzeichnis, eine Datei pro Ebene, wobei ",{"tag":132,"children":210},[211],"AGENTS.override.md"," über ",{"tag":132,"children":214},[203]," gewinnt. Die Gesamtlänge ist über ",{"tag":132,"children":217},[218],"project_doc_max_bytes"," begrenzt, standardmäßig 32 KiB. Für ein Team ist diese Datei das Wertvollste, was man schreiben kann, weil sie der Teil des Agentenverhaltens ist, der durch ein Code-Review geht.",{"type":137,"level":138,"id":103,"text":104},{"type":125,"content":222},[223,224,227,228,231],"Dieser Teil lohnt zweimaliges Lesen. Die Sandbox ist die Grenze, die Freigaberichtlinie ist die Pause. Der Standard, Ask for approval, ist ",{"tag":132,"children":225},[226],"sandbox_mode = \"workspace-write\""," mit ",{"tag":132,"children":229},[230],"approval_policy = \"on-request\""," und menschlichem Prüfer. Die Doku weist darauf hin, dass der Wechsel des Prüfers auf auto_review die Sandbox nicht erweitert. Das ist das richtige Design und zugleich der Detailpunkt, den die meisten Werkzeuge falsch machen.",{"type":132,"code":233},"# ~\u002F.codex\u002Fconfig.toml\nmodel = \"gpt-6.1-sol\"\nmodel_reasoning_effort = \"medium\"\n\n# Boundary: read-only | workspace-write | danger-full-access\nsandbox_mode = \"read-only\"\n\n# Pausing: on-request | never | granular table\napproval_policy = \"on-request\"\n\n# Reviewer: user | auto_review\napprovals_reviewer = \"user\"\n\n# Extra roots and network, only used when sandbox_mode = workspace-write\n[sandbox_workspace_write]\nwritable_roots = [\"~\u002Fcode\"]\nnetwork_access = false",{"type":235,"head":236,"rows":243},"table",[237,239,241],[238],"Einstellung",[240],"Werte",[242],"Wirkung",[244,253,262,271],[245,249,251],[246],{"tag":132,"children":247},[248],"sandbox_mode",[250],"read-only, workspace-write, danger-full-access",[252],"Welche Dateien und welches Netzwerk der Agent erreicht. Standard read-only.",[254,258,260],[255],{"tag":132,"children":256},[257],"approval_policy",[259],"on-request, never, granular",[261],"Wann der Agent pausiert. Standard on-request.",[263,267,269],[264],{"tag":132,"children":265},[266],"approvals_reviewer",[268],"user, auto_review",[270],"Wer eine Anfrage beantwortet. Ändert die Sandbox nicht.",[272,276,278],[273],{"tag":132,"children":274},[275],"\u002Fpermissions",[277],"Ask for approval, Approve for me, Full access",[279],"Interaktive Presets über denselben beiden Einstellungen.",{"type":125,"content":281},[282],"Die Konfigurationsdatei geht deutlich tiefer. Es gibt einen Netzwerk-Proxy mit Allow- und Deny-Regeln pro Domain, eine Shell-Umgebungsrichtlinie, die Variablen mit Namen wie Keys oder Tokens filtert, schreibbare Wurzeln und Hooks, die vor einem Tool-Aufruf laufen. Das ist viel Oberfläche, und der Versuchung, alles zu konfigurieren, sollte man widerstehen. Jeder Regler ist eine Entscheidung, die jemand für andere treffen muss.",{"type":284,"variant":285,"title":286,"body":287},"callout","warn","Kein Full Access auf einem geteilten Runner",[288],[289,290,293],"Die Doku beschreibt Full access als erheblich erhöhtes Risiko von Datenverlust und Leaks und betont, dass ",{"tag":132,"children":291},[292],"danger-full-access"," für kontrollierte Umgebungen gedacht ist, etwa einen isolierten CI-Runner oder einen Container. Ein gehosteter Runner mit Schreibrechten und ein Agent im Full Access ist eine unbegrenzte Schleife mit deinen Zugangsdaten darin.",{"type":137,"level":138,"id":106,"text":107},{"type":125,"content":296},[297,298,300],"Der nicht-interaktive Modus ist der Grund, diese CLI einer chatgetriebenen Agentenlösung vorzuziehen. ",{"tag":132,"children":299},[168]," läuft standardmäßig in einer read-only Sandbox, schreibt den Fortschritt nach stderr, druckt nur die letzte Nachricht nach stdout und startet außerhalb eines Git-Repositories nicht. Diese letzte Regel ist eine Bremse gegen einen Agenten, der ein Verzeichnis umschreibt, für das er keinen Diff zeigen kann.",{"type":132,"code":302},"# Progress on stderr, final message on stdout: safe to pipe.\ncodex exec \"summarise the repository structure\" | tee summary.md\n\n# Machine-readable: one JSON object per event.\ncodex exec --json \"triage the open bug reports\" | jq\n\n# Escalate the sandbox explicitly, never implicitly.\ncodex exec --sandbox workspace-write \"add a regression test and run it\"\n\n# Structured final answer against a schema, written to a file.\ncodex exec \"extract project metadata\" \\\n  --output-schema .\u002Fschema.json -o .\u002Fmetadata.json",{"type":125,"content":304},[305,306,309,310,313],"Zwei Details machen das produktionsreif. Mit ",{"tag":132,"children":307},[308],"--json"," trägt der Ereignisstrom die Nutzung einschließlich gecachter Eingabetokens, eine Pipeline kann Kosten also pro Lauf statt pro Monat zuordnen. Und ein MCP-Server mit ",{"tag":132,"children":311},[312],"required = true"," lässt den Start scheitern, statt still weiterzulaufen. Das ist der Unterschied zwischen einem kaputten CI-Lauf und einem unauffällig falschen.",{"type":284,"variant":315,"title":316,"body":317},"note","Zugangsdaten in CI",[318],[319,320,323,324,327,328,331],"Die Dokumentation rät davon ab, ",{"tag":132,"children":321},[322],"OPENAI_API_KEY"," oder ",{"tag":132,"children":325},[326],"CODEX_API_KEY"," als Job-Umgebungsvariable in Workflows zu setzen, die Repository-Code auschecken oder ausführen, denn Build-Skripte und Lifecycle-Hooks im selben Job können sie auslesen. Scope den Key auf den einzelnen Aufruf oder nutze die Workflow-Action ",{"tag":132,"children":329},[330],"openai\u002Fcodex-action",", die genau dafür da ist.",{"type":137,"level":138,"id":109,"text":110},{"type":125,"content":334},[335],"MCP-Server stehen in derselben Konfigurationsdatei und werden zwischen CLI, IDE-Erweiterung und Desktop-App auf demselben Host geteilt. Unterstützt sind stdio und Streamable HTTP, OAuth inklusive Dynamic Client Registration.",{"type":132,"code":337},"[mcp_servers.docs]\ncommand = \"npx\"\nargs = [\"-y\", \"@upstash\u002Fcontext7-mcp\"]\nenv_vars = [\"CONTEXT7_TOKEN\"]\nrequired = true          # fail startup instead of running without it\nenabled_tools = [\"search\", \"summarize\"]\ndefault_tools_approval_mode = \"prompt\"\ntool_timeout_sec = 45",{"type":125,"content":339},[340],"MCP kostet Kontext, und die Preisdokumentation sagt das deutlich: Jeder Server vergrößert die Nachricht und verbraucht mehr vom Kontingent. Ein vernünftiges Team lässt zwei oder drei aktiv, deaktiviert den Rest und behandelt die Serverliste als Teil des Budgets pro Turn statt als Bequemkeitsliste.",{"type":137,"level":138,"id":112,"text":113},{"type":125,"content":343},[344],"Zwei Abrechnungssysteme teilen sich dieselbe Binärdatei, und sie sind nicht vergleichbar. Ein ChatGPT-Abo zählt Nachrichten in Fünf-Stunden-Fenstern, und die veröffentlichten Zahlen sind Schätzungen, keine Obergrenzen: rund 15 bis 160 lokale Nachrichten je fünf Stunden im Plus-Tarif für die mittleren Modelle, gegenüber 350 bis 3.000 beim günstigsten. Ein API-Key zählt Tokens zu veröffentlichten Raten, und das macht ihn zum richtigen Credential für Automatisierung.",{"type":125,"content":346},[347,348,351],"Der praktische Rat ist kurz. Nimm das Abo für interaktive Arbeit, bei der ein Mensch da ist und bemerkt, wenn das Kontingent knapp wird, und den API-Key für alles Unbemannte, weil nur dort eine vorhersagbare Position pro Lauf entsteht. Der Befehl ",{"tag":132,"children":349},[350],"\u002Fstatus"," zeigt die verbleibende Kapazität in der Sitzung, und die Doku stellt klar, dass allein die Promptlänge kein verlässlicher Prädiktor für den Verbrauch einer Aufgabe ist.",{"type":137,"level":138,"id":115,"text":116},{"type":125,"content":354},[355],"Drei Probleme, sortiert nach ihrer Tragweite. Erstens ist die Konfigurationsoberfläche riesig für ein Werkzeug, dessen Kernschleife unspektakulär ist, und es gibt keine Möglichkeit, es mit absichtlich kleiner Konfiguration zu betreiben, die man in einem Durchgang prüfen kann. Zweitens ändert sich das Produkt um die CLI schnell: Modelle werden zu festen Terminen abgekündigt, mehrere wurden innerhalb eines Jahres stillgelegt, und ein committeter Modellname in einer Config oder einem CI-Skript wird zur Last. Drittens meldet der Review-Befehl Funde, ohne den Arbeitsbaum zu ändern. Das ist das richtige Verhalten und deutlich weniger nützlich als die Varianten, die ihre Funde gleich beheben.",{"type":235,"head":357,"rows":365},[358,359,361,363],[200],[360],"Codex CLI",[362],"Claude Code",[364],"Cline CLI",[366,380,389,398],[367,369,372,376],[368],"Nicht-interaktiver Einstieg",[370],{"tag":132,"children":371},[168],[373],{"tag":132,"children":374},[375],"claude -p",[377],{"tag":132,"children":378},[379],"cline --json",[381,383,385,387],[382],"Maschinenlesbare Ausgabe",[384],"JSONL-Ereignisse, JSON-Schema-Ausgabe",[386],"JSON oder stream-json, --json-schema",[388],"Newline-getrennte Nachrichten",[390,392,394,396],[391],"Automatisierungsstandard",[393],"read-only Sandbox",[395],"Bare Mode überspringt lokale Konfiguration",[397],"auto-approve true",[399,401,403,405],[400],"Konfiguration",[402],"Eine TOML-Datei, clientübergreifend geteilt",[404],"Settings-Dateien, MCP-Konfiguration, Hooks",[406],"Konfigurationsansicht und CLI-Flags",{"type":125,"content":408},[409],"Der Vergleich ist so knapp, dass der entscheidende Faktor selten der Agent selbst ist. Es ist, wie eure Berechtigungsgeschichte bereits aussieht. Wenn im Team bereits eine committete Agent-Konfiguration im Review liegt, passt Codex. Wenn nicht, ist die Stärke der CLI eine Last, bis jemand diese Datei schreibt.",{"type":137,"level":138,"id":118,"text":119},{"type":125,"content":412},[413],"Codex CLI ist die stärkste Wahl für Teams, die einen Coding-Agenten wollen, dessen Verhalten ein reviewbares Artefakt ist. Die Trennung von Sandbox und Freigabe ist gut durchdacht, der read-only-Standard für die Automatisierung ist der richtige Standard, und Apache-2.0 heißt, dass die Konfiguration vendored und gepinnt werden kann. Für eine einzelne Person, die einen Agenten ausprobieren will, bevor sie eine Richtlinie schreibt, ist es die schwächere Wahl.",{"type":143,"ordered":415,"items":416},true,[417,419,421,423,425],[418],"Nimm es, wenn die Rechte des Agenten in einer Datei liegen sollen, die durch ein Code-Review geht, und pinne in CI die npm-Version.",[420],"Nutze für alles Unbemannte einen API-Key. Eine Abrechnung über Abo-Credits verträgt sich nicht mit einem geplanten Job.",[422],"Schreibe AGENTS.md, bevor du irgendetwas anderes einstellst. Es verändert das Verhalten stärker als jede Flag in der config.toml.",[424],"Lass sandbox_mode für die Automatisierung auf workspace-write und reserviere danger-full-access für einen Container, den du kontrollierst.",[426],"Lass es weg, wenn du über ein Jahr eine stabile Modellkennung brauchst. Die Abkündigungstakte ist schneller, als die meisten Teams verkraften.",{"type":284,"variant":428,"title":429,"body":430},"tip","Fang kleiner an, als die Doku nahelegt",[431],[432,433,435,436,438,439,441],"Die wertvolle Konfiguration für die meisten Repositories sind vier Zeilen: ein Modell, ",{"tag":132,"children":434},[226],", ",{"tag":132,"children":437},[230]," und eine ",{"tag":132,"children":440},[203]," mit dem Testbefehl darin. Alles andere kann warten, bis ein konkretes Problem auftaucht.",{"type":137,"level":138,"id":121,"text":122},{"type":143,"ordered":415,"items":444},[445,449,452,455,458,461,464,467,470,473],[446],{"tag":447,"href":33,"children":448},"a",[32],[450],{"tag":447,"href":36,"children":451},[35],[453],{"tag":447,"href":39,"children":454},[38],[456],{"tag":447,"href":42,"children":457},[41],[459],{"tag":447,"href":45,"children":460},[44],[462],{"tag":447,"href":48,"children":463},[47],[465],{"tag":447,"href":51,"children":466},[50],[468],{"tag":447,"href":54,"children":469},[53],[471],{"tag":447,"href":57,"children":472},[56],[474],{"tag":447,"href":60,"children":475},[59],[477,540,588,654],{"slug":478,"published":479,"minutes":480,"category":7,"tags":481,"keywords":486,"about":493,"sources":495,"cover":532,"og":533,"expertise":63,"locales":534,"lang":66,"title":535,"description":536,"coverAlt":537,"url":498,"pricing":538,"kind":539},"mcp-reference-servers","2026-09-25",9,[482,483,484,485],"MCP","Reference servers","Tool protocol","Server SDKs",[487,488,489,490,491,492],"mcp reference servers","modelcontextprotocol servers github","write an mcp server","mcp server examples","mcp server sdk","mcp server security",[494],{"name":28,"url":29},[496,499,502,505,508,511,514,517,520,523,526,529],{"title":497,"url":498},"MCP reference servers repository","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers",{"title":500,"url":501},"Repository README and server list","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FREADME.md",{"title":503,"url":504},"Security policy","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FSECURITY.md",{"title":506,"url":507},"Release process and trusted publishing","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FRELEASING.md",{"title":509,"url":510},"Filesystem server README","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002Fsrc\u002Ffilesystem\u002FREADME.md",{"title":512,"url":513},"Everything server feature list","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002Fsrc\u002Feverything\u002Fdocs\u002Ffeatures.md",{"title":515,"url":516},"MCP Registry","https:\u002F\u002Fregistry.modelcontextprotocol.io\u002F",{"title":518,"url":519},"Archived reference servers","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers-archived",{"title":521,"url":522},"Model Context Protocol documentation","https:\u002F\u002Fmodelcontextprotocol.io\u002F",{"title":524,"url":525},"TypeScript MCP SDK","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Ftypescript-sdk",{"title":527,"url":528},"Python MCP SDK","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fpython-sdk",{"title":530,"url":531},"FastMCP on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Ffastmcp\u002F","\u002Fimages\u002Fblog\u002Fmcp-reference-servers\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fmcp-reference-servers\u002Fog.jpg",[65,66,67],"MCP-Referenzserver: was sie zeigen und was sie auslassen","Ein Review von modelcontextprotocol\u002Fservers: sieben Referenzserver, was jeder einzelne lehrt, die SDK-Versionen dahinter und warum keiner in die Produktion gehört.","Sieben Referenzserver, die von einem einzigen MCP-Client über Stdio ausgefächert werden","MIT","Protocol tooling",{"slug":541,"published":542,"minutes":543,"category":7,"tags":544,"keywords":548,"about":556,"sources":563,"cover":580,"og":581,"expertise":63,"locales":582,"lang":66,"title":583,"description":584,"coverAlt":585,"url":586,"pricing":587,"kind":9},"aider","2026-09-23",10,[9,10,545,546,547],"Git workflow","BYO key","Open source",[541,549,550,551,552,553,554,555],"aider vs claude code","aider polyglot benchmark","ai pair programming terminal","aider leaderboard","open source coding agent","aider architect mode","aider install",[557,560],{"name":558,"url":559},"Aider","https:\u002F\u002Faider.chat\u002F",{"name":561,"url":562},"Aider on GitHub","https:\u002F\u002Fgithub.com\u002FAider-AI\u002Faider",[564,566,569,572,575,577],{"title":565,"url":559},"Aider website",{"title":567,"url":568},"Aider LLM leaderboards","https:\u002F\u002Faider.chat\u002Fdocs\u002Fleaderboards\u002F",{"title":570,"url":571},"Aider linting and testing","https:\u002F\u002Faider.chat\u002Fdocs\u002Fusage\u002Flint-test.html",{"title":573,"url":574},"Aider token limits","https:\u002F\u002Faider.chat\u002Fdocs\u002Ftroubleshooting\u002Ftoken-limits.html",{"title":576,"url":562},"Aider repository on GitHub",{"title":578,"url":579},"aider-chat on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Faider-chat\u002F","\u002Fimages\u002Fblog\u002Faider\u002Fcover.webp","\u002Fimages\u002Fblog\u002Faider\u002Fog.jpg",[65,66,67],"Aider im Test: Pair Programming im Terminal, git zuerst","Ein Test von Aider 0.86.2, ein Apache-2.0-Terminal-Pair-Programmierer mit ehrlichem Benchmark — und ohne Release seit acht Monaten.","Coverbild für den Aider-Test: eine Terminalsitzung, die aus einer einzigen Anfrage eine Reihe von git Commits macht","https:\u002F\u002Faider.chat","Free · BYO API key",{"slug":589,"published":590,"minutes":543,"category":7,"tags":591,"keywords":596,"about":605,"sources":615,"cover":646,"og":647,"expertise":63,"locales":648,"lang":66,"title":649,"description":650,"coverAlt":651,"url":618,"pricing":652,"kind":653},"openai-agents-sdk","2026-09-11",[592,593,594,482,595],"Agent runtime","Tracing","Guardrails","Python",[597,598,599,600,601,602,603,604],"openai agents sdk","openai agents sdk vs langgraph","python agent framework comparison","openai agents sdk guardrails","agent run tracing tool calls","openai agents sdk human in the loop","openai-agents pypi","agents sdk vs responses api",[606,609,612],{"name":607,"url":608},"Model context protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_context_protocol",{"name":610,"url":611},"Software framework","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_framework",{"name":613,"url":614},"Agentic AI","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAgentic_AI",[616,619,622,625,628,631,634,637,640,643],{"title":617,"url":618},"OpenAI Agents SDK documentation: Intro, and Agents SDK or Responses API","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002F",{"title":620,"url":621},"OpenAI Agents SDK documentation: Running agents","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Frunning_agents\u002F",{"title":623,"url":624},"OpenAI Agents SDK documentation: Guardrails","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fguardrails\u002F",{"title":626,"url":627},"OpenAI Agents SDK documentation: Human-in-the-loop","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fhuman_in_the_loop\u002F",{"title":629,"url":630},"OpenAI Agents SDK documentation: Tracing","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Ftracing\u002F",{"title":632,"url":633},"OpenAI Agents SDK documentation: Configuration","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fconfig\u002F",{"title":635,"url":636},"openai-agents 0.23.1 on PyPI, release history and licence","https:\u002F\u002Fpypi.org\u002Fproject\u002Fopenai-agents\u002F",{"title":638,"url":639},"OpenAI: The next evolution of the Agents SDK (15 April 2026)","https:\u002F\u002Fopenai.com\u002Findex\u002Fthe-next-evolution-of-the-agents-sdk\u002F",{"title":641,"url":642},"OpenAI API documentation: Agents, comparison of the three runtimes","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents",{"title":644,"url":645},"Arize: AI agent frameworks compared (1 October 2026)","https:\u002F\u002Farize.com\u002Fai-agents\u002Fagent-frameworks\u002F","\u002Fimages\u002Fblog\u002Fopenai-agents-sdk\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fopenai-agents-sdk\u002Fog.jpg",[65,66,67],"OpenAI Agents SDK: eine schlanke Agent-Runtime mit scharfen Kanten","Eine Bewertung des OpenAI Agents SDK: Runner-Schleife, Tracing, Guardrails und Approvals, plus was Release-Tempo und die Responses-only-Funktionen kosten.","Diagramm der Runner-Schleife im Agents SDK: Eingabe, Agent, Modellaufruf, Endausgabe, Guardrails und Tool-Aufrufe, die zurück in die Eingabe laufen","MIT · API pay per token","Agent framework",{"slug":655,"published":656,"minutes":480,"category":7,"tags":657,"keywords":662,"about":669,"sources":679,"cover":700,"og":701,"expertise":63,"locales":702,"lang":66,"title":703,"description":704,"coverAlt":705,"url":706,"pricing":707,"kind":9},"openhands","2026-09-09",[9,658,659,660,661],"Sandboxed execution","Automations","Self-hosted","MIT licence",[655,663,664,665,666,667,553,668],"openhands self-host","open hands coding agent","openhands vs claude code","agent canvas","openhands docker sandbox","openhands cloud pricing",[670,673,676],{"name":671,"url":672},"OpenHands","https:\u002F\u002Fwww.openhands.dev",{"name":674,"url":675},"OpenHands on GitHub","https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands",{"name":677,"url":678},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",[680,682,685,688,691,694,697],{"title":681,"url":675},"OpenHands README",{"title":683,"url":684},"OpenHands licence (MIT)","https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands\u002Fblob\u002Fmain\u002FLICENSE",{"title":686,"url":687},"Agent Canvas 1.25.0 release notes","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Fagent-canvas\u002Frelease-notes\u002Fv1.25.0.md",{"title":689,"url":690},"OpenHands sandbox overview","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Fsandboxes\u002Foverview.md",{"title":692,"url":693},"OpenHands quick start","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Finstallation",{"title":695,"url":696},"OpenHands pricing","https:\u002F\u002Fwww.openhands.dev\u002Fpricing",{"title":698,"url":699},"Introducing the OpenHands Index","https:\u002F\u002Fwww.openhands.dev\u002Fblog\u002Fintroducing-the-openhands-index","\u002Fimages\u002Fblog\u002Fopenhands\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fopenhands\u002Fog.jpg",[65,66,67],"OpenHands: der Open-Source-Coding-Agent im Eigenbetrieb","OpenHands 1.25.0 ist eine MIT-lizenzierte Coding-Agent-Plattform mit Web-Canvas, CLI, sandboxierter Ausführung und geplanten Automatisierungen. Ein Review der Stärken und der Betriebskosten.","Covermotiv zum OpenHands-Review: eine Schleife von Aufgabe über Agent und Sandbox zurück","https:\u002F\u002Fgithub.com\u002FAll-Hands-AI\u002FOpenHands","Free · self-host",1791383550600]