Expand description
Codex provider — wraps OpenAI’s codex CLI.
Based on the official Codex CLI reference.
- CLI:
codex exec --json "<prompt>" - Protocol: JSONL with event types
thread.started → turn.started → item.completed → turn.completed - Sandbox modes:
read-only,workspace-write,danger-full-access - Approval:
--ask-for-approval <policy>(--full-autois deprecated upstream).
Each query() re-invokes codex exec rather than keeping a long-lived
subprocess: multi-turn is achieved by passing the previous session_id
to resume().
§Minimal example
use nucel_agent_codex::CodexExecutor;
use nucel_agent_core::{AgentExecutor, SpawnConfig};
use std::path::Path;
let executor = CodexExecutor::new();
let session = executor.spawn(
Path::new("/my/repo"),
"Refactor the cost calculation in src/cost.rs",
&SpawnConfig { model: Some("gpt-5-codex".into()), ..Default::default() },
).await?;
// Save the session id and resume later:
let sid = session.session_id.clone();
session.close().await?;
let resumed = executor.resume(
Path::new("/my/repo"), &sid, "Now add tests.", &SpawnConfig::default(),
).await?;
println!("{}", resumed.query("Did the tests pass?").await?.content);See also: workspace README
and the runnable example crates/unified/examples/codex_resume.rs.
Structs§
- Codex
Executor - Codex executor — spawns
codex execCLI subprocess.