DEV Community

Cover image for Top CLI-Tools für KI-Agenten
Emre Demir
Emre Demir

Posted on • Originally published at apidog.com

Top CLI-Tools für KI-Agenten

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:

  1. Agenten-Runtimes: Die Coding-CLIs, die den Agenten selbst ausführen, etwa Claude Code, Codex CLI, Gemini CLI und Cursor CLI.
  2. 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
Enter fullscreen mode Exit fullscreen mode

JSON ist besonders wichtig, wenn der nächste Schritt von einem konkreten Wert abhängt:

gh pr list --json number,title --jq '.[].number'
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Testen Sie außerdem immer, ob der Befehl ohne TTY funktioniert:

your-command </dev/null
echo $?
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Für Automatisierung sollten Sie JSON-Ausgabe direkt weiterverarbeiten:

claude -p "summarize the failing tests in this repo" \
  --output-format json | jq '.result'
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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")'
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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'
Enter fullscreen mode Exit fullscreen mode

--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
Enter fullscreen mode Exit fullscreen mode

Die Option --output-format unterstützt:

  • text
  • json
  • stream-json

Für einen abgeschlossenen Lauf ist json meist die beste Wahl:

cursor-agent -p "find and fix unused imports" \
  --output-format json \
  --trust
Enter fullscreen mode Exit fullscreen mode

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'
Enter fullscreen mode Exit fullscreen mode

Übergeben Sie mit --json genau die Felder, die der Agent benötigt:

gh pr list --json number,title,state
Enter fullscreen mode Exit fullscreen mode

Wenn Sie die verfügbaren Felder eines Unterbefehls ermitteln möchten, lassen Sie den Feldwert weg:

gh pr list --json
Enter fullscreen mode Exit fullscreen mode

Für API-Endpunkte, die kein gh-Unterbefehl abdeckt, verwenden Sie gh api:

gh api repos/OWNER/REPO/issues --jq '.[].title'
Enter fullscreen mode Exit fullscreen mode

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'
Enter fullscreen mode Exit fullscreen mode

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
    }'
Enter fullscreen mode Exit fullscreen mode

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}'
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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}'
Enter fullscreen mode Exit fullscreen mode

HTTPie wandelt key=value-Argumente in JSON-Anforderungsfelder um:

http POST https://example.com/api/users \
  name="Ada Lovelace" \
  role=developer
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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:

  1. Strukturierte Ausgabe, die ein Agent zuverlässig parsen kann.
  2. Nicht-interaktiver Modus, der in CI oder Headless-Umgebungen nicht hängen bleibt.
  3. 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)