Background agents

Spawn an Agent from Your Pipeline

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.

01

One API call from a CI step or a service

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.

release-gate · CI stepPOST /v1/sessions
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"}
  }'
201 · session_4Bn8kL2w · queuedsource: api
structured output{"safe_to_ship": false, "reason": "migration has no backfill"}

One request in, a typed verdict back

02

The agent is a file your team reviews

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.

agents/release-gate.yamllive on merge
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.txt

Instructions, model, and machine in one committed file

03

Limits the agent cannot change

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.

agents/release-gate.yamlenforced by the platform
session:  permissions:    github:      permissions: read_only      repositories: [api-repo]  budget:    session: 2.00    day: 20.00
GET /v1/sessions/session_4Bn8kL2w/logevery step, one file
git push · api-repo403 · read-only token
session_9Kt4vR7m · stopped at its session capbudget_hit

Budgets and permissions enforced by the platform

You can use Ellipsis for...

Every use case runs on the same platform. See how it works