Skip to main content
Create and manage scheduled tasks. Agents can schedule one-off or recurring (cron) tasks that trigger a prompt back to themselves or run a shell command on the gateway host. The agent that creates a schedule is always the one that receives the trigger — cross-agent scheduling is not supported.

Installation

Install this tool individually:
Or install all tools from the toolkit:

Configuration

Prerequisites

No external dependencies beyond cron-parser (bundled). Requires beige ≥ 0.1.3 for agent identity injection (BEIGE_AGENT_NAME).

Action Types

Trigger Types

Commands

Optional flags for create:

How It Works

Schedule files are stored as individual JSON files at storagePath/schedules/<id>.json. A background tick loop starts with the gateway (start()) and wakes up every tickInterval seconds to scan active schedules. Any schedule whose nextRun is in the past is executed immediately.
  • prompt / message-file: a fresh session is created for each run and ctx.prompt() is called with the scheduling agent as the target. Each run produces an independent conversation.
  • exec: the command is run via child_process.execFile with shell: true on the gateway host.
A run history record is written to storagePath/history/ after every execution, regardless of success or failure. The tick loop also fires once at gateway startup to catch any schedules that became due while the gateway was offline.

Concurrency

Different schedules run in parallel — a slow schedule A will never block schedule B from firing on time. However, each individual schedule can only have one execution in flight at a time. If a schedule’s previous execution is still running when the next tick finds it due again, that window is simply skipped (no catch-up). This prevents resource exhaustion from a single schedule while keeping independent schedules responsive.

Storage Layout

On older beige versions (without ctx.dataDir), the default is ~/.beige/plugins/schedule/.

Security Model

Error Reference

Implementation Details

  • Target: Gateway (runs on the host, not in the sandbox)
  • Storage: One JSON file per schedule; atomic rename-writes to prevent partial reads
  • Dependency: cron-parser for cron expression parsing and timezone-aware next-run computation