Automations

Automate everything with cloud agents

Agent sessions are defined in code, and can be spawned via CLI, API, in response to webhook events, or on a cron. All the benefits of cloud agents included: isolated sandbox, dependencies installed, full logging, permission limits, and budget caps.

agents/nightly-migration-checker.yamllive on merge
ellipsis:  version: v1  name: Nightly migration checker  description: Run splitshift-api's migration checks nightlyclaude:  system: |    Run `make check-migrations` in splitshift-api. If it fails,    identify the migration at fault and open an issue with the    failing output and the likely fix.trigger:  type: cron  schedule: "0 3 * * *"sandbox:  repositories:    - name: splitshift-api  variables:    - name: DOPPLER_TOKENbudget:  session: 1.50

One YAML file

Every session comes from a config in your repository

The prompt, the trigger, the repositories it clones, and its spend caps live in one file. Creating or changing it is a pull request, live on merge, so the review process you already have becomes the change-control process for your automation.
agents/issue-to-pr.yamlruns at image build
sandbox:  image:    setup: |      poetry install      pnpm install --frozen-lockfile
first session · builds the image3m40s
every session after · boots the snapshot8s

Isolated sandbox

An unattended run can build and test your code

Each session gets its own container with your repositories cloned and gh authenticated. Dependency installs bake into a cached image, so the nightly run boots the snapshot in seconds instead of installing from scratch, and nothing it writes reaches the next session.
issue-to-pr · #314Completed
Implement CSV export
$0.42 spent31.2K tok4m02s158 steps
156Editweb/exports/csv.ts · +84 −0
157Bashpnpm test exports · 12 passed
158Commit pushedfeat/csv-export → PR #314
View all 158 steps →

Full logging

Read what the 3am session actually did

Every tool call, every turn, and the exact instructions the agent launched with are recorded, with cost and duration per step. An automation nobody watched is still fully auditable, and the whole history downloads as first-party records.
$ agent session search "webhook retries"

Investigated webhook retry storms after the queue migration

session_4Hn2… · tomas-vidal · splitshift-api · 3 days agostepsrecap

Added idempotency keys to the trade-webhook consumer

session_8Rw9… · ellipsis[bot] · splitshift-api · last weeksimilarpr
full text + semantic similarity, one query

Searchable history

Find the run that already looked into this

One query covers transcripts, recaps, and the pull requests your automations produced, by keyword or by meaning. Months of unattended work becomes something the team can ask questions of instead of a folder of logs.
agents/documentation-maintainer.yamlscoped at the mint
sandbox:  github:    permissions:      contents: write      pull_requests: write    repositories: [splitshift-docs]
gh pr create · splitshift-docsopened #128
git push · splitshift-api403 · not in scope

Permission limits

It cannot touch what you did not grant

Scope each agent's GitHub token down to read-only, or to a single repository. GitHub enforces the narrowing when the token is minted, so nothing running in the sandbox can exceed it, and every credential is revoked at teardown.
agents/nightly-migration-checker.yamlUSD, enforced live
budget:  session: 1.50  day: 5.00  week: 20.00  month: 60.00
session_9Kt4vR7m · stopped at its session capbudget_hit

Budget caps

A runaway automation stops itself

Cap what one session can spend, and what this agent can spend across a day, a week, or a month. A session that reaches its cap stops cleanly and records budget_hit, which is not an error, and a run blocked by a trailing limit never gets a sandbox at all.

More ways teams use agents

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