Agents as code

Define Agents in YAML

Write the prompt, model, permissions, and budget in a file next to your code, then push to deploy. Every change goes through a pull request, so the team can review how each agent is configured.

01

Agents are defined as code

An agent is a YAML file in your repo: the prompt, the model, the sandbox, the permissions, the budget. Like infrastructure-as-code, for your agents.

your-org / agents
standup-automator.yaml
ellipsis:
name: Standup automator
description: Posts a daily standup digest to Slack
trigger:
type: cron
schedule: "30 8 * * 1-5"
session:
harness:
type: claude_code
model: claude-opus-4-8
instructions: |
Each weekday, summarize yesterday's merged PRs, the
reviews still waiting, and any failing CI, then post
the digest to #engineering and @ the right owners.
budget:
session: 2

$

Define the agent in YAML, live on merge

02

Deploy with git push

The version of the file on your default branch is the live agent. Merge a change and the next session uses it. There is no deploy step and nothing to restart.

Add dep-updater agent #322Merged
+ agents/dep-updater.yaml · opened by ellipsis[bot]
Config is validellipsis
Approvedpriya-shah
dep-updater is livesynced from main
An edit that fails validation never deploys; the last good config stays live

The pull request that deploys an agent

03

MCP servers, permissions, and budgets in the same file

Add your own MCP servers, scope what the agent can do on GitHub, and set spend limits per session, day, week, and month. It all sits next to the prompt, so a reviewer sees what an agent can reach and spend before it runs.

agents/migration-reviewer.yamlenforced at the token mint
session:  permissions:    github:      repositories: [api-repo]      permissions:        contents: read        pull_requests: write
GitHub mints the token with this scope, so nothing in the sandbox can exceed it

Access and spend declared beside the prompt

Frequently asked questions

Explore the platform