# Portabilität: UNIVERSAL
# Version: 1.1.0
# Zuletzt validiert: 2026-05-17
# Nächste Prüfung: 2026-11-17

CLAUDE CODE AUTOMATISIERUNG
============================

Anleitung zur Automatisierung von Claude Code über die Kommandozeile (CLI).


ÜBERSICHT
---------
Claude Code kann im non-interaktiven Modus betrieben werden, was die
Integration in Skripte, CI/CD-Pipelines und automatisierte Workflows ermöglicht.


1. NON-INTERAKTIVER MODUS (-p / --print)
----------------------------------------
Der wichtigste Parameter für Automatisierung. Claude gibt die Antwort aus
und beendet sich.

    # Einfache Anfrage
    claude -p "Erkläre mir was diese Funktion macht"

    # Mit Datei-Input über Pipe
    cat mycode.py | claude -p "Analysiere diesen Code"

    # Über stdin
    echo "Was ist 2+2?" | claude -p


2. AUSGABEFORMATE FÜR SCRIPTING
-------------------------------
Text (Standard):
    claude -p "Deine Anfrage"

JSON (einzelnes Ergebnis):
    claude -p "Liste 5 Programmiersprachen" --output-format json

Stream-JSON (Echtzeit-Streaming):
    claude -p "Schreibe einen Test" --output-format stream-json


3. BERECHTIGUNGEN UND SICHERHEIT
--------------------------------
Vollautomatisch ohne Bestätigungen:
    # ACHTUNG: Nur in sicheren/isolierten Umgebungen verwenden!
    claude -p "Erstelle eine index.html" --dangerously-skip-permissions

Permission Mode wählen:
    # Plan-Modus: Claude plant Änderungen vor Ausführung
    claude -p "Refactor Code" --permission-mode plan

    # DontAsk-Modus: Keine Rückfragen während Ausführung
    claude -p "Update dependencies" --permission-mode dontAsk

Mit eingeschränkten Tools:
    # Nur bestimmte Tools erlauben
    claude -p "Zeige git status" --allowedTools "Bash(git:*)"

    # Bestimmte Tools verbieten
    claude -p "Analysiere Code" --disallowedTools "Edit Write"

    # Alle Tools deaktivieren außer spezifische
    claude -p "Nur lesen" --tools "Read"


4. SESSION-MANAGEMENT
---------------------
Letzte Session fortsetzen:
    claude --continue

Bestimmte Session per ID fortsetzen:
    claude --resume SESSION_ID

Neue Session-ID bei Fortsetzung erstellen:
    claude --continue --fork-session


5. BUDGET UND MODELL-KONTROLLE
------------------------------
    # Budget-Limit setzen (in USD)
    claude -p "Komplexe Analyse" --max-budget-usd 1.00

    # Modell wählen
    claude -p "Schnelle Frage" --model sonnet
    claude -p "Komplexe Aufgabe" --model opus

    # Fallback-Modell bei Überlastung
    claude -p "Anfrage" --fallback-model sonnet


6. SYSTEM-PROMPT ANPASSEN
-------------------------
    # Eigenen System-Prompt setzen
    claude -p "Anfrage" --system-prompt "Du bist ein Python-Experte"

    # System-Prompt erweitern
    claude -p "Anfrage" --append-system-prompt "Antworte immer auf Deutsch"


7. CI/CD INTEGRATION
--------------------
Beispiel: Code-Review in Pipeline

    #!/bin/bash
    # code_review.sh
    claude -p "Review diesen Code auf Sicherheitsprobleme und Best Practices" \
      --output-format json \
      --dangerously-skip-permissions \
      --max-budget-usd 1.00 \
      --model sonnet

Beispiel: Automatische Dokumentation

    #!/bin/bash
    # generate_docs.sh
    cat src/main.py | claude -p "Erstelle eine API-Dokumentation im Markdown-Format" \
      --output-format text \
      --dangerously-skip-permissions > docs/API.md

Beispiel: Test-Generierung

    #!/bin/bash
    # generate_tests.sh
    claude -p "Generiere Unit-Tests für die Funktion in src/utils.py" \
      --dangerously-skip-permissions \
      --allowedTools "Read Write" \
      --max-budget-usd 0.50


8. BIDIREKTIONALES STREAMING
----------------------------
Für komplexe Integrationen mit Echtzeit-Kommunikation:

    claude -p "..." \
      --input-format stream-json \
      --output-format stream-json \
      --include-partial-messages


9. MCP SERVER INTEGRATION
-------------------------
    # MCP-Konfiguration laden (JSON-Datei oder String)
    claude -p "Anfrage" --mcp-config ./mcp-config.json

    # Mehrere Configs laden
    claude -p "Anfrage" --mcp-config ./config1.json ./config2.json

    # Nur MCP-Server aus Config verwenden
    claude -p "Anfrage" --mcp-config ./mcp-config.json --strict-mcp-config

    # MCP-Server verwalten
    claude mcp                    # Interaktives Management
    claude mcp --help             # MCP-Befehle anzeigen


