Expand description
Claude Code provider — wraps the claude CLI as a subprocess.
Spawns claude -p ... --output-format stream-json --verbose and speaks
JSONL stdio. Supports:
- One-shot and multi-turn queries (single subprocess kept alive per session)
- Cost tracking per session (from
usageevents on the wire) - Permission mode configuration (
PermissionMode→--permission-mode) - Budget enforcement (
budget_usd→ cancel on overrun)
§Minimal example
use nucel_agent_claude_code::ClaudeCodeExecutor;
use nucel_agent_core::{AgentExecutor, SpawnConfig};
use std::path::Path;
let executor = ClaudeCodeExecutor::new();
let session = executor.spawn(
Path::new("/my/repo"),
"Fix the failing test in src/lib.rs",
&SpawnConfig {
model: Some("claude-opus-4-6".into()),
budget_usd: Some(5.0),
max_turns: Some(10),
..Default::default()
},
).await?;
let resp = session.query("Did CI pass?").await?;
println!("{}", resp.content);
session.close().await?;See also: workspace README
and the runnable example crates/unified/examples/claude_basic.rs.
Structs§
- Claude
Code Executor - Claude Code executor — spawns
claudeCLI subprocess.