Agent schema reference
Complete agent examples, typed inputs and outputs, and field reference.
An agent file has 4 top-level blocks: ellipsis, optional trigger, optional input, and session. Set ellipsis.kind to agent. Unknown fields fail validation. See Agents for how files deploy and run.
Scheduled test checks
Every night at 02:00 UTC, a session runs the tests and reports failures without changing code.
React to a pull request
Each push to a non-draft pull request in api-repo that changes src/routes/ starts a session. The trigger decides which events match; the environment decides which repositories are checked out.
Typed input and output
Run it with {"input":{"description":"Reject expired reset tokens"}} instead of a prompt. Read the validated result from GET /v1/sessions/{session_id}/output.
Structured output works with the models that list it in GET /v1/account/models.
Add a Codex skill
A skill is a directory with a SKILL.md file that gives Codex a reusable procedure and its supporting files:
SKILL.md needs YAML frontmatter with a description. Ellipsis reads the skill from the session's checkout of that repository, or from its default branch when the repository isn't in the session. A missing or invalid skill fails the session.
A session can have up to 10 skills. Each skill can have up to 50 files, 64 KiB per file, and 512 KiB in total.
Identity and triggers
| Field | Meaning |
|---|---|
ellipsis.name | Agent name, unique within the account |
ellipsis.description | Description shown in the dashboard |
ellipsis.enabled | Whether the agent is active |
ellipsis.metadata | labels and annotations for your own use |
trigger | One cron or react trigger; omit to run only on demand |
input.json_schema | Schema the run's input must match |
input.message | First-message template; omit to send the input as JSON |
In input.message, {{field}} inserts a field from the input. Triggered agents can insert event fields the same way. Every reference must exist in the input schema or the trigger's event.
Session settings
| Field | Meaning |
|---|---|
session.claude_code or session.codex | Exactly one; chooses Claude Code or Codex |
session.claude_code.prompt or session.codex.prompt | The task |
session.claude_code.model or session.codex.model | Model ID; see Models |
session.claude_code.effort or session.codex.effort | Reasoning effort; see Claude Code or Codex |
session.claude_code.max_turns | Most turns the agent takes on each message |
session.environment | Saved environment name or inline environment |
session.permissions | GitHub and Ellipsis access |
session.budget | Spend limits in dollars |
session.conversation.interactive | Whether the session stays open for follow-ups; default true |
session.metadata | String keys and values stored on every session |
session.output.json_schema | Schema for the final JSON result |
session.skills | Skills from a repository (Codex) |
See Models, the Environment schema reference, and Permissions.
Budgets
Values are US dollars. session caps each session. day, week, and month cap this agent's total spend over the last 1, 7, and 28 days. Handlers take the same fields. Account limits also apply; see Budgets.