Codex CLI
Delegiere Codierungsaufgaben an Codex über das Hermes-Terminal. Codex ist OpenAIs autonomes CLI für Coding-Agenten.
Wann verwenden
- Feature-Entwicklung
- Refactoring
- PR-Reviews
- Stapelweise Issue-Bearbeitung
Erfordert die Codex CLI und ein Git-Repository.
Voraussetzungen
- Codex installiert:
npm install -g @openai/codex - OpenAI-Authentifizierung konfiguriert: entweder
OPENAI_API_KEYoder Codex-OAuth-Anmeldedaten aus dem Codex-CLI-Login-Vorgang - Muss innerhalb eines Git-Repositorys ausgeführt werden – Codex weigert sich, außerhalb eines solchen zu laufen
- Verwende
pty=truein Terminalaufrufen – Codex ist eine interaktive Terminal-Anwendung
Für Hermes selbst verwendet model.provider: openai-codex das von Hermes verwaltete Codex-OAuth
aus ~/.hermes/auth.json nach hermes auth add openai-codex. Für die
Standalone-Codex-CLI kann eine gültige CLI-OAuth-Sitzung unter
~/.codex/auth.json existieren; behandle eine fehlende OPENAI_API_KEY nicht allein als Beweis dafür,
dass die Codex-Authentifizierung fehlt.
Einmalige Aufgaben (One-Shot)
terminal(command="codex exec 'Füge Dark-Mode-Umschalter zu den Einstellungen hinzu'", workdir="~/projekt", pty=true)
Für Spielereien (Codex benötigt ein Git-Repo):
terminal(command="cd $(mktemp -d) && git init && codex exec 'Erstelle ein Snake-Spiel in Python'", pty=true)
Hintergrundmodus (Langwierige Aufgaben)
# Im Hintergrund mit PTY starten
terminal(command="codex exec --full-auto 'Refaktoriere das Auth-Modul'", workdir="~/projekt", background=true, pty=true)
# Gibt session_id zurück
# Fortschritt überwachen
process(action="poll", session_id="<id>")
process(action="log", session_id="<id>")
# Eingabe senden, wenn Codex eine Frage stellt
process(action="submit", session_id="<id>", data="ja")
# Bei Bedarf beenden
process(action="kill", session_id="<id>")
Wichtige Flags
| Flag | Wirkung |
|---|---|
exec "prompt" | Einmalige Ausführung, beendet sich nach Abschluss |
--full-auto | In der Sandbox, aber genehmigt Dateiänderungen im Arbeitsbereich automatisch |
--yolo | Keine Sandbox, keine Genehmigungen (schnellste, gefährlichste Variante) |
--sandbox danger-full-access | Keine Codex-Sandbox; nützlich, wenn der Host-Service-Kontext Bubblewrap unterbricht |
Hinweis zum Hermes-Gateway
Wenn die Codex-CLI aus einem Hermes-Gateway-/Service-Kontext aufgerufen wird (z. B.
Telegram-gesteuerte Agentensitzungen), kann die workspace-write-Sandboxing von Codex fehlschlagen,
selbst wenn derselbe Befehl in der interaktiven Shell des Benutzers funktioniert. Ein typisches Symptom sind
Bubblewrap/Benutzer-Namespace-Fehler wie setting up uid map: Permission denied
oder loopback: Failed RTM_NEWADDR: Operation not permitted.
In diesem Kontext bevorzugen:
codex exec --sandbox danger-full-access "<aufgabe>"
Verwende stattdessen Prozessgrenzen als Sicherheitsebene: explizites workdir, sauberer Git-Status
vor dem Start, enge Aufgabenbeschreibungen, git diff-Review, gezielte Tests und
menschliche/Agent-Bestätigung vor dem Einspielen umfangreicher Änderungen.
PR-Reviews
Zum sicheren Review in ein temporäres Verzeichnis klonen:
terminal(command="REVIEW=$(mktemp -d) && git clone https://github.com/benutzer/repo.git $REVIEW && cd $REVIEW && gh pr checkout 42 && codex review --base origin/main", pty=true)
Parallele Issue-Bearbeitung mit Worktrees
# Worktrees erstellen
terminal(command="git worktree add -b fix/issue-78 /tmp/issue-78 main", workdir="~/projekt")
terminal(command="git worktree add -b fix/issue-99 /tmp/issue-99 main", workdir="~/projekt")
# Codex in jedem Worktree starten
terminal(command="codex --yolo exec 'Behebe Issue #78: <Beschreibung>. Commit wenn erledigt.'", workdir="/tmp/issue-78", background=true, pty=true)
terminal(command="codex --yolo exec 'Behebe Issue #99: <Beschreibung>. Commit wenn erledigt.'", workdir="/tmp/issue-99", background=true, pty=true)
# Überwachen
process(action="list")
# Nach Abschluss pushen und PRs erstellen
terminal(command="cd /tmp/issue-78 && git push -u origin fix/issue-78")
terminal(command="gh pr create --repo benutzer/repo --head fix/issue-78 --title 'fix: ...' --body '...'")
# Aufräumen
terminal(command="git worktree remove /tmp/issue-78", workdir="~/projekt")
Stapelweise PR-Reviews
# Alle PR-Referenzen holen
terminal(command="git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'", workdir="~/projekt")
# Mehrere PRs parallel reviewen
terminal(command="codex exec 'Review PR #86. git diff origin/main...origin/pr/86'", workdir="~/projekt", background=true, pty=true)
terminal(command="codex exec 'Review PR #87. git diff origin/main...origin/pr/87'", workdir="~/projekt", background=true, pty=true)
# Ergebnisse posten
terminal(command="gh pr comment 86 --body '<review>'", workdir="~/projekt")
Regeln
- Immer
pty=trueverwenden – Codex ist eine interaktive Terminal-Anwendung und hängt ohne PTY - Git-Repo erforderlich – Codex läuft nicht außerhalb eines Git-Verzeichnisses. Für Spielereien
mktemp -d && git initverwenden execfür Einmalaufgaben verwenden –codex exec "prompt"läuft und beendet sich sauber--full-autozum Entwickeln – genehmigt Änderungen innerhalb der Sandbox automatisch- Hintergrund für lange Aufgaben –
background=trueverwenden und mit demprocess-Werkzeug überwachen - Nicht eingreifen – mit
poll/logüberwachen, bei lang laufenden Aufgaben geduldig sein - Parallel ist in Ordnung – mehrere Codex-Prozesse gleichzeitig für Stapelarbeit ausführen