Python SDK for the Agent Orchestration API.
Project description
trelent-agents
Python SDK for the Trelent Agent Orchestration API.
Installation
pip install trelent-agents
Quick Start
Without authentication
from trelent_agents import Client
client = Client(api_url="http://localhost:8000")
images = client.images.list()
print(images)
run = client.runs.create(
sandbox="example-agent:latest",
prompt="Create hello.txt with a greeting",
)
print(run.run_id, run.status)
With authentication
When the API has authentication enabled, provide your OAuth2 client credentials:
from trelent_agents import Client
client = Client(
api_url="https://agents.trelent.com",
client_id="your-client-id",
client_secret="your-client-secret",
)
images = client.images.list()
run = client.runs.create(
sandbox="my-image:latest",
prompt="Do something useful",
)
The SDK handles token acquisition automatically — it exchanges your client credentials for a JWT via the API's /token endpoint before making authenticated requests.
The client also supports context manager usage:
with Client(api_url="https://agents.trelent.com", client_id="...", client_secret="...") as client:
runs = client.runs.list()
Client Options
client = Client(
api_url="https://agents.trelent.com", # API base URL (default: https://agents.trelent.com)
client_id="...", # OAuth2 client ID (optional)
client_secret="...", # OAuth2 client secret (optional)
scope="...", # Override default OAuth2 scope (optional)
)
Both client_id and client_secret must be provided together, or both omitted.
Resources
client.images
images = client.images.list()
# => list[RegistryImage] — [RegistryImage(name="my-image", tags=["latest", "v1"])]
When auth is enabled, images are automatically filtered to your namespace. Image names are returned without the namespace prefix.
client.sandboxes
sandboxes = client.sandboxes.list()
# => list[str] — registered sandbox image names
client.sandboxes.register("my-image:latest")
client.runs
from trelent_agents import LocalImporter, S3Exporter
# Create a run
run = client.runs.create(
sandbox="my-image:latest",
prompt="Build a web server",
model="gpt-5.4", # optional, default: "gpt-5.4"
timeout_seconds=3600, # optional, default: 3600
imports=[LocalImporter(path="./data")], # optional
exports=[S3Exporter()], # optional
)
# List runs (optionally filter by sandbox)
runs = client.runs.list()
filtered = client.runs.list(sandbox="my-image:latest")
# Get a specific run
run = client.runs.get("run-id")
# Check status
status = client.runs.get_status("run-id")
# Get checkpoints
chain = client.runs.get_checkpoint_chain("run-id")
checkpoint = client.runs.get_checkpoint("run-id", "checkpoint-id")
Run operations
# Fork (resume from checkpoint)
forked = run.fork(
"Continue from where you left off",
model="gpt-5.4",
)
# Refresh run state
run.refresh()
print(run.status) # updated status
client.health()
health = client.health()
# => HealthResponse(status="ok")
Connectors
Importing local files
from trelent_agents import LocalImporter
run = client.runs.create(
sandbox="my-image:latest",
prompt="Process the data",
imports=[LocalImporter(path="./my-data-dir")],
)
The LocalImporter tarballs and base64-encodes the local path, sending it inline with the request.
Exporting to S3
from trelent_agents import S3Exporter
run = client.runs.create(
sandbox="my-image:latest",
prompt="Generate a report",
exports=[S3Exporter(bucket="my-bucket", path="reports/")],
)
Docker Registry Setup
When auth is enabled, push images to your user namespace on the registry:
# Login with your OAuth2 credentials
docker login registry.example.com -u <client_id> -p <client_secret>
# Push to your namespace
docker tag my-image:latest registry.example.com/<client_id>/my-image:latest
docker push registry.example.com/<client_id>/my-image:latest
When creating runs via the SDK, just use the image name without the namespace prefix:
run = client.runs.create(
sandbox="my-image:latest", # not "<client_id>/my-image:latest"
prompt="...",
)
The API resolves the full registry path automatically based on your authenticated identity.
Types
The SDK exports the following types:
from trelent_agents import (
Client,
Run,
RunStatus,
RunResult,
RunStatusResponse,
RegistryImage,
CheckpointResponse,
ChatHistoryEntry,
FileOutput,
OutputFile,
HealthResponse,
WorkflowIds,
LocalImporter,
S3Exporter,
APIError,
NotFoundError,
ValidationError,
)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file trelent_agents-0.2.1.tar.gz.
File metadata
- Download URL: trelent_agents-0.2.1.tar.gz
- Upload date:
- Size: 7.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e7f877bc1ab39b3cdb0523ead8b86b4da69e31665f5d1164b3d93bbd955abe7
|
|
| MD5 |
bc84f78f129282a2784c20ddc222434b
|
|
| BLAKE2b-256 |
290a7654f3ee6be2f91995037ba322cf2f7698e9011599a0a6014bb3370208df
|
File details
Details for the file trelent_agents-0.2.1-py3-none-any.whl.
File metadata
- Download URL: trelent_agents-0.2.1-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed597e2c30c18537d0282ce07fb7892222f640015f102f0d2826be7bf295a4c8
|
|
| MD5 |
b7d089eb0d34ad062fba3d34cb76a35c
|
|
| BLAKE2b-256 |
02ea981d6b8b211164897c1ec0735aa56cc25430ce9530fe1eb85a416effd7d1
|