Catalog PyPI
PACKAGE EXPLORERView in registry

agentcube-sdk

PyPI

Python SDK for AgentCube Code Interpreter

Versions collected1
Direct dependencies3From release 0.1.0
Last observed20 Oct, 21:46 UTC

README

Version 0.1.0 documentation

AgentCube Python SDK

The official Python SDK for AgentCube, enabling programmatic interaction with secure, isolated Code Interpreter environments.

This SDK creates a seamless bridge between your application and the AgentCube runtime, handling the complexity of:

  • Session Management: Automatically creating and destroying isolated environments.
  • Execution: Running shell commands and code (Python, Bash) remotely.
  • File Management: Uploading and downloading files to/from the sandbox.

Features

  • Simple API: Pythonic context managers (with statement) for automatic resource cleanup.
  • Flexible: Supports both short-lived (ephemeral) and long-running sessions.
  • Kubernetes Native: Automatically authenticates using Service Account tokens when running in-cluster.

Installation

git clone https://github.com/volcano-sh/agentcube.git
cd agentcube/sdk-python
pip install .

Quick Start

from agentcube import CodeInterpreterClient

with CodeInterpreterClient() as client:
    output = client.run_code("python", "print('Hello, AgentCube!')")
    print(output)
# Session automatically deleted on exit

Manual Lifecycle Management

For long-running applications, you can manually control the lifecycle:

# Create a session with a 1-hour timeout
client = CodeInterpreterClient(ttl=3600)

try:
    client.run_code("python", "print('Session started')")
    # ... perform operations ...
    # File system state persists within session
    client.write_file("42", "value.txt")
    client.run_code("python", "print(open('value.txt').read())")
finally:
    client.stop()  # CRITICAL: Ensure resources are released

File Operations

with CodeInterpreterClient() as client:
    client.upload_file("./data.csv", "/workspace/data.csv")
    client.run_code("python", """
import pandas as pd
df = pd.read_csv('/workspace/data.csv')
df.describe().to_csv('/workspace/summary.csv')
""")
    client.download_file("/workspace/summary.csv", "./summary.csv")

API Reference

MethodDescription
execute_command(cmd)Execute shell command
run_code(language, code)Execute code (python/bash)
upload_file(local, remote)Upload file to sandbox
download_file(remote, local)Download file from sandbox
write_file(content, path)Write string to file
list_files(path)List directory contents
stop()Delete session and release resources

Configuration

CodeInterpreterClient(
    name="custom-template",        # CodeInterpreter CRD template name
    namespace="agentcube",         # Kubernetes namespace
    ttl=7200,                      # Session TTL (seconds)
    session_id="existing-id",      # Optional: reuse existing session
    verbose=True                   # Enable debug logging
)

Environment Variables:

  • WORKLOAD_MANAGER_URL: Control Plane URL
  • ROUTER_URL: Data Plane URL

Advanced: Session Reuse

For workflows requiring file system state persistence across multiple client instances:

Note: Each run_code call spawns a new process. Python variables do NOT persist. Only file system state is preserved.

# Step 1: Create session and save state to file
client1 = CodeInterpreterClient()
session_id = client1.session_id  # Save for reuse
client1.write_file("42", "value.txt")
# Don't call stop() - let session persist

# Step 2: Reuse session with new client
client2 = CodeInterpreterClient(session_id=session_id)
client2.run_code("python", "print(open('value.txt').read())")  # File persists
client2.stop()  # Cleanup when done

Development

make build-python-sdk
python3 -m pytest sdk-python/tests/

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.031 Mar 20263

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 21:46 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:8e9b1df43bf30066a8b3a14c160a973a6b31ac0880466a4a6a6deeb3b9228e90