VPN07

OpenClaw Cron & Webhook Commands 2026: Automate AI Tasks — Complete Q&A

February 20, 2026 13 min read Automation Guide

About This Guide: OpenClaw's power comes from its ability to act without being asked — scheduled cron jobs that run morning briefings, webhook triggers that respond to external events, heartbeat check-ins, and 24/7 daemon operation. This Q&A covers every automation command including openclaw start/stop/restart, cron configuration, webhook setup, and background process management.

Automation Commands at a Glance

# Agent lifecycle

openclaw start # Start agent (foreground)

openclaw start --daemon # Start as background daemon

openclaw stop # Graceful shutdown

openclaw stop --force # Force immediate stop

openclaw restart # Stop then start

openclaw restart --graceful # Finish current task first

openclaw status # Show running state + stats

# Cron job management

openclaw cron list # List all scheduled jobs

openclaw cron add # Add new cron job

openclaw cron remove [id] # Remove a cron job

openclaw cron enable [id] # Enable disabled job

openclaw cron disable [id] # Disable job temporarily

openclaw cron run [id] # Run job manually right now

openclaw cron logs [id] # View job run history

# Webhook management

openclaw webhook list # List registered webhooks

openclaw webhook create # Create new webhook endpoint

openclaw webhook delete [id] # Remove a webhook

openclaw webhook test [id] # Send test payload

openclaw webhook logs [id] # View webhook trigger history

Part 1: start, stop, restart, status Commands (Q1–Q10)

Q1 What is the difference between "openclaw start" and "openclaw start --daemon"?

openclaw start (foreground)

  • ✅ Shows live logs in terminal
  • ✅ Easy to Ctrl+C to stop
  • ✅ Best for development/testing
  • ❌ Stops when terminal closes
  • ❌ Not suitable for 24/7 use

openclaw start --daemon

  • ✅ Runs in background
  • ✅ Survives terminal close
  • ✅ Best for 24/7 production
  • ✅ Logs written to file
  • ❌ Need to check logs separately

Q2 How do I make OpenClaw auto-start on system boot?

# Option 1: Built-in autostart command

openclaw start --autostart

# Registers system service automatically

# Option 2: macOS LaunchAgent (manual)

cat > ~/Library/LaunchAgents/com.openclaw.plist << EOF

<?xml version="1.0" encoding="UTF-8"?>

<plist version="1.0"><dict>

<key>Label</key><string>com.openclaw</string>

<key>ProgramArguments</key>

<array><string>/usr/local/bin/openclaw</string><string>start</string></array>

<key>RunAtLoad</key><true/>

<key>KeepAlive</key><true/>

</dict></plist>

EOF

launchctl load ~/Library/LaunchAgents/com.openclaw.plist

# Option 3: Linux systemd service

openclaw start --systemd # Auto-creates systemd unit file

systemctl enable --now openclaw

Q3 What does "openclaw status" show and how to interpret it?

openclaw status

──────────────────────────────────────

🦞 OpenClaw Agent Status

──────────────────────────────────────

Status: ● Running (PID: 18432)

Agent Name: Jarvis

Uptime: 3 days 14 hours 22 min

AI Provider: anthropic (claude-sonnet-4-5)

Memory: 245 MB used

Skills Active: 8 / 12 installed

Messages Today: 47

Cron Jobs: 5 active

Webhooks: 3 registered

Last Activity: 4 minutes ago

API Calls Today: 312 (est. $0.48)

Q4 How do I perform a graceful restart without interrupting active tasks?

# Graceful restart (waits for current task to finish)

openclaw restart --graceful

# Immediate restart (use when not processing anything)

openclaw restart

# Restart with config reload

openclaw restart --reload-config

# Check if restart is safe right now

openclaw status --check-safe-restart

Always use --graceful in production to avoid interrupting in-progress skill executions or webhook handlers.

Q5 How do I run multiple OpenClaw agent instances simultaneously?

# Start with a named profile (separate config)

openclaw start --profile work

openclaw start --profile personal

openclaw start --profile team-bot

# Each profile uses separate port and config directory

