Cloud Agents
Agents you define as YAML in your repository, triggered by cron schedules, mentions, and repository events. Each session runs in an isolated cloud sandbox and delivers a real artifact.
What cloud agents do
A cloud agent is one YAML file in your repository: a trigger, a model, and a prompt. When the trigger fires, Ellipsis creates a sandbox with your repositories cloned, the agent does the work, and it delivers a real artifact where your team already looks.
trigger session, in a fresh sandbox artifact
──────────────────────────────────────────────────────────────────────────────────────
cron "0 9 * * 1" ──▶ clones splitshift-web and ──▶ the week's merged
splitshift-api, reads the work, summarized
merged PRs, writes a summary in Slack
@ellipsis on PR #482 ──▶ checks out the PR, runs the ──▶ an answer in the
"why do the trade failing test, reads the trace PR thread
tests fail?"
Linear issue SPL-214 ──▶ reproduces the stuck trade, ──▶ a pull request
"shift trade stuck writes the fix and its test against splitshift-api
in pending"
every sandbox is destroyed when its session ends;
the session's timeline, spend, and log persistEach of those is a session. You pay per session, and every session outlives its sandbox: the full step timeline with each tool call's spend, the downloadable log, and the exact config version it ran (see Sessions). An agent with no trigger runs on demand from the dashboard, CLI, or API.
Anatomy of an agent
The complete file behind the first row of the diagram:
ellipsis:
version: v1
name: Recent work summary # how the agent appears everywhere
claude:
model: claude-haiku-4-5-20251001 # per agent; default is claude-opus-5
system: | # the instructions for every session
Find the pull requests merged in splitshift-web and
splitshift-api in the last 7 days and post a summary,
under 150 words, to the #eng channel in Slack. Ground
every line in a real PR. Never invent activity.
trigger:
type: cron
schedule: "0 9 * * 1" # Mondays 09:00 UTC
sandbox:
repositories: # cloned into the sandbox
- name: splitshift-web
- name: splitshift-api
budget:
session: 1.00 # a session may spend at most $1Commit it as agents/recent-work-summary.yaml and merge: the version on your default branch is the live agent, with no deploy step (Agents as code). Every Monday at 09:00 UTC it starts a session, posts the summary to #eng, and shuts down; the session stays readable in the dashboard.
Four fields carry the definition. ellipsis.name is the agent's identity, trigger decides when it runs (Triggers), claude.model picks the model, and claude.system is the prompt it follows on every session. Everything else has a default; Configuration YAML covers every field.
Pages in this section
- Quick start: install the GitHub app, commit a starter agent, and watch its first session.
- Configuration YAML: every field, type, default, and how invalid configs fail.
- Triggers: cron, mentions, pull request, Sentry, Linear, and starts from the API and CLI.
- Lifecycle: deploy by merging, preview on a branch, disable, delete, and revive.
- Sessions: how a session executes, its statuses, the timeline, logs, and steering it live.
- Conversations: mention and on-demand sessions are durable; follow-ups keep full context.
- Sandboxes: the isolated machine per session, your image and tools, compute, IDE, and caching.
- Skills: teach every agent your team's conventions once, not per prompt.
- Permissions: scoped GitHub tokens, permission maps, read-only agents, and secrets.
- Guides: problem-shaped walkthroughs, from automating standups to diagnosing Sentry alerts.
Agents as code
Each agent is one YAML file in your repository. Merging to the default branch deploys it; branches preview it; git gives you review, history, and rollback.
Quick start
Install the GitHub app, commit one agent YAML to your repository, and watch its first session run. Zero to a deployed agent in one sitting.