Ein KI-Agent liest keine grafische Benutzeroberfläche (GUI). Er führt Befehle aus, liest stdout, prüft den Exit-Code und entscheidet anhand dieser Signale über den nächsten Schritt. Damit diese Schleife zuverlässig funktioniert, müssen die aufgerufenen CLIs vorhersehbar sein: keine dekorativen Tabellen, keine Bestätigungsfragen wie „Sind Sie sicher? (j/n)“ und kein Exit-Code 0, wenn die eigentliche Operation fehlgeschlagen ist.
Apidog noch heute ausprobieren
Die entscheidende Frage ist daher nicht: „Welche CLI kann am meisten?“ Sondern: „Welche CLI lässt sich zuverlässig von einem Agenten steuern?“ In der Praxis heißt das:
- strukturierte Ausgabe, idealerweise JSON oder JSONL,
- ein nicht-interaktiver Modus, der nie auf Eingaben wartet,
- konsistente Exit-Codes für Erfolg und Fehler.
Diese Tools lassen sich in zwei Gruppen einteilen:
- Agenten-Runtimes: Die Coding-CLIs, die den Agenten selbst ausführen, etwa Claude Code, Codex CLI, Gemini CLI und Cursor CLI.
-
Tool-CLIs: Die Werkzeuge, die ein Agent für konkrete Aufgaben verwendet, etwa
gh, ripgrep,jq, HTTPie und apidog-cli.
Wenn Sie einen Agenten in Ihren API-Workflow integrieren möchten, führt Sie der Apidog CLI complete guide durch die Einrichtung.
Was ein CLI-Tool für KI-Agenten gut macht
Prüfen Sie jedes CLI-Tool anhand dieser drei Kriterien, bevor Sie es in einen Agenten-Workflow aufnehmen.
1. Strukturierte Ausgabe
Ein Agent sollte Felder anhand ihrer Namen lesen können, statt Tabellenzeilen oder Textmuster zu erraten.
Bevorzugen Sie daher Optionen wie:
--json
--output-format json
--output-format stream-json
JSON ist besonders wichtig, wenn der nächste Schritt von einem konkreten Wert abhängt:
gh pr list --json number,title --jq '.[].number'
2. Nicht-interaktiver Modus
Ein Agent läuft oft in CI, Containern oder anderen Headless-Umgebungen. Wenn ein Tool auf eine Bestätigung wartet, bleibt die Pipeline hängen.
Suchen Sie nach Flags wie:
--non-interactive
--yes
--force
-p
--print
Testen Sie außerdem immer, ob der Befehl ohne TTY funktioniert:
your-command </dev/null
echo $?
3. Deterministische Exit-Codes
Für eine Automation ist der Exit-Code oft wichtiger als die Textausgabe:
-
0: Operation erfolgreich - ungleich
0: Operation fehlgeschlagen
So kann ein Agent oder CI-Job direkt verzweigen:
apidog run
if [ $? -ne 0 ]; then
echo "Tests fehlgeschlagen"
exit 1
fi
Ein zusätzlicher Vorteil sind Hinweise zum nächsten Schritt. Das ist selten, aber besonders nützlich, wenn ein Agent mehrere API-Aufgaben selbstständig orchestrieren soll.
Claude Code
Claude Code ist Anthropics Coding-Agent für das Terminal. Mit -p führen Sie ihn im Print-Modus aus: Prompt rein, Ergebnis raus, keine interaktive Terminal-Oberfläche.
npm install -g @anthropic-ai/claude-code
claude -p "summarize the failing tests in this repo" --output-format json
Für Automatisierung sollten Sie JSON-Ausgabe direkt weiterverarbeiten:
claude -p "summarize the failing tests in this repo" \
--output-format json | jq '.result'
Die Ausgabe enthält unter anderem das Ergebnis, eine session_id und total_cost_usd. Damit können Sie Kosten und Ausführung pro Aufruf erfassen. Für Echtzeit-Ereignisse gibt es stream-json, das zusammen mit --verbose verwendet wird.
Sie können auch Dateien über stdin übergeben:
cat build-error.txt | claude -p "explain this error"
Am besten geeignet für: mehrstufige Coding-Aufgaben, bei denen ein Agent plant, Änderungen ausführt und maschinenlesbare Ergebnisse zurückgibt.
Ehrliche Grenzen: Claude Code nutzt ein kostenpflichtiges, geschlossenes Modell hinter einer API. Lange autonome Läufe können Kosten verursachen.
Codex CLI
Codex CLI ist OpenAIs Open-Source-Terminal-Agent. Der Unterbefehl codex exec beziehungsweise codex e führt Aufgaben nicht-interaktiv aus.
npm install -g @openai/codex
codex exec --json "add input validation to the signup handler"
Mit --json schreibt Codex einen JSONL-Stream nach stdout. Jedes Ereignis — etwa Shell-Befehle, Dateiänderungen oder Agentennachrichten — wird als eigenes JSON-Objekt ausgegeben.
Filtern Sie in einer Pipeline nur die Ereignisse, die Sie benötigen:
codex exec --json "add input validation to the signup handler" \
| jq 'select(.type == "item.completed")'
Wenn ein nachgelagerter Job ein festes Format erwartet, definieren Sie zusätzlich ein Ausgabeschema:
codex exec \
--json \
--output-schema ./result-schema.json \
"summarize the code changes"
Am besten geeignet für: CI-gesteuerte Codeänderungen, bei denen Sie am Ende eine typisierte und schema-validierte Zusammenfassung benötigen.
Ehrliche Grenzen: Der JSONL-Stream ist umfangreich. Planen Sie jq-Filter ein, statt die gesamte Ausgabe an nachgelagerte Schritte weiterzureichen. Testen Sie schema-eingeschränkte Antworten mit Ihren realen Prompts.
Gemini CLI
Gemini CLI ist Googles Open-Source-Terminal-Agent. Er verwendet den Headless-Modus automatisch in einer Nicht-TTY-Umgebung oder wenn Sie einen Prompt mit -p beziehungsweise --prompt übergeben.
npm install -g @google/gemini-cli
gemini --non-interactive --output-format json \
-p "list the public endpoints in this service"
Für robuste Skripte kombinieren Sie den nicht-interaktiven Modus mit JSON und extrahieren nur das Antwortfeld:
gemini --non-interactive --output-format json \
-p "list the public endpoints in this service" \
| jq -r '.response'
--output-format json liefert ein einzelnes JSON-Objekt mit Antwort und Nutzungsdaten. Für Streaming-Szenarien steht auch eine JSONL-Variante zur Verfügung.
Am besten geeignet für: Teams im Google-Stack sowie leseintensive Aufgaben wie Codebasis-Analyse, Zusammenfassungen und Recherche im Repository.
Ehrliche Grenzen: Strukturierte JSON-Ausgabe wurde später eingeführt als bei einigen Alternativen. Fixieren Sie die verwendete Version und prüfen Sie die Flags vor dem Einsatz in CI.
Cursor CLI
Cursors cursor-agent bringt den Coding-Agenten unabhängig vom Editor ins Terminal. Mit -p oder --print läuft er headless: ein Prompt, ein Ergebnis.
curl https://cursor.com/install -fsS | bash
cursor-agent -p "refactor utils/date.js to use date-fns" \
--output-format json
Die Option --output-format unterstützt:
textjsonstream-json
Für einen abgeschlossenen Lauf ist json meist die beste Wahl:
cursor-agent -p "find and fix unused imports" \
--output-format json \
--trust
In Headless-Umgebungen benötigen Sie --trust, damit der Agent Schreib- und Shell-Tools verwenden kann, ohne bei jeder Aktion nachzufragen.
Am besten geeignet für: Teams, die Cursor bereits im Editor einsetzen und denselben Agenten in CI oder Git-Hooks verwenden möchten.
Ehrliche Grenzen: Es gibt Berichte über hängende -p-Ausführungen auf bestimmten Builds und Plattformen. Testen Sie daher Ihre Zielumgebung, fixieren Sie eine funktionierende Version und verwenden Sie Tokens mit minimalen Berechtigungen.
gh (GitHub CLI)
gh ist die zentrale CLI für GitHub-Aufgaben: Repositories, Issues, Pull Requests, Releases und API-Aufrufe. Für Agenten ist besonders --json relevant.
brew install gh
gh pr list --json number,title,author --jq '.[].author.login'
Übergeben Sie mit --json genau die Felder, die der Agent benötigt:
gh pr list --json number,title,state
Wenn Sie die verfügbaren Felder eines Unterbefehls ermitteln möchten, lassen Sie den Feldwert weg:
gh pr list --json
Für API-Endpunkte, die kein gh-Unterbefehl abdeckt, verwenden Sie gh api:
gh api repos/OWNER/REPO/issues --jq '.[].title'
Am besten geeignet für: jede GitHub-Operation in einem Agenten-Workflow — vom Lesen eines PR-Status bis zum Anlegen eines Issues.
Ehrliche Grenzen: gh ist auf GitHub beschränkt. Die verfügbaren --json-Felder unterscheiden sich je nach Unterbefehl, daher sollte Ihr Workflow das Schema pro Befehl prüfen.
ripgrep
ripgrep (rg) ist ein schnelles Suchwerkzeug für Codebasen. Mit --json erzeugt es strukturierte Trefferereignisse statt menschenorientierter Grep-Zeilen.
brew install ripgrep
rg --json "TODO" src/ \
| jq 'select(.type == "match") | .data.path.text'
Ein Treffer enthält strukturierte Felder für Dateipfad, Zeilennummer und gefundenen Text. Das ist sicherer als das Parsen von datei:zeile:text, das bei Doppelpunkten in Dateinamen oder Code fehleranfällig wird.
Beispiel: Zeilennummer und Treffertext extrahieren:
rg --json "TODO" src/ \
| jq 'select(.type == "match") | {
file: .data.path.text,
line: .data.line_number,
text: .data.lines.text
}'
Am besten geeignet für: schnelle und strukturierte Codesuche in großen Repositories, bevor ein Agent Änderungen plant.
Ehrliche Grenzen: Die JSON-Ausgabe ist absichtlich ausführlich. Für eine einzelne manuelle Suche ist der Klartextmodus oft schneller lesbar.
jq
jq ist der Kleber zwischen JSON-fähigen Tools. Es filtert, transformiert und validiert JSON direkt in Shell-Pipelines.
brew install jq
curl -s https://api.github.com/repos/cli/cli \
| jq '{name, stars: .stargazers_count}'
Ein typisches Agenten-Muster sieht so aus:
gh pr list --json number,title,state \
| jq '.[] | select(.state == "OPEN") | .number' \
| while read -r pr; do
gh pr view "$pr" --json title,body
done
jq beendet sich bei JSON-Parse-Fehlern mit einem Exit-Code ungleich 0. Dadurch werden fehlerhafte Upstream-Antworten nicht stillschweigend weitergereicht.
Am besten geeignet für: JSON genau in die Struktur zu überführen, die der nächste Agenten-Schritt benötigt.
Ehrliche Grenzen: Die Abfragesprache hat eine Lernkurve. Außerdem verarbeitet jq ausschließlich JSON — für Roh-Logs benötigen Sie vorher ein passendes Parser- oder CLI-Tool.
HTTPie
Wenn ein Agent direkt eine HTTP-API aufrufen muss, ist HTTPie (http) eine JSON-orientierte Alternative zu curl.
brew install httpie
http --print=b POST httpbin.org/post name=apidog role=cli
Mit --print=b geben Sie nur den Response-Body aus. Das ist nützlich, wenn der nächste Schritt JSON parsen soll, ohne zuerst Header zu entfernen.
http --print=b GET https://api.github.com/repos/cli/cli \
| jq '{name, stars: .stargazers_count}'
HTTPie wandelt key=value-Argumente in JSON-Anforderungsfelder um:
http POST https://example.com/api/users \
name="Ada Lovelace" \
role=developer
Am besten geeignet für: schnelle, skriptfähige API-Aufrufe mit JSON-Eingabe und JSON-Ausgabe.
Ehrliche Grenzen: curl ist fast überall bereits verfügbar und bleibt flexibler für Streaming oder ungewöhnliche Protokolle. HTTPie ist eine zusätzliche Abhängigkeit.
apidog-cli
Viele CLIs wurden ursprünglich für Menschen gebaut und später um ein --json-Flag ergänzt. apidog-cli arbeitet dagegen standardmäßig mit strukturiertem JSON und liefert zusätzlich agentHints.nextSteps. Damit kann ein aufrufender Agent erkennen, welche Aktion als Nächstes möglich ist.
apidog-cli ist nicht nur ein Test-Runner, sondern eine CLI für API-Projekte. Sie kann Endpunkte, Schemata, Mocks, Umgebungen, Importe, Exporte, Dokumentation, Testszenarien und Branches verwalten.
Installation und Anmeldung:
npm install -g apidog-cli
apidog login --with-token <YOUR_TOKEN>
apidog run --help
Für automatisierte Tests ist besonders der Exit-Code relevant:
apidog run
case $? in
0)
echo "Alle Tests erfolgreich"
;;
*)
echo "Mindestens ein Test ist fehlgeschlagen"
exit 1
;;
esac
apidog run beendet sich mit 0, wenn alle Tests erfolgreich sind, und mit einem Wert ungleich 0, wenn ein Fehler auftritt. Das erlaubt einem Agenten, ohne Textanalyse sicher zu verzweigen.
Die JSON-Antworten können außerdem Hinweise für nächste Schritte enthalten. Das ist hilfreich, wenn ein Agent API-Aufgaben in einer festen Reihenfolge ausführen soll. Beispiele für die Integration mit verschiedenen Agenten-Runtimes finden Sie hier:
Für schreibende Agenten ist die Branch-Isolation wichtig. Ein Agent mit Zugriff auf ein Live-API-Projekt könnte Endpunkte oder Schemata überschreiben beziehungsweise löschen. Mit einem AI Branch arbeiten Sie isoliert:
apidog branch --type ai
Der Quell-Branch bleibt unverändert, bis ein Merge-Request genehmigt wird. Mehr zum Muster finden Sie unter:
Am besten geeignet für: Agenten, die ein einzelnes JSON-natives Tool für den gesamten API-Lebenszyklus benötigen — inklusive Hinweisen für Folgeschritte und isolierten Bearbeitungs-Branches.
Ehrliche Grenzen: Apidog ist nicht Open Source, sondern ein kommerzielles Produkt mit kostenlosem Plan. Außerdem enthält es keinen OpenAPI-Linter; nutzen Sie zusätzlich Spectral oder Redocly, wenn Ihr Workflow Style-Regeln erzwingen soll.
Wie man wählt
Es gibt keinen alleinigen Gewinner. Die Runtimes führen die Denk- und Planungsschritte aus; die Tool-CLIs erledigen konkrete Arbeit. Stellen Sie daher ein kleines, auf Ihren Workflow abgestimmtes Set zusammen.
| Tool | Am besten für | Installation | Open Source? | Hinweis zur Agenten-Eignung |
|---|---|---|---|---|
| Claude Code | Mehrschrittige Codierung, Planung | npm i -g @anthropic-ai/claude-code |
Nein |
-p + --output-format json, Kosten in der Ausgabe |
| Codex CLI | Schema-typisierte CI-Codeänderungen | npm i -g @openai/codex |
Ja |
codex exec --json, --output-schema
|
| Gemini CLI | Google-Stack, leseintensive Aufgaben | npm i -g @google/gemini-cli |
Ja | --non-interactive --output-format json |
| Cursor CLI | Cursor-Teams, Editor-zu-CI-Parität | `curl cursor.com/install \ | bash` | Nein |
| gh | Jede GitHub-Operation | brew install gh |
Ja |
--json-Felder + eingebautes --jq
|
| ripgrep | Schnelle strukturierte Codesuche | brew install ripgrep |
Ja |
--json für typisierte Trefferereignisse |
| jq | Umformung des JSON jedes Tools | brew install jq |
Ja | Deterministisch, Pipeline-Kleber |
| HTTPie | Skriptfähige JSON-API-Aufrufe | brew install httpie |
Ja | JSON-First, --print-Steuerung |
| apidog-cli | Voller API-Lebenszyklus für Agenten | npm i -g apidog-cli |
Nein (kostenloser Plan) | Natives JSON + agentHints.nextSteps
|
Eine praktische Basiskombination für viele Dev.to-Workflows ist:
# Repository- und Pull-Request-Daten
gh
# Schnelle Codebasis-Suche
rg
# JSON filtern und transformieren
jq
# HTTP-APIs direkt aufrufen
http
# API-Projekte, Tests und isolierte Agenten-Branches
apidog
Wählen Sie zuerst eine Runtime, die Ihre Coding-Aufgaben ausführt. Ergänzen Sie anschließend nur die Tool-CLIs, die der Agent wirklich braucht. Für API-Workflows funktioniert eine Kombination aus curl, Mock-Server und Test-Runner zwar grundsätzlich, aber eine JSON-native CLI mit Hinweisen für Folgeschritte reduziert den Glue-Code.
Zusammenfassung
„Agenten-tauglich“ ist kein Marketingbegriff, sondern eine technische Checkliste:
- Strukturierte Ausgabe, die ein Agent zuverlässig parsen kann.
- Nicht-interaktiver Modus, der in CI oder Headless-Umgebungen nicht hängen bleibt.
- Konsistente Exit-Codes, anhand derer ein Workflow verzweigen kann.
Die Runtimes — Claude Code, Codex CLI, Gemini CLI und Cursor CLI — übernehmen Planung und Ausführung. Tool-CLIs wie gh, ripgrep, jq, HTTPie und apidog-cli liefern die konkreten Fähigkeiten für Repository-, Such-, Daten- und API-Aufgaben.
apidog-cli ergänzt diesen Stack mit JSON-Ausgabe, zuverlässigen Exit-Codes, agentHints.nextSteps und isolierten AI Branches für API-Änderungen. Wenn Ihr Agent mit APIs arbeitet, können Sie Apidog herunterladen oder mit dem Apidog CLI complete guide starten. Der nächste sinnvolle Schritt ist die Einbindung in CI — dort wird strukturierte, agenten-native Ausgabe besonders wertvoll.
Top comments (0)