# work: ~/.openclaw-work/

# personal: ~/.openclaw-personal/

# Check status of specific profile

openclaw status --profile work

# Stop a specific profile

openclaw stop --profile work

Q6 OpenClaw stops unexpectedly — how do I enable crash recovery?

# Start with auto-restart on crash

openclaw start --daemon --auto-restart

# Configure in .env

AUTO_RESTART=true

RESTART_DELAY=5000 # Wait 5s before restart

MAX_RESTART_COUNT=10 # Max restarts per hour

# Use PM2 for production-grade process management

npm install -g pm2

pm2 start "openclaw start" --name openclaw

pm2 save && pm2 startup

Pro tip: For truly reliable 24/7 operation, combine PM2 process management with VPN07's stable connection. PM2 handles crashes, VPN07 handles network reliability. Together, they ensure your agent never misses a cron job.

Q7 How do I monitor OpenClaw's CPU and memory usage?

# Real-time performance stats

openclaw status --metrics

openclaw status --watch # Updates every 2 seconds

# Detailed performance report

openclaw status --full

# System-level monitoring

top -p $(openclaw status --pid)

htop # Then filter by "openclaw"

Q8 How do I send a command to a running agent from the terminal?

# Send a message to your agent via CLI

openclaw send "What's on my calendar today?"

# Trigger a specific skill command

openclaw send --skill gmail "send_email to:[email protected] subject:Hello body:Hi there"

# Trigger from shell script or another process

echo "run morning briefing" | openclaw send --stdin

Q9 How do I use openclaw with Docker for 24/7 cloud deployment?

# Basic Docker run

docker run -d \

--name openclaw-agent \

--restart unless-stopped \

-e ANTHROPIC_API_KEY="sk-ant-xxx" \

-e TELEGRAM_BOT_TOKEN="xxx" \

-v ~/.openclaw:/root/.openclaw \

-p 3000:3000 \

openclaw/openclaw:latest

# Check logs

docker logs openclaw-agent -f

# Send command to dockerized agent

docker exec openclaw-agent openclaw status

Q10 What does "openclaw start --debug" enable?

openclaw start --debug

# Enables:

# ✅ Verbose API request/response logging

# ✅ Full skill execution traces

# ✅ Memory read/write operations logged

# ✅ Cron job scheduling details

# ✅ Webhook payload logging

# ✅ Performance timing for each operation

# Note: Debug mode increases disk I/O significantly

# Use only for troubleshooting, not production

Part 2: Cron Job Commands (Q11–Q20)

Q11 How do I add a cron job via the CLI command?

# Interactive cron job creator

openclaw cron add

# Add with inline parameters

openclaw cron add \

--name "morning-briefing" \

--schedule "0 8 * * *" \

--action "send morning briefing summary"

# Add with specific skill

openclaw cron add \

--name "weekly-grocery-order" \

--schedule "0 9 * * 0" \

--skill tesco-shopper \

--action "order_groceries"

Q12 How do I write cron schedule expressions for OpenClaw?

Format: minute hour day-of-month month day-of-week

Every day at 8 AM 0 8 * * *
Every Monday at 9 AM 0 9 * * 1
Every hour 0 * * * *
Every 15 minutes */15 * * * *
First day of month at midnight 0 0 1 * *
Weekdays at 9 AM and 5 PM 0 9,17 * * 1-5
Human-readable: every 5 minutes @every 5m
Daily (shorthand) @daily

Q13 How do I list all scheduled cron jobs and check their status?

openclaw cron list

ID NAME SCHEDULE STATUS LAST RUN NEXT RUN

1 morning-briefing 0 8 * * * active 2026-02-20 08:00 2026-02-21 08:00

2 weekly-grocery 0 9 * * 0 active 2026-02-16 09:00 2026-02-23 09:00

3 health-check */30 * * * * active 2026-02-20 14:30 2026-02-20 15:00

4 backup-memory 0 2 * * * disabled 2026-02-19 02:00 N/A

# View only active jobs

openclaw cron list --status active

Q14 How do I configure cron jobs directly in config.json?

// ~/.openclaw/config.json

