On the Ellipsis cloud, agents run in isolated sandboxes, so your code is secure and the whole team can see what they did. There is nothing to host and nothing to babysit.
Each agent runs in its own sandbox with scoped credentials and a hard budget. Developers get parallelism, the platform team gets the audit trail.
Cloud data flow
Events enter Ellipsis cloud, run in managed sandboxes, and return as GitHub code changes.
Developer Laptop
Spawn remote agent with @ellipsis
Slack
tagged in #engineering
GitHub
CI pipeline
Linear
Assigned to @ellipsis
Sentry
New error reported
Control plane
spawns runs, checks permissions, records status
Agent Sandboxes
ephemeral, scoped to single agent
Agent Watchtower
streams every step, tracks budgets
GitHub
pushedbranch: ellipsis/fix-auth
commit: 8f3a1c9
pull request opened
Ellipsis backend writes the change back to GitHub.
Events enter the cloud, run in sandboxes, return as code changes
Every PR, issue, Slack thread, and Sentry alert is one durable conversation. Pushed commits get incremental review instead of amnesiac re-reviews, a reply wakes it in seconds with its working tree intact, and merge closes it. Idle time costs near zero.
pull_request_open · priya-shah opened #512
Reviewed the diff, flagged a double-booking window in trade_engine.py
2m 14s · $0.41
pull_request_push · priya-shah pushed 2 commits
Incremental review: the lock fix holds, one nit on the retry test
58s · $0.12
@ellipsis make the retry test cover shift boundaries · marcus-lee
Extended test_trade_retry with boundary cases, pushed 1 commit
1m 41s · $0.28
One durable conversation across the life of a PR
Run on a schedule, react to 15 event types across GitHub, Linear, Slack, and Sentry, or start on demand from the dashboard, API, or CLI. Work starts the moment the event fires, while context is fresh.
triggers: - type: cron schedule: "0 14 * * 1-5" - type: react events: - event: pull_request_open - event: push branches: [main, release/*] - event: sentry_issue_alertTriggers declared in the agent's YAML
Tag @ellipsis on GitHub, Slack, or Linear. It picks up the conversation it was mentioned in, takes the action you asked for, and answers in the same thread. It remembers the conversation, so 'now fix it' works.
marcus-lee
@ellipsis use the staging database, not prod
👀 · conversation woken, same working tree
ellipsis[bot]
Switched the fixtures to the staging database and re-ran the suite: 12 passed. Pushed the change to this branch.
A mention answered in the same thread
A review agent is the same YAML as any other: it reacts on every head advance of a pull request, holds one conversation per PR, and reviews only the commits it has not seen. Any coding agent can write slop; yours is the one that catches it before merge.
ellipsis: version: v1 name: Review agent description: Review every PR, incrementally on pushtrigger: type: react pull_request: on: [opened, pushed]session: claude: system: file: .agents/prompts/review.md environment: repositories: - name: api-repo budget: session: 2.00A review agent defined in YAML
Every trigger, steering surface, and lifecycle rule the runtime enforces, so nothing here is your team’s job to build.
Standard five-field cron expressions, all in UTC. AWS EventBridge rate() and at() expressions pass through verbatim.
React to opened, pushed, merged, closed, review_submitted, and commented, filtered by repository, branch, labels, paths, drafts, and author.
Fire on commits pushed to a branch or on GitHub issues opened, closed, or commented, with the same filter semantics.
A new Linear issue or a Sentry issue or metric alert starts a session. A re-firing Sentry issue reaches agents at most once every 6 hours.
Mention agents answer app mentions, direct messages, and thread replies, and a react trigger can fire when a channel is created.
A built-in responder answers every mention with no config. A mention trigger replaces it with your own agent and scopes its platforms.
Any agent starts directly, with an appended prompt and a per-session config override, recorded as source api or cli in history.
A pull request, GitHub issue, Linear issue, or Slack thread is one durable conversation. Every follow-up on that surface continues it.
Across turns the agent keeps the whole exchange and the working tree, so a follow-up continues the work instead of redoing it.
After a turn the sandbox stays warm, then state is snapshotted and the sandbox destroyed. The next message resumes it intact in a fresh sandbox.
budget.session caps cumulative spend across every turn. A conversation at its cap records budget_hit; raise the budget to continue it.
The YAML on your default branch is the live agent. Pull requests preview config changes, and an invalid edit keeps the last good version running.