Agents

Triggers

Cron schedules, repository events, and mentions.

A trigger decides when an agent runs. Declare triggers in an agent config and Ellipsis registers them when the config syncs from your default branch. A config can declare more than one trigger, and the same agent can mix trigger types. There are three: cron runs on a schedule, react runs on a repository or issue event, and mention answers @ellipsis where the work lives.

Cron

A cron trigger runs an agent on a schedule. Add a cron trigger to an agent config and Ellipsis registers the schedule when the config syncs from your default branch.

ellipsis:
  name: Daily triage
  description: Reviews new issues every weekday morning.
triggers:
  - type: cron
    schedule: "0 14 * * 1-5"
claude:
  system: |
    Find open GitHub issues that need attention.
    Prioritize bugs, stale customer reports, and blocked pull requests.
    Post a concise triage summary with owners and next actions.

Schedule format

schedule accepts a standard five-field cron expression: minute hour day-of-month month day-of-week. All schedules run in UTC.

ExpressionRuns
0 14 * * 1-514:00 UTC, Monday through Friday.
0 6 * * *06:00 UTC every day.
0 14 * * 114:00 UTC every Monday.

You cannot restrict both day-of-month and day-of-week in the same expression. Leave one as *.

You can also pass an AWS EventBridge Scheduler expression directly with cron(...), rate(...), or at(...), and Ellipsis uses it as written.

triggers:
  - type: cron
    schedule: "rate(6 hours)"

Notes

  • A cron agent has no typed prompt. The agent's system is the instruction it runs on each fire.
  • A config can declare more than one cron trigger. Each schedule fires independently.
  • Schedules are registered from the config on the default branch. Editing or removing the trigger updates or removes the schedule on the next sync.

Typical uses are daily triage, weekly summaries, and dependency checks.

React

A react trigger runs an agent when a repository or issue event happens. Declare the events you care about and Ellipsis starts a run each time a matching event lands. The agent acts on the event itself: there is no typed prompt, just the agent's system plus the event context.

ellipsis:
  name: Issue triager
triggers:
  - type: react
    events:
      - event: issue_open
claude:
  system: |
    A new issue was just opened. Read it, label it, and if it is a clear,
    small bug, open a draft pull request with a fix and link it back to the
    issue. Otherwise post a short triage comment with next steps.

Events

Each entry under events names one event. A config can list as many as it needs.

eventFires on
pull_request_openA pull request is opened or reopened (non-draft).
pull_request_open_draftA draft pull request is opened.
pull_request_mergeA pull request is merged.
pull_request_closeA pull request is closed.
pull_request_pushA push to a branch that has an open pull request.
pull_request_review_submittedA pull request review is submitted.
pull_request_commentA comment is added to a pull request.
issue_openAn issue is opened or reopened.
issue_closeAn issue is closed.
issue_commentA comment is added to an issue.
linear_issue_openA Linear issue is created.
pushA push to any branch.

Repository and branch filters

An event can set repository to scope it to a single repository. When omitted, it applies to every repository on the config.

The push event also supports branches. Each entry is an exact branch name, a prefix ending in *, or default for the repository's default branch. An empty list matches every branch. Branch filters are only valid for push.

triggers:
  - type: react
    events:
      - event: push
        branches: ["release/*", "default"]
claude:
  system: |
    Code was just pushed. Run the smoke test suite. If anything fails, open
    an issue tagging the author of the head commit with the failing output.

One webhook can start more than one run. A push to a branch with an open pull request can fire both push and pull_request_push for configs that declare them.

Mention

A mention trigger runs Ellipsis when someone mentions @ellipsis where the work already lives. Ellipsis starts a run with that conversation as context, answers in the thread, or makes code changes with the tools available to the run.

The mention agent's response is built in: it answers from the conversation it was mentioned in, so it has no system prompt. A mention config controls which platforms the agent answers on, plus the sandbox, tools, model, and limits the run uses.

ellipsis:
  name: Mentions
  description: Answers @ellipsis on GitHub, Slack, and Linear.
triggers:
  - type: mention
    platforms: [github, slack, linear]

Platforms

platforms scopes where the agent answers. Leave it empty to answer on all of them.

PlatformWhere it answers
githubPull request and issue comments.
slackApp mentions, direct messages, and thread replies.
linearIssue comments.

Where mentions work

SurfaceContext
GitHub pull request commentsThe pull request, repository, and triggering comment.
GitHub issue commentsThe issue, repository, and triggering comment.
Slack messages and app mentionsThe Slack thread and any linked GitHub identity.
Linear issue commentsThe Linear issue and comment thread.

On GitHub, an @ellipsis mention is detected anywhere in the comment. On Linear, the comment must lead with @ellipsis so a mirrored GitHub thread does not summon Ellipsis again. In a Slack thread that already mentioned Ellipsis, a reply continues the run without mentioning it again.

What to ask

Use mentions for work that needs repository context or integration actions.

@ellipsis why does this migration need a backfill?
@ellipsis fix the connection leak from your review comment and open a PR