Overview

Run coding agents in isolated cloud sandboxes through one HTTP API.

Epho turns coding-agent harnesses into an API. Send a prompt, choose a harness and model, and receive the work as a live event stream or collect it asynchronously.

The API base URL is:

https://app.epho.io/api

The execution model

Every request belongs to a team and runs as a turn inside a durable chat:

  1. Epho accepts a team-scoped API key.
  2. A turn is created and placed on the run queue.
  3. Epho creates or resumes an isolated sandbox.
  4. The selected harness receives the prompt and provider key.
  5. Progress is persisted as events.
  6. The final answer and output artifacts are saved.
  7. The sandbox is stopped so compute billing ends.

The same persisted events power synchronous streaming, asynchronous polling, and reconnectable SSE subscriptions.

Primary concepts

ConceptMeaning
API keyAuthenticates a team and scopes access to that team's chats, credit, and runs
ChatA durable conversation with a fixed harness, model, sandbox size, system prompt, and MCP configuration
TurnOne prompt and one agent run within a chat
HarnessThe coding-agent runtime: codex, claude, or opencode
Provider keyYour OpenAI, Anthropic, or OpenCode Zen credential for a particular run
SandboxThe isolated compute environment created or resumed for the chat
EventA lifecycle or agent-generated progress item persisted on the turn
ArtifactA file produced by the agent and exposed through a short-lived download URL

Two ways to run

Use POST /v1/chat when you want one connection that streams until the turn settles. Use POST /v1/chat/async when a worker, webhook consumer, or scheduled job should submit work and return immediately.

Both modes use the same launch path, persistence, retries, concurrency controls, and result format.

Where to go next