croncron
Enables optional failure alert notifications to be sent to Telegram when cron jobs fail or recover, configured via ~/.croncron/config.json.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@croncronschedule my backup script to run every night at 3am"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
croncron
The easiest way to run cron jobs. Plain-English schedules, automatic logs & run history, missed-run detection, and an MCP server so AI agents can manage your jobs. Zero dependencies — one folder of TypeScript that Node ≥23.6 runs directly.
$ croncron add "every 5 minutes" ./backup.sh
✓ backup — every 5 minutes (*/5 * * * *)
runs: ./backup.sh in /Users/you/project
next run in 3m (8/3/2026, 4:05:00 PM)
logs: croncron logs backup · test now: croncron run backupNo cron syntax to remember, no >> /tmp/foo.log 2>&1 boilerplate, no wondering whether it ran.
Why
Raw crontab has six chronic problems — croncron fixes each one:
crontab pain | croncron |
unreadable syntax |
|
no logs without redirect boilerplate | every run's output auto-captured → |
no run history / silent failures |
|
crontab = unowned junk drawer | named jobs in a registry; |
cron's minimal PATH breaks commands | PATH + shell + cwd captured at add time, replayed at run time |
macOS sleep silently skips runs |
|
failures go unnoticed for weeks | native notification (+ optional Telegram) on failure and on recovery |
Your crontab stays yours: croncron manages one clearly marked block and never touches anything outside it. Every real crontab write is backed up to ~/.croncron/backups/ first.
Related MCP server: silentwatch-mcp
Install
npm install -g git+https://github.com/itsnotrwanman/croncron.git
croncron doctor # sanity-check the wiringRequires Node ≥ 23.6. Website: croncron.vercel.app
From a clone: pnpm link --global.
Commands
croncron add "<schedule>" <command...> # --name --cwd --retry N --ping URL --no-notify
croncron edit <name> [--schedule ...] # change anything without rm/re-add
croncron list # schedule · next run · last result · missed-run warnings
croncron run <name> # run right now, streamed
croncron logs <name> [lines]
croncron runs <name> # run history
croncron pause <name> / resume <name>
croncron rm <name>
croncron import [--apply] # adopt existing crontab entries (dry-run by default)
croncron watchdog install|remove|status # 24/7 mode (see below)
croncron catchup # run missed jobs now
croncron notify test · croncron config # failure alerts (macOS built-in, Telegram optional)
croncron doctor # env/wiring checks + macOS caveats
croncron mcp # MCP server on stdioReliability
Alerts on state change only — one notification when a job starts failing, one when it recovers. A failing every-2-minutes job never becomes an alert storm. macOS notifications work out of the box; add Telegram in
~/.croncron/config.json.Retries —
--retry 2re-attempts a failed run (10s apart) before it counts as failed.No overlap — if a run is still going when the next fire comes, the new one is skipped and recorded as skipped (visible in
croncron runs).Monitor pings —
--ping https://hc-ping.com/UUIDhits a healthchecks-style URL after every run (/failon failure), for off-machine monitoring.Bounded disk — logs rotate past ~1 MB, history is trimmed; nothing grows forever.
Watchdog — launchd (macOS) or systemd user timer (Linux) re-runs schedules missed while the machine slept.
Schedules: every 5 minutes · hourly · daily at 9am · weekdays at 9:30 · every monday at 8pm · weekends at 10am · monthly on the 1st at 9am · any raw cron expression.
For AI agents
Claude Code
claude mcp add --scope user croncron -- croncron mcpThen just ask: "schedule my backup script every night at 3am". Tools exposed: cron_add, cron_list, cron_remove, cron_pause, cron_run_now, cron_logs.
Codex CLI (~/.codex/config.toml)
[mcp_servers.croncron]
command = "croncron"
args = ["mcp"]Kimi CLI / any MCP client
{ "mcpServers": { "croncron": { "command": "croncron", "args": ["mcp"] } } }Shell-only agents (no MCP)
Every read/write command takes --json for machine-readable output:
croncron add "every 10 minutes" "curl -s https://api.example.com/ping" --json
croncron list --json # includes nextRun, lastRun, missedLastScheduledRun
croncron run backup --json24/7 mode (the macOS sleep trap)
cron only fires while the machine is awake — a job scheduled during sleep is skipped
forever, silently. croncron watchdog install fixes this with a launchd LaunchAgent
(launchd does run after wake) that calls croncron catchup every 5 minutes:
any enabled job whose last scheduled fire has no run record gets executed once
jobs cron will fire again within 10 minutes are skipped (no duplicate runs)
catch-up runs are marked
catchup: truein history and in the job log
So a daily at 3am backup on a laptop that was closed at 3am runs minutes after you
open the lid, instead of never.
How it works
~/.croncron/jobs.json— the registry (name, schedule, command, cwd, shell, PATH)~/.croncron/logs/<name>.log— every run's output, timestamped~/.croncron/history/<name>.jsonl— one line per run: start, duration, exit codecrontab gets one managed block; each entry calls
croncron exec <name>with absolute paths, so cron's minimal environment doesn't matter
Development
node --test "test/*.test.ts" # 57 tests: parser, crontab block, importer, CLI e2e, MCP over stdioTests run against a sandboxed CRONCRON_HOME and a fake crontab file (CRONCRON_CRONTAB_FILE) — they never touch your real crontab.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
- DazbenchOAuthapp.dazbench
Task management your AI agents can actually run. One line becomes a context-ready task over MCP.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server for scheduling and executing Claude Code CLI tasks via cron expressions, featuring a web dashboard and webhook support. It enables users to dynamically create custom MCP servers, manage recurring AI jobs, and track execution history with token and cost analytics.24MIT
- AlicenseAqualityAmaintenanceAn MCP server that surfaces scheduled-job state and detects silent failures (exit 0 but no useful output) for cron, systemd timers, and OpenClaw schedulers, enabling AI agents to query job health and overdue status directly.627 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceA hosted remote MCP server that lets your AI agent schedule tasks for later — reminders, delayed webhook callbacks, and recurring jobs. Read-only by design.1 npmMIT
- AlicenseNot gradedqualityFmaintenanceMCP server that allows AI coding assistants to schedule deferred tasks such as reminders, shell commands, and AI prompts, executing them as an OS daemon.4 npmMIT