{

"cron": [

{

"name": "morning-briefing",

"schedule": "0 8 * * *",

"action": "Send me a morning briefing with calendar, emails, and weather",

"channel": "telegram",

"enabled": true

},

{

"name": "api-cost-check",

"schedule": "0 20 * * *",

"action": "Report today's API usage cost and token count",

"channel": "telegram",

"enabled": true

},

{

"name": "memory-backup",

"schedule": "0 3 * * *",

"skill": "my-backup-skill",

"action": "backup_memory",

"enabled": false

}

]

}

Q15 How do I run a cron job immediately for testing?

# Run by cron job ID

openclaw cron run 1

# Run by cron job name

openclaw cron run morning-briefing

# Run and view output

openclaw cron run morning-briefing --verbose

# Dry run (shows what would happen, doesn't execute)

openclaw cron run morning-briefing --dry-run

Q16 What are heartbeats and how do I configure them?

Heartbeats are a special type of proactive message — your agent reaches out to you on a schedule without waiting for input. Unlike regular cron jobs that run a task silently, heartbeats always send a message to your chat.

// In config.json

{

"heartbeats": [

{

"name": "morning-check-in",

"schedule": "0 8 * * *",

"message": "Good morning! Here's your daily briefing...",

"include": ["calendar", "weather", "emails"]

},

{

"name": "end-of-day",

"schedule": "0 18 * * 1-5",

"message": "End of workday summary and tomorrow's prep"

}

]

}

Q17 A cron job didn't fire at the scheduled time — how do I debug this?

Step 1: Check the cron log

openclaw cron logs morning-briefing --last 10

Step 2: Verify agent was running at scheduled time

openclaw logs --since "2026-02-20 07:55" --until "2026-02-20 08:05"

Step 3: Check timezone configuration

openclaw config get TIMEZONE

# Cron schedules use the configured timezone

openclaw config set TIMEZONE "America/New_York"

Step 4: Check network — failed API call prevents cron delivery

If the agent couldn't reach the AI API at schedule time, the cron message won't be generated. VPN07's 1000Mbps stable connection prevents this.

Q18 How do I configure timezone for cron jobs?

# Set global timezone

openclaw config set TIMEZONE "America/New_York"

openclaw config set TIMEZONE "Europe/London"

openclaw config set TIMEZONE "Asia/Singapore"

# Or per-cron-job timezone (in config.json)

{

"name": "ny-morning-briefing",

"schedule": "0 8 * * *",

"timezone": "America/New_York",

"action": "morning briefing"

}

Q19 How do I set up a cron job that runs a shell command instead of an AI task?

// In config.json

{

"name": "server-health-check",

"schedule": "*/5 * * * *",

"type": "bash",

"command": "uptime && df -h",

"notify_on_error": true,

"notify_channel": "telegram"

}

Shell cron jobs run the command and only notify you if there's an error or the exit code is non-zero.

Q20 How do I view the history of a cron job's past runs?

# View last 20 runs for a specific job

openclaw cron logs morning-briefing

openclaw cron logs morning-briefing --last 50

# View runs within a date range

openclaw cron logs morning-briefing --since "2026-02-01"

# View only failed runs

openclaw cron logs morning-briefing --status failed

# Example output:

RUN_ID DATE DURATION STATUS

142 2026-02-20 08:00 4.2s ✅ success

141 2026-02-19 08:00 12.1s ✅ success

140 2026-02-18 08:00 - ❌ failed (ECONNRESET)

Part 3: Webhook Commands (Q21–Q28)

Q21 What is a webhook in OpenClaw and how does it work?

A webhook lets external services (GitHub, Stripe, your smart home hub, etc.) trigger your OpenClaw agent automatically. OpenClaw exposes an HTTP endpoint — when an external service calls that URL, your agent executes the configured action.

🌐

External Service

GitHub, Stripe, IFTTT...

→ POST →

🦞

OpenClaw Agent

Executes action + notifies you

Q22 How do I create a new webhook endpoint?

# Interactive webhook creator

openclaw webhook create

# Create with inline parameters

openclaw webhook create \

