HarnessEcosystem / tutorials /HowToUse_HarnessCodex.md
smlflg's picture
Initial public upload from Projekte/HarnessEcosystem
5134cea verified
|
Raw History Blame Contribute Delete
11.3 kB
# Codex CLI Harness — Referenz-Guide
> Für Samuel: Du kennst Claude Code in- und auswendig. Dieser Guide erklärt Codex im direkten Vergleich.
---
## 1. Architektur
Codex ist OpenAIs autonomer Coding-Agent mit TUI und Non-interactive-Mode. Konfiguration läuft über TOML statt JSON.
```
codex (CLI)
├── interaktive TUI — Standard bei `codex` ohne Argumente
├── codex exec "prompt" — Non-interactive One-Shot Execution
├── codex review — Eingebauter Code-Review-Modus
├── codex resume/fork — Session-Management
└── codex features — Feature-Flag-Verwaltung
```
**Schichten-Überblick:**
| Schicht | Pfad | Funktion |
|---------|------|----------|
| Haupt-Config | `~/.codex/config.toml` | Modell, Trust-Level, Migrationen |
| Auth | `~/.codex/auth.json` | ChatGPT OAuth Tokens (Google Account) |
| Runbooks | `~/.codex/runbooks/` | Session-Typ-Instruktionen (4 Typen) |
| Approval-Rules | `~/.codex/rules/default.rules` | Command-Approval via `prefix_rule` |
| Skills | `~/.codex/skills/` | 33 Skill-Verzeichnisse |
| Logs | `~/.codex/log/` | Session-Logs |
| History | `~/.codex/history.jsonl` | Session-History |
**Kernunterschied zu Claude Code:** Codex verwendet _Runbooks_ statt Hooks. Wo Claude Code mit PreToolUse/PostToolUse-Hooks in Shell oder Python Verhalten steuert, definiert Codex pro Session-Typ eine Markdown-Instruktionsdatei. Kein programmatisches Hook-System.
**Auth-Modell:** Nicht API-Key-basiert wie Claude Code — Codex nutzt ChatGPT OAuth (Google Account, auto-refresh). Token liegt in `~/.codex/auth.json`. Kein manuelles Key-Rotieren nötig.
---
## 2. Konfiguration
### config.toml
```toml
model = "gpt-5.4"
model_reasoning_effort = "medium" # low | medium | high | xhigh
[projects."/home/smlflg/Projekte"]
trust_level = "trusted"
[projects."/home/smlflg/Projekte/untrusted-experiment"]
trust_level = "untrusted"
[notice.model_migrations]
"gpt-5.1-codex-max" = "gpt-5.4" # Auto-Redirect veralteter Modell-Namen
```
**Trust-Level** ist das Äquivalent zu Claude Codes Permissions-System — aber granularer, weil per-Project und nicht global. Aktuell: 17 trusted, 2 untrusted Projekte.
### Runbooks (~/.codex/runbooks/)
Jeder Session-Typ hat eine eigene Instruktionsdatei:
| Runbook | Zweck | Wann verwenden |
|---------|-------|----------------|
| `build.md` | "Implement one stable outcome" | Feature bauen, Bug fixen |
| `planning.md` | "Fuzzy goals → buildable artifacts" | Ideen strukturieren, Architektur |
| `review.md` | "Quality + regression checks" | Code reviewen, vor Commit |
| `inspect.md` | "Read-only exploration" | Codebase verstehen, Analyse |
Runbooks direkt editieren für projekt-spezifische Instruktionen — das ist Codex' Äquivalent zu CLAUDE.md (AGENTS.md ist geplant, aber noch nicht implementiert).
### Approval-Policies
Codex hat zwei orthogonale Kontrollebenen — Sandbox-Mode (was darf die Umgebung?) und Approval-Policy (wann fragt der Agent nach?):
| Sandbox-Mode | Bedeutung |
|--------------|-----------|
| `read-only` | Nur lesen, keine Schreiboperationen |
| `workspace-write` | Schreiben im Projektverzeichnis erlaubt |
| `danger-full-access` | Unbeschränkter Zugriff |
| Approval-Policy | Bedeutung |
|-----------------|-----------|
| `untrusted` | Fragt bei allem nach |
| `on-request` | Fragt nur wenn unsicher |
| `on-failure` | Fragt nur bei Fehler |
| `never` | Fragt nie (volle Autonomie) |
**Vergleich zu Claude Code:**
| Feature | Claude Code | Codex |
|---------|-------------|-------|
| Config-Format | JSON | TOML |
| Auth | API Key (Anthropic) | ChatGPT OAuth (Google) |
| Modell | Claude Opus/Sonnet/Haiku | GPT-5.4 (OpenAI) |
| Hooks | 5 Lifecycle-Points (Shell/Python) | Keine — Runbooks statt Hooks |
| Session-Typen | Frei (Plan Mode optional) | 4 definierte Typen |
| Sandbox | Permissions allow/deny | 3 Sandbox-Modes + 4 Approval-Policies |
| Trust | Global | Per-Project Trust-Level |
| Skills | SKILL.md in ~/.claude/skills/ | 33 Skill-Verzeichnisse |
| Feature Flags | Nicht vorhanden | Togglebar |
| Regel-Datei | CLAUDE.md | AGENTS.md (geplant, noch nicht aktiv) |
---
## 3. Tuning
### Modell und Reasoning-Tiefe
```bash
codex -m gpt-5.4 "prompt" # Modell wählen
codex -c model_reasoning_effort="high" exec "..." # Mehr Reasoning
codex -c model_reasoning_effort="xhigh" exec "..." # Maximum — langsamer, gründlicher
```
`xhigh` entspricht ungefähr Claude Codes extended thinking — für komplexe Architektur- oder Debug-Tasks sinnvoll, für einfache Edits Overhead.
### Sandbox + Approval kombinieren
```bash
# Standard für den meisten Alltag: Schreiben erlaubt, fragt bei Unsicherheit
codex exec -s workspace-write -a on-request "..."
# Shorthand (identisch mit oben)
codex exec --full-auto "..."
# Nur lesen — für Analyse und Review
codex exec -s read-only "..."
# Volle Autonomie — nur für bekannte, stabile Aufgaben
codex exec -s workspace-write -a never "..."
```
### Trust-Level per Projekt setzen
```toml
# In ~/.codex/config.toml ergänzen:
[projects."/home/smlflg/Projekte/MeinNeuesProjekt"]
trust_level = "trusted"
```
Nach dem Editieren kein Reload nötig — wird beim nächsten `codex`-Aufruf im Verzeichnis gelesen.
### Feature Flags
```bash
codex features list # Alle Features und Status anzeigen
codex features enable multi_agent # Feature global aktivieren
codex features disable js_repl # Feature deaktivieren
codex --enable multi_agent exec "..." # Nur für diese Session aktivieren
```
**Stabile Features** (produktionstauglich): `multi_agent`, `personality`, `shell_snapshot`, `shell_tool`, `enable_request_compression`, `fast_mode`
**Experimentell** (mit Vorsicht): `guardian_approval`, `js_repl`, `prevent_idle_sleep`
**In Entwicklung** (nicht für Produktion): `code_mode`, `memories`, `plugins`, `realtime_conversation`, `child_agents_md`
### Session Management
```bash
codex resume # Interaktiver Session-Picker
codex resume --last # Direkt letzte Session fortsetzen
codex fork # Session branchen (Picker)
codex fork --last # Letzte Session forken — für Experimente ohne Hauptsession zu verlieren
```
`fork` ist praktisch wenn eine Session gut läuft, aber ein riskanter nächster Schritt ansteht — Branch erstellen, ausprobieren, bei Bedarf zur Hauptsession zurück.
### Code Review
```bash
codex review # Alle uncommitted Changes
codex review --base main # Diff gegen Branch
codex review --commit abc123 # Einzelnen Commit reviewen
codex review --uncommitted "Focus on security" # Mit Custom-Focus
```
Kein Equivalent in Claude Code nativ — dort müsste man den Review manuell als Prompt formulieren.
### Runbooks anpassen
```bash
# Build-Runbook für eigene Konventionen ergänzen:
nano ~/.codex/runbooks/build.md
# → Projekt-Konventionen, Testbefehle, Style-Regeln eintragen
# Eigenes Runbook für speziellen Workflow:
cp ~/.codex/runbooks/build.md ~/.codex/runbooks/debug.md
# → Dann mit `codex --runbook debug exec "..."` aufrufen
```
---
## 4. Vor- und Nachteile
### Vorteile
- **Bestes Endprodukt in Evals:** Liefert konsistent hübsche, fertige Outputs — Dashboard-Eval: "dicke geliefert"
- **Gründliche Rückfragen:** Stellt ~10x Rückfragen vor dem Bauen — verhindert Fehlannahmen, weniger Re-Work
- **Höchste Scope-Treue:** Bleibt nah am Referenz-Material, baut was im Auftrag steht — kein feature creep
- **4 Session-Typen:** Build/Planning/Review/Inspect erzwingen Fokus — kein "Alles in einem"-Prompt
- **Echtes Sandbox-System:** Read-only bis full-access — granularer als Claude Codes Allow/Deny-Listen
- **Per-Project Trust:** Feiner als Claude Codes globales Permission-System
- **Feature Flags:** Experimentelle Features togglebar — bei Claude Code alles-oder-nichts
- **`codex review`:** Eingebauter Code-Review mit Branch/Commit-Scope
- **Session fork/resume:** Strukturiertes Session-Management — Claude Code hat keinen nativen Fork
- **Reasoning-Stufen:** low/medium/high/xhigh — feinere Kontrolle als Modell-Auswahl
### Nachteile
- **Langsamer Start:** Braucht Zeit zum Einlesen des Projekts — nicht nach 30 Sekunden abbrechen
- **Dashboard-Stabilität:** 2x abgestürzt bei großen Outputs in Evals
- **Wenig Selbstkritik:** Selbstbewusst bis erhaben — gibt selten Fehler oder Unsicherheit zu
- **Mittelpreisig:** GPT-5.4 teurer als MiniMax-basierte Harnesses (Hermes/OpenCode)
- **Kein Hook-System:** Kein PreToolUse/PostToolUse — Verhalten nicht per Script steuerbar
- **Kein AGENTS.md:** CLAUDE.md-Äquivalent geplant, aber noch nicht implementiert
- **Kein echtes Subagent-System:** `multi_agent`-Flag existiert, aber nicht vergleichbar mit Claude Codes Agent-Tool
- **OpenAI-locked:** Nur GPT-Modelle — kein Multi-Provider wie Hermes oder OpenCode
- **Keine Sidecar-Integration:** Kein UserPromptSubmit-Hook → kein Context-Injection möglich
- **MCP noch leer:** Infrastruktur vorhanden, aber keine Server konfiguriert
---
## 5. Referenz
### Wichtige Dateipfade
| Pfad | Inhalt |
|------|--------|
| `~/.codex/config.toml` | Haupt-Config (Modell, Trust-Level, Migrationen) |
| `~/.codex/auth.json` | ChatGPT OAuth Tokens |
| `~/.codex/runbooks/build.md` | Build-Session-Instruktionen |
| `~/.codex/runbooks/planning.md` | Planning-Session-Instruktionen |
| `~/.codex/runbooks/review.md` | Review-Session-Instruktionen |
| `~/.codex/runbooks/inspect.md` | Inspect-Session-Instruktionen |
| `~/.codex/rules/default.rules` | Command-Approval-Rules |
| `~/.codex/skills/` | 33 Skill-Verzeichnisse |
| `~/.codex/history.jsonl` | Session-History (52KB+) |
| `~/.codex/log/` | Session-Logs |
| `~/.codex/models_cache.json` | Cached Modell-Liste (63KB) |
| `~/.local/bin/codex-wrapper` | Usage-Tracking Wrapper → `~/.claude/usage/codex-cli.jsonl` |
### Wichtige Befehle
```bash
# Sessions
codex # Interaktive Session starten
codex exec "prompt" # Non-interactive
codex exec --full-auto "prompt" # Auto (workspace-write + on-request)
codex exec -s read-only "prompt" # Nur lesen
codex resume --last # Letzte Session fortsetzen
codex fork --last # Letzte Session branchen
# Review
codex review # Uncommitted Changes
codex review --base main # Diff gegen Branch
codex review --commit abc123 # Spezifischen Commit
# Modell und Reasoning
codex -m gpt-5.4 "prompt" # Modell wählen
codex -c model_reasoning_effort="xhigh" exec "..." # Maximum Reasoning
# Features
codex features list # Alle Feature Flags anzeigen
codex features enable multi_agent # Feature aktivieren
codex features disable js_repl # Feature deaktivieren
codex --enable multi_agent exec "..." # Per-Session
# MCP
codex mcp list # Konfigurierte Server
codex mcp add my-tool -- my-command # Server hinzufügen
codex mcp remove my-tool # Server entfernen
# Auth
codex login status # Auth-Status prüfen
```