For every box, you can configure a built-in agent like Claude Code, Codex or OpenCode. It has access to the filesystem, git, and shell commands and should simulate running an Agent on your own computer.
You can choose between:
run()when you want to wait for completion and then read the final typed result.stream()when you want real-time output while the agent is running.
Configure an Agent#
Agent Options#
You can pass provider-specific agent options with the options field on box.agent.run() and box.agent.stream().
The exact option shape depends on the configured agent:
ClaudeCode:maxTurns,maxBudgetUsd,effort,thinking,disallowedTools,agents,promptSuggestions,fallbackModel,systemPromptCodex:modelReasoningEffort,modelReasoningSummary,personality,webSearchOpenCode:reasoningEffort,textVerbosity,reasoningSummary,thinking
In the Python SDK these option keys are snake_case — e.g. max_turns, max_budget_usd, model_reasoning_effort, web_search, reasoning_effort.
To bring your own agent process, use a custom agent.
Quickstart#
Codebase refactor#
Use Claude Code when you want an agent to work through a larger code change with filesystem, shell, and git access.
Fast code review summary#
Use OpenCode when you want a concise review or summary over an existing diff or repository state.
Structured analysis#
Use Codex when you want a strongly structured response that you can feed into another system.
Clone a repository, run the agent, and open a pull request.
Run one box per file, process in parallel, and return ranked structured results.
API#
Prompt (required)#
Type: string
Supported on: box.agent.run() and box.agent.stream()
The task instruction sent to the agent.
Options#
Type: AgentOptions
Supported on: box.agent.run(), box.agent.stream(), and box.schedule.agent()
Provider-specific agent options forwarded to the underlying runner.
Timeout#
Type: number
Supported on: box.agent.run(), box.agent.stream(), and box.schedule.agent()
Default: no execution timeout
Execution timeout in milliseconds. When reached, the run is aborted.
onToolUse#
Type: { name: string; input: Record<string, unknown> }
Supported on: box.agent.run() and box.agent.stream()
Called whenever the agent invokes a tool (for example file, shell, or git tools).
responseSchema#
Type: Zod Schema
Supported on: box.agent.run()
Attach a Zod schema to get typed output.
maxRetries#
Type: number
Supported on: box.agent.run()
Default: 0
Retry count to compensate temporary provider outages or similar transient errors. Retries use exponential backoff (1s, 2s, 4s, ...) capped at 30s.
Webhook#
Type: WebhookConfig
Supported on: box.agent.run()
Useful for fire-and-forget mode. The SDK returns immediately and sends the completion payload to your webhook URL when the run succeeds or fails.