Croniq

Distributed cron that just works.

Single binary. SQLite default. Production-ready retries.

docker run -p 4000:4000 -e CRONIQ_ADMIN_PASSWORD=changeme ghcr.io/nuetzliches/croniq

Built for reliability

Everything you need to replace fragile crontabs with something you can trust.

Single Binary

One Docker pull or cargo install. No JVM, no cluster, no dependencies. SQLite embedded by default, Postgres when you scale.

Retries + Dead Letter

Exponential, linear, or fixed backoff with jitter. Failed jobs land in a dead letter queue for inspection and one-click replay.

Croniqfile DSL

Human-readable scheduling config. Validate, format, compile, and migrate from existing crontabs. Infrastructure as code for your schedules.

Pull-Based Runners

Runners poll for work via HTTP long-poll. Scale independently. Built-in capability routing and lease management.

React Dashboard

Jobs, runners, executions, dead letters. Live status via SSE, log viewer, and scheduling controls out of the box.

MCP Server

12 tools for AI assistant integration. Manage jobs, observe queues, trigger runs from Claude, Cursor, or any MCP client.

Schedules as code

Define jobs, calendars, and retry policies in a human-readable config file.

defaults {
  timezone Europe/Vienna
  retry exponential { max_attempts 3; base 2s; cap 30s }
  timeout 5m
}

calendar business-days {
  include weekly monday tuesday wednesday thursday friday
  exclude annual 01-01 12-25 12-26
}

job billing:invoice {
  every weekday at 02:00 { calendar business-days }
  runner { require billing }
  timeout 15m
}

job etl:sync {
  every 15 minutes
}

Up and running in 60 seconds

Zero to scheduled jobs — no config files needed.

1

Install

cargo install croniq
2

Quick start

croniq quickstart
3

Open the dashboard

http://localhost:4000