nucel-agent-opencode 0.1.2

OpenCode provider for Nucel agent-sdk — HTTP client to OpenCode server
Documentation

nucel-agent-opencode

OpenCode provider for Nucel Agent SDK — HTTP client to the OpenCode server.

Features

  • HTTP client — connects to opencode serve via REST API
  • Session management — create sessions, send prompts, get responses
  • Native resume — OpenCode supports resuming existing sessions by ID
  • MCP support — OpenCode's MCP integration is available
  • Budget enforcement — automatic cost checks before each query
  • Directory header — sends x-opencode-directory header for context

How it works

OpenCode runs as a server (opencode serve on :4096). This provider:

  1. Creates a session via POST /session
  2. Sends prompts via POST /session/{id}/prompt
  3. Parses the response's parts array for text content
  4. Tracks cost from the cost field in responses

Usage

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

let executor = OpencodeExecutor::new(); // default: http://127.0.0.1:4096

// Or custom URL
let executor = OpencodeExecutor::with_base_url("http://my-server:8080");

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

// Follow-up query (uses existing session)
let resp = session.query("Now add more tests").await?;
println!("{}", resp.content);

session.close().await?;

Server Requirements

  • OpenCode installed: npm install -g opencode
  • Server running: opencode serve (default port 4096)

License

Apache-2.0