Skip to main content
This guide walks you through building a sandbox, pushing it to the registry, and running an agent against it.
A sandbox defines what tools your agent can use. The agent has built-in tools like read_file, write_file, and bash. Any programs you add to the sandbox become tools the agent can invoke by running commands through bash.

Prerequisites

Install Docker and the Trelent SDK:
You’ll also need Trelent credentials (a client ID and secret). See Authentication.

Build the sandbox

A sandbox is a Docker image containing the tools and skills your agent needs.

Create the project folder

Add a skill

Skills are markdown files that teach the agent what it can do and how. The agent reads these at runtime.
Create skills/translate.md:

Write the Dockerfile

Install the translate-shell CLI and copy in your skills. Create Dockerfile:

Build and push

Build the image and push it to the Trelent registry. Pushing auto-registers the image as a sandbox.
The image tag must be prefixed with your client ID: <registry-url>/<client-id>/<image-name>:<image-tag>. Pushes without the client-ID prefix are rejected.
When referencing the sandbox in the SDK you drop the registry + client-ID prefix and just use translator:latest. No separate registration step is needed.

Create a run

Now that your sandbox is registered, you can create runs against it.

Verify your sandbox

Confirm your sandbox appears in the list:

Create a run

A run executes a prompt inside your sandbox using a harness (the agent framework) and a model (the underlying LLM).
harness is optional — it defaults to ClaudeCodeHarnessSpec() with claude-sonnet-4-6. See Harnesses for the full list.

Get the result

Poll until the run completes, then read the result:

Next steps