Background agents

Put an LLM decision maker in your SDLC

Some steps in shipping software need judgment, not a script: triaging the failure, choosing the owner, deciding whether a change is safe. Spawn a background agent at that point with one API call. It reads the code, makes the call, and returns an answer your pipeline can act on, inside limits the platform enforces.

release-gate · CI stepPOST /sessions
curl https://api.ellipsis.dev/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 API call

Spawn a decision maker from anywhere in your pipeline

POST /sessions is the whole integration: one HTTP call from a CI step, a deploy script, or your own service starts an agent session. 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.
agents/release-gate.yamllive on merge
ellipsis:  version: v1  name: Release gate  description: Decide whether a release candidate is safe to shipclaude:  model: claude-opus-4-8  system: |    Review every commit since the last release tag, run the    migration checks, and decide whether this candidate ships.environment:  repositories:    - name: splitshift-api  image:    dockerfile_append: |      RUN apt-get update && apt-get install -y postgresql-client    setup: |      cd splitshift-api && pip install -r requirements.txt

Defined as code

The decision maker is a file your team reviews

Its instructions, model, and environment live in one YAML file in your repository, live on merge. That includes the machine it runs on: append Dockerfile layers to install the tools the decision needs, a database client, a profiler, your own CLI, and they bake into a cached image.
agents/release-gate.yamlenforced by the platform
permissions:  github:    permissions: read_only    repositories: [splitshift-api]budget:  session: 2.00  day: 20.00
GET /sessions/session_4Bn8kL2w/logevery step, one file
git push · splitshift-api403 · read-only token
session_9Kt4vR7m · stopped at its session capbudget_hit

Platform guardrails

Judgment you can delegate because the limits are not up to the agent

Every session records its full log: each tool call, each turn, cost per step, downloadable as one file. Hard budget caps stop a runaway session cleanly, and the GitHub token is minted with exactly the scope the config grants, so a decision maker with read-only access cannot push, no matter what it decides.

More ways teams use agents

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