Nucel Agent SDK
Provider-agnostic Rust SDK for AI coding agents. One trait, multiple backends.
Part of the Nucel ecosystem.
Supported Providers
| Provider | Executor | Protocol | CLI Required |
|---|---|---|---|
| Claude Code | ClaudeCodeExecutor |
JSONL subprocess | claude |
| Codex | CodexExecutor |
JSONL subprocess | codex |
| OpenCode | OpencodeExecutor |
HTTP + SSE | opencode serve |
Quick Start
use ;
use Path;
async
Provider Selection
use *;
// From config string (like agent-operator)
let executor = build_executor.unwrap;
let executor = build_executor.unwrap;
let executor = build_executor.unwrap;
Architecture
nucel-agent-sdk (unified - re-exports)
├── nucel-agent-core (traits + types, zero provider deps)
├── nucel-agent-claude-code (Claude Code CLI wrapper)
├── nucel-agent-codex (Codex CLI wrapper)
└── nucel-agent-opencode (OpenCode HTTP client)
Core Trait
Session API
let session = executor.spawn.await?;
// Follow-up queries
let resp = session.query.await?;
// Cost tracking
let cost = session.total_cost.await?;
// Cleanup
session.close.await?;
Crates
| Crate | Description |
|---|---|
nucel-agent-core |
Core traits (AgentExecutor), types (AgentResponse, AgentCost), session |
nucel-agent-claude-code |
Claude Code CLI subprocess wrapper |
nucel-agent-codex |
OpenAI Codex CLI subprocess wrapper |
nucel-agent-opencode |
OpenCode HTTP server client |
nucel-agent-sdk |
Unified re-export crate + build_executor() |
Adding a New Provider
- Create
crates/my-provider/ - Implement
AgentExecutortrait - Add to workspace
Cargo.toml - Re-export in
crates/unified/src/lib.rs - Add to
build_executor()match
Integration with agent-operator
# In agent-operator Cargo.toml
[]
= { = "../agent-sdk/crates/unified" }
// In adapter
use ;
let executor = build_executor?;
let session = executor.spawn.await?;
License
Apache-2.0