10. ERWEITERTE FEATURES
-----------------------
Strukturierte JSON-Ausgabe:
    # JSON Schema validieren
    claude -p "Gib mir User-Daten" --json-schema '{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}'

Agenten verwenden:
    # Vorkonfigurierte Agenten
    claude -p "Review Code" --agent reviewer

    # Eigene Agenten definieren
    claude -p "Anfrage" --agents '{"tester": {"description": "Testet Code", "prompt": "Du bist ein QA-Experte"}}'

Plugin-Integration:
    # Plugins aus Verzeichnis laden
    claude -p "Anfrage" --plugin-dir ./my-plugins

Zusätzliche Verzeichnisse erlauben:
    # Erweitert Tool-Zugriff
    claude -p "Analysiere mehrere Projekte" --add-dir /path/to/project1 /path/to/project2

Debug-Modus:
    # Mit Filter
    claude -p "Anfrage" --debug "api,hooks"

    # Ohne bestimmte Kategorien
    claude -p "Anfrage" --debug "!1p,!file"

    # Debug-Log in Datei schreiben
    claude -p "Anfrage" --debug-file ./debug.log


WICHTIGE PARAMETER-REFERENZ
---------------------------
Parameter                       Beschreibung
---------                       ------------
-p, --print                     Non-interaktiver Modus (Pflicht für Automatisierung)
--output-format                 text, json, stream-json
--input-format                  text, stream-json
--dangerously-skip-permissions  Keine Bestätigungsdialoge
--permission-mode               acceptEdits, bypassPermissions, default, delegate, dontAsk, plan
--allowedTools                  Erlaubte Tools (z.B. "Bash(git:*) Read")
--disallowedTools               Verbotene Tools
--tools                         Tool-Liste oder "" für keine, "default" für alle
--max-budget-usd                Budget-Limit in USD
--model                         Modell (sonnet, opus, oder vollständiger Name)
--fallback-model                Fallback bei Überlastung
--system-prompt                 Eigener System-Prompt
--append-system-prompt          System-Prompt erweitern
--continue                      Letzte Session fortsetzen
--resume                        Session per ID fortsetzen
--fork-session                  Neue Session-ID bei Fortsetzung
--session-id                    Spezifische Session-ID setzen (UUID)
--mcp-config                    MCP-Server-Konfiguration(en)
--strict-mcp-config             Nur MCP aus Config verwenden
--json-schema                   JSON Schema für validierte Ausgabe
--agent                         Vorkonfigurierter Agent
--agents                        Eigene Agenten als JSON
--plugin-dir                    Plugin-Verzeichnisse
--add-dir                       Zusätzliche Verzeichnisse erlauben
--debug                         Debug-Modus mit optionalem Filter
--debug-file                    Debug-Logs in Datei schreiben
--no-session-persistence        Session nicht speichern (nur mit --print)


11. REMOTE CONTROL (MOBILE APP)
-------------------------------
Claude Code kann über die Claude Mobile App ferngesteuert werden.
Bekannter Bug: --dangerously-skip-permissions greift nicht bei Remote Control.

Lösung: BACH Permission-Profile verwenden:

    # Automatisch (empfohlen):
    # Desktop: Claude_RemoteControl.bat
    # BACH Menue: Taste [P]

    # Manuell:
    bach permissions activate remote_control
    claude --dangerously-skip-permissions
    # -> /rc eingeben, QR-Code scannen
    # Nach Beendigung:
    bach permissions deactivate

    # Profile anpassen:
    bach permissions set remote_control allow=mcp__neuer_server__*
    bach permissions show remote_control
    bach permissions status

Siehe: permissions.txt für vollständige Dokumentation.


SICHERHEITSHINWEISE
-------------------
1. --dangerously-skip-permissions nur in isolierten Umgebungen
   (Sandboxes, Container) verwenden
2. Budget-Limits setzen um unerwartete Kosten zu vermeiden
3. Tools einschränken mit --allowedTools wenn möglich
4. Keine sensiblen Daten über Pipes an Claude senden


SIEHE AUCH
----------
- claude --help               Vollständige Hilfe
- claude doctor               Installations-Check
- claude mcp                  MCP-Server verwalten
- claude plugin               Plugin-Management
- claude setup-token          Langlebiges Auth-Token einrichten
- claude install [target]     Native Build installieren (stable/latest/version)
- claude update               Auf Updates prüfen
- claude-code.txt             Allgemeine Claude Code Informationen
- permissions.txt             BACH Permission-Profile (Remote Control)
