Background agents
Some steps in shipping software need judgment: triaging a failure, picking an owner, deciding whether a change is safe. Start an agent at that point with one API call. It reads the code, makes the call, and returns typed output your pipeline can act on, inside limits the platform enforces.
POST /v1/sessions is the whole integration. Declare a structured output schema and the session must exit with JSON matching it, so the verdict feeds straight back into the step that asked.
curl https://api.ellipsis.dev/v1/sessions \
-H "Authorization: Bearer $ELLIPSIS_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"config_id": "agent_x9Kd3Fq2",
"prompt": "Candidate 1d40c7f is cut. Decide if it ships.",
"metadata": {"trigger": "release-gate"}
}'One request in, a typed verdict back
Its instructions, model, and environment live in one YAML file in your repository, live on merge. Append Dockerfile RUN lines to install the tools the decision needs, and they bake into a cached image.
ellipsis: version: v1 name: Release gate description: Decide whether a release candidate is safe to shipsession: harness: type: claude_code model: claude-opus-4-8 instructions: | Review every commit since the last release tag, run the migration checks, and decide whether this candidate ships. environment: repositories: - name: api-repo image: dockerfile_append: | RUN apt-get update && apt-get install -y postgresql-client setup: | cd api-repo && pip install -r requirements.txtInstructions, model, and machine in one committed file
Hard budget caps stop a runaway session, the GitHub token is minted with exactly the scope the config grants, and every session records its full log with cost per step.
session: permissions: github: permissions: read_only repositories: [api-repo] budget: session: 2.00 day: 20.00Budgets and permissions enforced by the platform