Features

Cron (Scheduled Jobs)

Run agent tasks on a schedule. Each job sends a prompt to the agent at the configured interval, with optional skill activation and timezone support.

Updated · v0.3.15

Quick start

# Every 4 hours: run code review
arcana cron add --name "review PRs" --schedule "0 */4 * * *" --prompt "review open PRs for bugs"

# Daily summary at 9 AM
arcana cron add --name "daily digest" --schedule "0 9 * * *" --prompt "summarize today's changes"

# Run the daemon (blocks, evaluates jobs every 60s)
arcana cron start

Commands

CommandDescription
arcana cron addCreate a new scheduled job
arcana cron listList all jobs with status and last run
arcana cron remove --id <id>Delete a job
arcana cron pause --id <id>Disable a job without deleting it
arcana cron resume --id <id>Re-enable a paused job
arcana cron run --id <id>Run a job immediately (manual trigger)
arcana cron startStart the scheduler daemon

Adding a job

arcana cron add \
  --name "daily review" \
  --schedule "0 9 * * *" \
  --prompt "review today's git commits and summarize changes" \
  --skill "git" \
  --tz "America/New_York"

Options

FlagRequiredDescription
--schedule, -sYesCron expression or alias (see below)
--prompt, -pYesThe prompt sent to the agent
--name, -nNoHuman-readable job name
--skillNoActivate a specific skill for this job
--timezone, --tzNoTimezone for the schedule (default: UTC)

Schedule syntax

Standard 5-field cron expressions are supported:

┌───────────── minute (0–59)
│ ┌───────────── hour (0–23)
│ │ ┌───────────── day of month (1–31)
│ │ │ ┌───────────── month (1–12)
│ │ │ │ ┌───────────── day of week (0–7, 0 and 7 = Sunday)
│ │ │ │ │
* * * * *

Examples

ScheduleMeaning
0 9 * * *Every day at 9:00 AM
0 */4 * * *Every 4 hours
30 8 * * 1-5Weekdays at 8:30 AM
0 0 1 * *First of every month
*/15 * * * *Every 15 minutes

Aliases

AliasExpands to
@hourly0 * * * *
@daily0 0 * * *
@weekly0 0 * * 0
@monthly0 0 1 * *
@yearly0 0 1 1 *

Listing jobs

arcana cron list
ID         NAME/PROMPT                       SCHEDULE          STATUS   RUNS   LAST RUN
────────────────────────────────────────────────────────────────────────────────────────
a1b2c3d4…  daily review                      0 9 * * *         enabled  12     2026-07-20 09:00
e5f6g7h8…  review PRs                        0 */4 * * *       paused   48     2026-07-20 08:00

Running a job manually

arcana cron run --id a1b2c3d4

This runs the job immediately and prints the agent's output.

Starting the daemon

arcana cron start

The scheduler evaluates all enabled jobs every 60 seconds (configurable). Press Ctrl+C to stop.

# Output
Cron scheduler running (interval: 60s). Ctrl+C to stop.
[2026-07-20T09:00:00.000Z] Running job: daily review
[output] Today's changes include 3 commits to packages/engine...

Configuration

Cron settings live in ~/.arcana/config.json:

{
  "cron": {
    "enabled": true,
    "intervalSeconds": 60
  }
}
KeyDefaultDescription
cron.enabledtrueEnable or disable the cron system
cron.intervalSeconds60How often the scheduler checks for due jobs

See Configuration for the full reference.

How it works

License requirement

Cron jobs require a valid API key (ARCANA_API_KEY or provider-specific keys). The agent runs unattended with your configured provider and model.