nucel-agent-sdk 0.2.0

Unified AI coding agent SDK — provider-agnostic abstraction for Claude Code, Codex, and OpenCode
Documentation

nucel-agent-sdk

crates.io docs.rs License

Umbrella crate for the Nucel Agent SDK.

Provider-agnostic Rust SDK for AI coding agents. Spawn Claude Code, Codex, or OpenCode through a single AgentExecutor trait — swap providers via config, your code stays the same.

This crate re-exports:

…plus a build_executor() factory for runtime provider selection.

Install

[dependencies]
nucel-agent-sdk = "0.1"
tokio = { version = "1", features = ["full"] }

Quick Start

use nucel_agent_sdk::{AgentExecutor, ClaudeCodeExecutor, SpawnConfig};
use std::path::Path;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let executor = ClaudeCodeExecutor::new();

    let session = executor.spawn(
        Path::new("/my/repo"),
        "Fix the failing tests",
        &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);

    let cost = session.total_cost().await?;
    println!("spent ${:.4}", cost.total_usd);

    session.close().await?;
    Ok(())
}

Pick a provider at runtime

use nucel_agent_sdk::{build_executor, available_providers};

let executor = build_executor("claude-code", None).unwrap();
let executor = build_executor("codex", None).unwrap();
let executor = build_executor("opencode", Some("http://localhost:4096".into())).unwrap();

for name in available_providers() {
    println!("provider: {name}");
}

Accepted aliases for Claude Code: "claude-code", "claude_code", "claudecode" (case-sensitive). "codex" and "opencode" are exact.

Feature matrix

Capability Claude Code Codex OpenCode
session_resume yes no yes
token_usage yes yes yes
mcp_support yes no yes
autonomous_mode yes yes yes
structured_output no yes no
Transport subprocess subprocess HTTP
Required runtime claude CLI codex CLI opencode serve

More

License

Apache-2.0