Single binary. Zero config observability. Every run logged, every failure caught. Never wonder if your job ran again.
Your jobs run in silence. When they fail, nobody knows. When they succeed, there's no proof. You built monitoring around cron instead of replacing it.
Job crashes at 3am. No alert, no log, no trace. You find out Monday when the database is 3 days stale.
Works in your shell. Fails in cron. Because cron runs with a minimal PATH and no shell profile. Every. Single. Time.
Network blip at 2am? Job fails. Cron won't retry. Next attempt: tomorrow. Hope it works then.
Is that every 5 minutes or at minute 5? Quick — what's 0 */3 1,15 * 2? Exactly.
Long-running job still going when the next instance fires. Now you have two. Then three. Then your disk is full.
Did the backup run last Tuesday? How long did it take? What was the output? Nobody knows. It's gone.
Same jobs. Same server. Completely different experience.
kron status — instant overviewkron logs — full stdout/stderrNo SaaS. No YAML. No Kubernetes. Just a binary that does its job and tells you about it.
Every run logged to SQLite. Exit codes, duration, stdout, stderr. Query with kron history and kron logs.
Slack, Telegram, webhooks. Get notified on failure, timeout, or any exit code. No external monitoring needed.
Write every day at 2am instead of 0 2 * * *. Standard cron syntax still works too.
kron test <job> runs your job immediately without recording. Validate before deploying.
One file. No runtime. No dependencies. cargo install kron or download the binary. Done in seconds.
kron import reads your existing crontab. Pick which jobs to migrate, or --all to import everything.
Jobs run with your actual shell environment. No more PATH surprises. Snapshot env per job with --capture-env.
Written in Rust. 7.4MB binary. ~7ms startup. Low memory footprint. Runs on the cheapest VPS you have.
AI agents need tools they can call, parse, and reason about. kron was designed CLI-first — which means it's agent-first too.
Agents write kron add "every day at 2am" ./backup.sh — no cron syntax to hallucinate. Status and history return clean, parseable output.
Each job is a single TOML file. Agents can create, modify, and version-control job definitions without fragile regex on a monolithic crontab.
add, run, test, status, logs, remove — small, predictable commands that agents can chain into workflows. Exit codes tell the full story.
No SDKs. No API keys. Just shell access — the universal agent interface.
Your scheduler shouldn't eat resources. kron is written in Rust — memory-safe, blazing fast, and compiled to a single static binary. No runtime. No garbage collector. No surprises.
Runs on the cheapest $5 VPS. Ships as a single binary. cargo install kron and you're done.
Everything you need, nothing you don't.
Works on Linux and macOS. Single binary, no dependencies.