Checkpoints, Scheduled Tasks, and Persistent Goals

This chapter introduces Hermes's three automation and safety assurance mechanisms: checkpoints protect your files before executing dangerous operations, scheduled tasks let the Agent autonomously execute according to a plan, and persistent goals allow the Agent to advance long-term work across sessions.


Checkpoints and Rollback

Hermes provides a filesystem-level checkpoint mechanism that lets you create snapshots before the Agent executes dangerous operations, and roll back when needed.

Manual Creation and Recovery

Example

# Manually create a checkpoint in the session
/Checkpoint the state before refactoring

# List all checkpoints
/rollback

# Roll back to the specified checkpoint
/rollback 2

Command-line management

Example

# List all checkpoints
hermes checkpoints list

# Restore to the specified checkpoint
hermes checkpoints restore <id>

Automatic checkpoint: Before executing high-risk operations (such as large-scale file modifications, database changes), the Agent automatically creates a checkpoint without manual intervention.

Checkpoints are filesystem-level snapshots, suitable for manually creating one before having the Agent perform large-scale refactoring or data migration. It is not a replacement for Git commits, but an additional safety guarantee.


Scheduled Tasks (Cron)

Hermes has a built-in first-class Cron scheduling system that supports scheduling plans in multiple formats.

Create Scheduled Tasks

Example

# Interactively create scheduled tasks
hermes cron create

# Create a daily morning report task from the command line
hermes cron create \
  --name "daily-briefing" \
  --schedule "0 8 * * *" \
  --prompt Search for the latest developments in the AI field today and send the summary to Telegram \
  --platform telegram \
  --chat-id 123456789

Manage Scheduled Tasks

Example

# List All Tasks
hermes cron list

# Pause/Resume/Delete tasks
hermes cron pause daily-briefing
hermes cron resume daily-briefing
hermes cron delete daily-briefing

# Execute once now (for testing)
hermes cron run daily-briefing

Managing Cron in a Session

Example

# Use slash commands to manage scheduled tasks in sessions on any platform.
/cron list                 # View All Tasks
/cron pause <name>         # Pause Specified Task
/cron resume <name>        # Resume Specified Task

Cron Configuration Format

Each scheduled task is an independent JSON file:

Example

// File path: ~/.hermes/cron/daily-briefing.json
{
  "name": "daily-briefing",
  "schedule": "0 8 * * *",
"prompt": "Search for the latest AI developments today and compile into a briefing"
  "platform": "telegram",
  "chat_id": "123456789",
  "toolsets": ["web", "memory"],
  "enabled": true
}

Supported Scheduling Formats

FormattingExampleMeaning
Cron Expressions"0 8 * * *"Every day at 8 AM
Human language"every day at 8am"Same as above
Interval"every 2 hours"Execute every 2 hours

Cron Security: Handling Dangerous Commands

When a dangerous command requiring approval is encountered in a scheduled task, the default behavior isReject(instead of waiting for approval—because no one will be waiting at 4 AM to click approve):

Example

# File path: ~/.hermes/config.yaml
# Approval policy for scheduled tasks
approvals
:
  cron_mode
: deny     # deny (default) | approve (auto-approve, use with caution)

cron_mode: approve means dangerous commands in scheduled tasks are automatically approved and executed—use only in scenarios where you fully trust the task content.


Persistent Goals

Persistent goals allow Hermes to autonomously advance long-term tasks across multiple sessions, without you needing to remind it each time.

Manage Persistent Targets

Example

# Set a persistent goal
hermes goals add "Monitor Hermes Agent's Issues on GitHub weekly,"
Summarize unresolved issues and send to Slack"


# View All Targets
hermes goals list

# Pause/Complete/Delete Target
hermes goals pause <id>
hermes goals complete <id>
hermes goals delete <id>

Persistent Goals vs. Scheduled Tasks

Comparison DimensionScheduled Tasks (Cron)Persistent Goals (Goals)
Trigger MethodAutomatically triggered at fixed timesAgent autonomously decides when to act
Execution contentFixed prompt, identical every timeThe Agent dynamically makes decisions based on context
State trackingNone (executed independently each time)Track Progress
Applicable scenariosPeriodic reports, daily summariesLong-term tasks requiring contextual judgment
Typical exampleSend AI news at 8 AM every morningContinuously monitor issues in a repository and follow up

Cron is suitable for "doing fixed things at fixed times," while persistent goals are suitable for "Agent, use your judgment—here's the goal, you set the pace yourself." The two complement each other rather than substitute for each other.

other extensions