Skip to main content

Overview

A Loop is a recurring agent run built on the trigger router: a cron-source subscription bound to an agent. It’s the governed, observable wrapper over a raw cron job — creating a loop records the binding and creates the backing cron job that executes it.

Create a Loop

Options

Schedule Format (Cron Expression)

Output

The response includes the created loop and the cron_job_id of the backing executor (null if no runtime is reachable yet — the binding still persists and syncs later).

List Loops

Returns all loops with:
  • id, name, schedule (cron expression), active
  • target (prompt + optional profileName)
  • cronJobId of the backing executor

Get a Loop

Shows a single loop’s full details.

Update a Loop (pause / resume / edit)

Pausing and resuming a loop leaves the runtime untouched — only the binding row changes.

Options


Run Now

Fires the loop immediately, regardless of schedule. The regular schedule is not affected. Returns the run_id of the triggered run.

Remove a Loop

Permanently deletes the loop binding and best-effort removes the backing cron job. Cannot be undone.

Typical Workflow

Loops vs. Cron Jobs

naive cron is a push-through to the runtime’s scheduler. A Loop wraps it with a binding-registry row and per-run delivery status, and pauses/resumes without touching the runtime. On a Tower the executor is the box’s Hermes gateway cron; in the cloud it’s the sidecar cron. See Loops for the API-level reference.