Docs / Concepts
Edit on GitHub

Jobs

Jobs are scheduled tasks that run automatically on a timer. They let OpenViber perform recurring work without manual intervention.

What Are Jobs?

A Job is a YAML file that defines:

  • A cron schedule (when to run)
  • A prompt (what to do)
  • Optional agent configuration (model, skills, tools)

Jobs are stored in ~/.openviber/jobs/ (or configured jobs directory) and are loaded automatically when OpenViber starts.

Example Job

name: Daily Summary
description: Summarize GitHub activity every morning
schedule: "0 9 * * *"
provider: openrouter
model: deepseek/deepseek-chat
skills:
  - github
prompt: |
  Summarize my GitHub notifications from the last 24 hours.
  List any PRs that need my review.

Job Configuration

FieldRequiredDescription
nameYesHuman-readable job name
descriptionNoWhat the job does
scheduleYesCron expression (see below)
providerNoLLM provider (default: openrouter)
modelNoModel to use
skillsNoSkills to enable
toolsNoAdditional tools
promptYesThe task for the agent

Schedule Format

Jobs use standard cron syntax with optional seconds:

ExpressionMeaning
0 9 * * *Every day at 9:00 AM
0 */6 * * *Every 6 hours
0 0 * * 1Every Monday at midnight
*/30 * * * *Every 30 minutes
*/3 * * * * *Every 3 seconds (6-field format)

Use Cases

Job TypeExample
MonitoringCheck system health and alert on issues
ReportingGenerate daily status summaries
AutomationClean up old files weekly
IntegrationSync data between services

Default Jobs Location

~/.openviber/
├── jobs/
│   ├── daily-summary.yaml
│   ├── health-check.yaml
│   └── weekly-cleanup.yaml

Jobs are loaded when openviber start runs. Changes to job files require a restart.