Scheduling & Notifications
Three command groups for time-based automation:genie schedule manages triggers, genie daemon controls the scheduler process, and genie notify configures delivery channels.
Schedule Commands
genie schedule create
Create a new scheduled trigger.
| Option | Description |
|---|---|
--command <cmd> | Command to execute (e.g., "genie spawn reviewer") |
--at <time> | One-time schedule at absolute time (ISO 8601) |
--every <interval> | Repeating: duration (10m, 2h, 24h) or cron expression |
--after <duration> | One-time schedule after delay (10m, 2h) |
--timezone <tz> | Timezone (default: UTC) |
--lease-timeout <duration> | Lease timeout for runs (default: 5m) |
--at, --every, or --after is required.
genie schedule list
List schedules with next due trigger time.
| Option | Description |
|---|---|
--json | Output as JSON |
--watch | Refresh every 2s |
genie schedule cancel
Cancel a schedule and skip pending triggers.
| Option | Description |
|---|---|
--filter <expr> | Filter expression (e.g., status=pending) |
genie schedule retry
Reset a failed trigger to pending so it runs again.
genie schedule history
Show past executions for a schedule.
| Option | Description |
|---|---|
--limit <n> | Max rows to show (default: 20) |
Daemon Commands
The scheduler daemon is the background process that polls for due triggers and executes them.genie daemon start
Start the scheduler daemon.
| Option | Description |
|---|---|
--foreground | Run in foreground (for systemd ExecStart) |
genie daemon stop
Stop the scheduler daemon gracefully.
genie daemon status
Show daemon state, PID, uptime, and trigger stats.
genie daemon install
Generate a systemd service unit and enable it for auto-start on boot.
genie daemon logs
Tail structured JSON scheduler logs.
| Option | Description |
|---|---|
-f, --follow | Follow log output |
--lines <n> | Number of lines to show (default: 20) |
Notification Commands
Configure where Genie delivers notifications (task updates, schedule alerts, etc.).genie notify set
Set a notification preference for a channel.
| Option | Description |
|---|---|
--channel <channel> | Channel: whatsapp, telegram, email, slack, discord, tmux |
--priority <priority> | Minimum priority threshold (default: normal) |
--default | Set as default channel |
genie notify list
List notification preferences.
| Option | Description |
|---|---|
--json | Output as JSON |
genie notify remove
Remove a notification preference.
| Option | Description |
|---|---|
--channel <channel> | Channel to remove |