--name "github-pr-notifier" \

--path "/webhooks/github" \

--action "A new PR was opened: summarize and notify me"

# Output:

✅ Webhook created!

URL: http://your-server:3000/webhooks/github

Secret: wh_secret_xxxxxxxxxxxxx

ID: webhook_7

Q23 How do I expose my webhook URL to the internet (from behind NAT)?

If your OpenClaw runs on a home machine without a public IP, you need a tunnel:

✅ Option 1: cloudflared (free)

cloudflared tunnel --url http://localhost:3000

# Gives you: https://xxx.trycloudflare.com

✅ Option 2: ngrok

ngrok http 3000

# Gives you: https://abc123.ngrok.io

✅ Option 3: Deploy on VPS with VPN07

A $5/month VPS with VPN07 gives your agent a permanent public IP. Our 1000Mbps bandwidth handles any webhook traffic volume.

Q24 How do I add webhook secret verification for security?

# Create webhook with secret signature verification

openclaw webhook create \

--name "stripe-payments" \

--path "/webhooks/stripe" \

--secret "whsec_your_stripe_webhook_secret" \

--verify-signature true \

--action "A payment was received, notify me with details"

# OpenClaw verifies HMAC signature on every incoming request

# Invalid signatures are rejected with 401

Q25 How do I test a webhook by sending a simulated payload?

# Test using openclaw CLI

openclaw webhook test webhook_7

# Test with custom payload

openclaw webhook test webhook_7 \

--payload '{"action":"opened","pull_request":{"title":"Fix bug"}}'

# Test with curl directly

curl -X POST http://localhost:3000/webhooks/github \

-H "Content-Type: application/json" \

-d '{"action":"opened","number":42}'

Q26 How do I set up Gmail to trigger OpenClaw on new emails?

# Step 1: Install gmail skill

openclaw skills install gmail

# Step 2: Configure Gmail Pub/Sub webhook trigger

openclaw skills configure gmail

# Follow the OAuth + Pub/Sub setup wizard

# Step 3: Create webhook for Gmail events

openclaw webhook create \

--name "gmail-incoming" \

--path "/webhooks/gmail" \

--skill gmail \

--trigger "on_email_received" \

--action "Summarize and notify me of this email"

Q27 How do I view all webhook trigger history and success/failure rates?

# View recent webhook triggers

openclaw webhook logs

openclaw webhook logs webhook_7

openclaw webhook logs --last 50

# Filter by status

openclaw webhook logs --status failed

openclaw webhook logs --status success

# View success rate statistics

openclaw webhook stats

# Output: 98.4% success rate (last 30 days)

Q28 How does a reliable network affect cron jobs and webhooks?

Both cron jobs and webhooks make API calls to your AI provider when they trigger. A dropped or throttled connection causes:

❌ Without stable VPN

  • • Cron jobs silently fail
  • • Missing morning briefings
  • • Webhook timeouts
  • • ECONNRESET errors in logs

✅ With VPN07 1000Mbps

  • • 99.9% cron success rate
  • • Instant webhook responses
  • • Stable AI API connections
  • • Zero network-caused failures

Best VPN for 24/7 OpenClaw Automation

🥇

VPN07 — The Reliability Standard for AI Automation

9.8/10

Your cron jobs fire at 3 AM. Your webhook handler responds in under 200ms. Your 8 AM morning briefing arrives without fail. That's what VPN07's 10-year track record of network stability delivers — every day, for just $1.5/month.

$1.5
Per Month
1000Mbps
Bandwidth
70+
Countries
10yr
Stable Operation
Try VPN07 Free — $1.5/month →

Related Articles

Never Miss a Cron Job Again — Use VPN07

Your OpenClaw cron jobs and webhooks depend on a stable AI API connection. VPN07's 1000Mbps network across 70+ countries ensures every scheduled task fires on time, every webhook response arrives in under 200ms. 10 years trusted. $1.5/month.

$1.5
Per Month
1000Mbps
Bandwidth
99.9%
Uptime
24/7
Support
$1.5/mo · 10 Years Stable
Try VPN07 Free