Arcana ARCANA

Cron Jobs

Schedule recurring prompts, reports, reviews, and checks that run automatically from the Arcana runtime. Cron jobs let you set and forget AI workflows — daily standups, weekly code reviews, hourly monitoring alerts, or any other repeated task.

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 *

Managing Jobs

# List all scheduled jobs with their next run time
arcana cron list

# Run a job immediately (regardless of schedule)
arcana cron run <job-id>

# Pause a job without removing it
arcana cron pause <job-id>

# Resume a paused job
arcana cron resume <job-id>

# Remove a job permanently
arcana cron remove <job-id>

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

How It Works

  • Jobs are stored in ~/.arcana/data/cron-jobs.json.
  • Each job gets its own agent session with conversation history and memory integration.
  • Destructive shell commands are blocked by default (safe mode) unless the job prompt explicitly requires them.
  • Jobs integrate with the memory system — the agent can read and write facts across runs.
  • If a job specifies a --skill, that skill's instructions are injected into the agent's system prompt.

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.

Last updated: Jul 23, 2026