DocumentationSearch docs
  1. 01Getting started
  2. 02Next.js and Vercel
  3. 03Node servers and scripts
  4. More JavaScript platforms

    1. 04SvelteKit
    2. 05Nuxt and Nitro
    3. 06React Router and Remix
    4. 07NestJS
    5. 08Strapi
    6. 09Netlify
    7. 10Firebase
    8. 11Convex
    9. 12Trigger.dev
    10. 13Inngest
    11. 14Cloudflare Workers
    12. 15Supabase and pg_cron
  5. Ruby

    1. 16Ruby on Rails
    2. 17Ruby
  6. Python

    1. 18Django
    2. 19Celery
    3. 20Python
  7. PHP

    1. 21Laravel
    2. 22Symfony
    3. 23WordPress
    4. 24Drupal
    5. 25Craft CMS
    6. 26PHP
  8. Go

    1. 27Go
    2. 28Go schedulers
  9. Rust

    1. 29Rust
    2. 30Rust schedulers
  10. Elixir

    1. 31Elixir
    2. 32Elixir schedulers
  11. Java

    1. 33Java
    2. 34Java schedulers
  12. .NET

    1. 35.NET
    2. 36.NET schedulers
  13. Reference

    1. 37Schedules, grace, and timeouts
    2. 38What it catches
    3. 39Alerts
    4. 40AI triage
    5. 41Stores
    6. 42Dashboard and API
    7. 43MCP server
    8. 44Agent skill
    9. 45TypeScript API reference
    10. 46Limits and design notes
    11. 47Environment variables
    12. 48Stability
    13. 49Deprecations

Agent skill

Agent skill

The repository ships skills/cronwatch/SKILL.md, a skill for Claude Code, Codex, Cursor, and the other agents that read the same format. It is listed on skills.sh. With it installed, asking for "monitor this cron job" or "why did the nightly job fail" gets a workflow instead of a guess.

Install

With the skills command, which asks which agents to install it for and whether to install it in the project or for every project:

npx skills add cronwatchdev/cronwatch

Or, for Claude Code alone, copy the file into a project or your user skills:

# in a project
mkdir -p .claude/skills
curl -sL https://raw.githubusercontent.com/cronwatchdev/cronwatch/main/skills/cronwatch/SKILL.md \
  -o .claude/skills/cronwatch/SKILL.md --create-dirs

# or for every project
curl -sL https://raw.githubusercontent.com/cronwatchdev/cronwatch/main/skills/cronwatch/SKILL.md \
  -o ~/.claude/skills/cronwatch/SKILL.md --create-dirs

What it teaches

Adding monitoring. Find where the job runs, pick the store the app already has, declare the job once with its real schedule and timezone, wrap the work, mount the routes, make sure something calls the check, add a channel. It tells the agent to ask before adding dependencies and to keep job names stable. It covers every language CronWatch has: TypeScript, and in a Ruby, Python, PHP, Go, Rust, Elixir, Java, or .NET app it uses that language’s package instead, with its install, client, and store, how to wrap a job, the check, the dashboard, the handler for a platform that calls a URL, and the channels. In a Rails app, say, that is the install generator, cronwatch in ActiveJob and Sidekiq classes (or schedule: :from_scheduler), Cronwatch::CheckJob on the scheduler, and Cronwatch::Web mounted in the routes; in WordPress, Laravel, Symfony, Drupal, or Craft CMS, and with the Go, Rust, Elixir, Java, and .NET schedulers, the integration that watches jobs with little or no code.

Investigating. With the MCP server configured: list jobs, read the failing run’s error and output before changing code, fix the cause rather than the monitor, silence only during a known fix, and confirm recovery after deploying.

The vocabulary. What missed, failed, stuck, slow, over budget, and recovered mean, so the agent explains an alert correctly.

Pair it with the MCP server and the agent can go from "the digest didn’t arrive" to a pull request with the fix and a confirmation that the next run recovered.