nucel-agent-claude-code 0.1.2

Claude Code provider for Nucel agent-sdk — subprocess wrapper for claude CLI
Documentation

nucel-agent-claude-code

Claude Code provider for Nucel Agent SDK — subprocess wrapper for the claude CLI.

Features

  • Streaming JSONL — real-time parsing of system/init, assistant, result messages
  • Token tracking — input, output, cache_read, cache_creation tokens
  • Budget enforcement — automatic cost checks before each query
  • Timeout protection — configurable timeout per query (default: 10 minutes)
  • Permission modesprompt, accept_edits, bypass_permissions, reject_all
  • Stderr capture — for debugging CLI errors

How it works

Spawns claude -p "<prompt>" --output-format stream-json --verbose as a subprocess, parses the JSONL output line-by-line, and extracts:

  • Text responses from assistant messages
  • Cost from result.total_cost_usd
  • Token usage from result.usage and result.modelUsage

Usage

[dependencies]
nucel-agent-sdk = "0.1"
use nucel_agent_sdk::{ClaudeCodeExecutor, AgentExecutor, SpawnConfig};

let executor = ClaudeCodeExecutor::new();

// Check availability
let avail = executor.availability();
if !avail.available {
    eprintln!("Install: npm install -g @anthropic-ai/claude-code");
    return;
}

// Spawn and query
let session = executor.spawn(
    std::path::Path::new("/my/repo"),
    "Fix the failing tests",
    &SpawnConfig {
        model: Some("claude-opus-4-6".into()),
        budget_usd: Some(5.0),
        permission_mode: Some(nucel_agent_sdk::PermissionMode::AcceptEdits),
        ..Default::default()
    },
).await?;

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

CLI Requirements

  • claude CLI installed: npm install -g @anthropic-ai/claude-code
  • Valid ANTHROPIC_API_KEY or Claude Max/Pro subscription

License

Apache-2.0