Skip to content

SDKs

agentkernel provides official SDK clients in five languages. Each SDK wraps the HTTP API with idiomatic language bindings.

Quick Comparison

SDK Package Registry Install
Node.js agentkernel npm npm install agentkernel
Python agentkernel-sdk PyPI pip install agentkernel-sdk
Go agentkernel pkg.go.dev go get github.com/thrashr888/agentkernel/sdk/golang
Rust agentkernel-sdk crates.io cargo add agentkernel-sdk
Swift AgentKernel GitHub Swift Package Manager

All SDKs share the same API surface:

  • health() — Health check
  • run(command, options?) — Run a command in a temporary sandbox
  • runStream(command, options?) — Run with streaming output (SSE)
  • listSandboxes() — List all sandboxes
  • createSandbox(name, options?) — Create a sandbox (with resource limits and profile)
  • getSandbox(name) — Get sandbox info (includes image, vcpus, memory)
  • removeSandbox(name) — Remove a sandbox
  • execInSandbox(name, command) — Execute in an existing sandbox
  • readFile(name, path) — Read a file from a sandbox
  • writeFile(name, path, content) — Write a file to a sandbox
  • deleteFile(name, path) — Delete a file from a sandbox
  • getSandboxLogs(name) — Get audit log entries for a sandbox
  • batchRun(commands) — Run multiple commands in parallel
  • sandbox(name) / withSandbox(name) — Scoped session with automatic cleanup

Configuration

Every SDK resolves configuration the same way:

  1. Explicit options passed to the constructor
  2. Environment variables (AGENTKERNEL_BASE_URL, AGENTKERNEL_API_KEY)
  3. Defaults (http://localhost:18888, no API key, 30s timeout)

Quick Start by Language

Node.js

import { AgentKernel } from "agentkernel";

const client = new AgentKernel();
const result = await client.run(["echo", "hello"]);
console.log(result.output);

Python

from agentkernel import AgentKernel

with AgentKernel() as client:
    result = client.run(["echo", "hello"])
    print(result.output)

Rust

use agentkernel_sdk::AgentKernel;

#[tokio::main]
async fn main() -> agentkernel_sdk::Result<()> {
    let client = AgentKernel::builder().build()?;
    let output = client.run(&["echo", "hello"], None).await?;
    println!("{}", output.output);
    Ok(())
}

Go

import agentkernel "github.com/thrashr888/agentkernel/sdk/golang"

client := agentkernel.New(nil)
output, _ := client.Run(context.Background(), []string{"echo", "hello"}, nil)
fmt.Print(output.Output)

Swift

import AgentKernel

let client = AgentKernel()
let output = try await client.run(["echo", "hello"])
print(output.output)

Source Code

All SDKs live in the sdk/ directory:

sdk/
  nodejs/     → npm (agentkernel)
  python/     → PyPI (agentkernel)
  golang/     → Go module (github.com/thrashr888/agentkernel/sdk/golang)
  rust/       → crates.io (agentkernel-sdk)
  swift/      → Swift Package Manager (AgentKernel)