OpenInspect
Automations

Automations

Run coding agents on a schedule or in response to webhooks, Sentry alerts, Slack messages, and GitHub events.

Last reviewed View as MarkdownEdit on GitHubGive feedback

An automation stores a repository selection, a model, and a set of instructions once, then starts a new session every time its trigger fires.

The Automations page listing automations with their trigger, schedule, recent run results, and Pause, Trigger, and Delete actions
The Automations list: each row shows the trigger, the next run, the last runs, and Pause, Trigger, and Delete actions.

What an automation does

Each firing creates an ordinary session. The session clones the configured repository, runs your instructions on the OpenCode or Claude Agent harness you chose, and can open a pull request like any other session. Sessions started by an automation are titled [Auto] <automation name> and appear in the sessions list alongside interactive sessions.

Every trigger type follows the same path from firing to outcome, and repeated failures pause the automation:

Open Automations in the sidebar to see every automation in the workspace, or click Browse templates to start from a pre-built idea.

Trigger types

TriggerFires whenAvailability
ScheduleA cron schedule comes dueAvailable
Inbound WebhookAny system sends an authenticated HTTP POSTAvailable
Sentry AlertA Sentry Custom Integration delivers a new error, regression, or metric alertAvailable
Slack MessageSomeone posts a matching message in a watched Slack channelAvailable
GitHub EventA pull request, issue, comment, check suite, or workflow run event arrivesAvailable when the GitHub bot is deployed
Linear EventLinear issue activityPlanned (shown as "Soon" in the trigger picker)

The trigger type is fixed after creation. To change it, create a new automation.

Common use cases

  • Nightly or weekly dependency updates that open a pull request.
  • Reacting to a deploy or incident webhook from your own tooling.
  • Triaging new Sentry issues and opening a fix PR.
  • Reviewing pull requests as they open.
  • Recurring reports posted back to Slack.

Who can create and manage automations

Everyone with automation read access, Viewers included, sees every automation and its run history. Members create automations and manage and trigger their own; Administrators and Owners manage and trigger any. Scheduled and event-driven runs execute under the owner's authority, while a Trigger Now run executes under the authority of the person who clicked it. The full role table and run-authority rules are in Workspace access.

Automation statuses

The badge on each automation shows one of three states:

StatusMeaning
EnabledReady to fire on its trigger.
DegradedEnabled but has recent consecutive failures. The badge shows the count, for example "Degraded (2 failures)".
PausedNot firing. Either paused by a person or auto-paused after repeated failures.

Run statuses

Each firing appears as one row in the automation's Run History:

StatusMeaning
StartingA session is being created for this run.
RunningAt least one session is executing.
CompletedEvery session finished successfully.
FailedEvery session failed. The failure reason is shown on the row.
Partial failureA multi-repository firing where some repositories completed and some failed.
SkippedThe firing was skipped because a previous run was still active.

Click View session on a row to open the session with its full output and artifacts.

Concurrency

Scheduled and manual triggers allow one active run per automation: a schedule slot that comes due during an active run is recorded as Skipped, and Trigger Now is rejected. Event-driven triggers use per-event concurrency keys, so unrelated events (for example two different pull requests) can run at the same time. The scheduled rules are in Schedules; event rules are on each trigger's page.

Auto-pause after failures

An automation that fails three consecutive times is paused automatically. Scheduled and manual runs both count. Runs that outlive their execution budget count as failures too. Skipped firings count neither way.

Click Resume to re-enable the automation. Resuming resets the failure counter and, for schedules, computes the next run from the current moment. A successful Trigger Now while paused also resets the counter without resuming.

Execution timeout

Each run's session has an execution budget: the sandbox timeout in effect for the run's repository or environment (see Sandbox settings), otherwise the operator's EXECUTION_TIMEOUT_MS, otherwise 2 hours. The session fails the prompt at the budget, and the run fails with it. If that completion never reaches the scheduler, a sweep fails the run with reason execution_timeout after an additional grace period of 100 minutes. A run that reports success after the sweep already declared it lost is corrected back to Completed, but the failure strike already counted stays until the next fully successful firing.

Limits

LimitValue
Automation name200 characters
Instructions15,000 characters
Repositories and environments per automation10 combined (schedule triggers only; event triggers take 0 or 1 repository)
Minimum schedule interval15 minutes
Inbound webhook payload64 KB
Sentry webhook payload256 KB
Concurrent runs per automation1 for scheduled and manual triggers
Consecutive failures before auto-pause3
Run execution timeoutThe session's execution budget (2 hours by default), plus a 100-minute sweep grace before execution_timeout

Next steps

On this page