OpenClaw on Your VPS Series
    Part 5 of 6

    Skills, Cron Jobs, and Automation

    Transform your conversational AI into an autonomous agent with curated skills, scheduled tasks, webhook integrations, and real-time email events.

    30 minutes
    Automation-focused

    Understanding the Skills System

    Skills are capability packs — collections of tool definitions, prompts, and code that extend what your agent can do. Skills ship from three sources:

    Bundled skillsincluded with OpenClaw, maintained by the core team. Safe to use without auditing.

    ClawHub community skillsthe public registry at clawhub.ai with 13,000+ packages. Not vetted by the OpenClaw team.

    Workspace skillsskills you write yourself, stored in ~/.openclaw/workspace/skills/.

    Safe Skill Installation Practices

    ⚠️ Security Warning

    Security researchers have found that between 12 and 20 percent of ClawHub skills in audits contained malicious code, data exfiltration, or prompt injection payloads. Treat every ClawHub skill as executable code from a stranger, because that is exactly what it is.

    Before installing any community skill:

    1. Check the ClawHub page for the skill's VirusTotal scan report. A flagged report is a hard stop.
    2. Review the source on GitHub. Read the actual tool definitions and any scripts it executes.
    3. Pin the version. Installing @latest means the author can push a malicious update.
    4. Review outbound network permissions. Unexpected external calls are a red flag.
    5. Check install count and age. High count + long history = lower risk.
    Skill management
    # List bundled skills
    openclaw skills list --bundled
    
    # Install a community skill pinned to a version
    openclaw skills install clawhub:steipete/github@2026.3.1
    
    # Install from official skills repo
    openclaw skills install github.com/openclaw/skills/github
    
    # View installed skills
    openclaw skills list
    
    # Remove a skill
    openclaw skills remove github

    Curated Skills Worth Installing

    Productivity & Communication

    • gmail — Read, search, label, archive, and send email via Gmail API (bundled)
    • google-calendar — Query and create calendar events
    • notion — Read from and write to Notion databases and pages
    • github — Query repos, create issues, review PRs, and search code

    System & Infrastructure

    • shell — Executes shell commands on the VPS (bundled). Scope carefully — runs as openclawops
    • docker-control — List containers, read logs, restart services, check resources
    • system-health — Reports CPU, memory, disk, and load average

    Research & Web

    • browser — Headless Chromium web browsing, form filling, screenshots
    • web-search — Search via Brave, Serper, or SerpAPI. Cheaper than browser for lookups
    • rss-reader — Monitor RSS feeds and surface new items matching keywords

    Cron Jobs and Scheduled Tasks

    OpenClaw includes a built-in cron scheduler. Tasks run inside agent sessions with full access to tools and skills.

    Example cron jobs
    # Daily morning briefing at 7:30 AM
    openclaw cron add \
      --name "morning-briefing" \
      --schedule "30 7 * * *" \
      --agent personal-agent \
      --channel telegram \
      --prompt "Summarize unread important emails, list today's calendar events, and note GitHub notifications. Keep it concise."
    
    # Weekly system health report every Monday at 9 AM
    openclaw cron add \
      --name "weekly-health" \
      --schedule "0 9 * * 1" \
      --agent work-agent \
      --channel slack \
      --prompt "Run a system health check: disk, memory, failed services, top 3 CPU processes. Flag anomalies."
    
    # Manage cron jobs
    openclaw cron list
    openclaw cron run morning-briefing    # Test immediately
    openclaw cron remove morning-briefing

    Timezone: Cron uses the system timezone. Confirm with timedatectl and set with sudo timedatectl set-timezone America/Chicago.

    Webhook-Triggered Automations

    Enable webhooks
    openclaw webhooks enable
    openclaw webhooks list

    GitHub Actions Integration

    Trigger an agent session when a CI build fails:

    GitHub Actions workflow step
    - name: Notify OpenClaw on failure
      if: failure()
      run: |
        curl -X POST https://agent.yourdomain.com/webhooks/github-ci \
          -H "Content-Type: application/json" \
          -H "X-OpenClaw-Token: ${{ secrets.OPENCLAW_WEBHOOK_TOKEN }}" \
          -d '{"event": "build_failed", "repo": "${{ github.repository }}"}'
    Create webhook handler
    openclaw webhooks create \
      --name "github-ci" \
      --agent work-agent \
      --channel slack \
      --prompt "A GitHub Actions build failed. Analyze the failure and suggest likely causes."

    Gmail Pub/Sub for Real-Time Email

    Deliver email events to the Gateway in real time rather than polling:

    Gmail Pub/Sub setup
    # Install and authenticate
    openclaw skills install gmail
    openclaw skills gmail auth
    
    # Enable push notifications
    openclaw skills gmail enable-push \
      --project-id your-gcp-project \
      --topic-name openclaw-gmail-events

    Once connected, the agent receives a notification within seconds of a new email and can take action — summarize, categorize, draft a reply, or route based on sender rules.

    Building Multi-Step Workflows

    Skills can be chained. The agent handles chaining based on its system prompt and the task you give it. Example prompts:

    Research-to-document: "Search for latest news about [topic], find the 3 most relevant articles using the browser skill, summarize each, and save to Notion."

    Issue triage: "Check GitHub notifications for new issues, categorize each as bug/feature/question, draft a response, and show me the drafts before posting."

    Server incident: "Check which Docker containers are running/stopped. Pull logs from stopped containers. Check disk and memory. Summarize the likely cause."

    Monitoring Skill Activity

    Track skill activity
    # View recent skill invocations
    openclaw skills log --tail 50
    
    # View logs for a specific skill
    openclaw skills log --skill gmail --tail 20
    
    # View outbound network requests
    openclaw skills log --outbound --tail 50
    Automated skill audit
    openclaw cron add \
      --name "skill-audit" \
      --schedule "0 */6 * * *" \
      --agent personal-agent \
      --channel telegram \
      --prompt "Review skill activity logs for the last 6 hours. Flag unexpected outbound requests, repeated errors, or unusual patterns. Only report if something looks wrong."