Cronova

Single-binary workflow scheduler

Cronova is a single-binary, self-hosted open-source workflow scheduler. Define DAGs in YAML and get embedded SQLite, a Web Console, live logs, retries, catchup, pools, REST APIs, and MCP without operating a separate scheduler stack.

From cron to reliable workflows

Define versioned YAML DAGs, schedule dependent tasks, inspect live state and logs, and recover failed work.

Architecture

Web UI, REST, MCP and JSON CLI connect to the scheduler. The scheduler dispatches work over gRPC to an executor. SQLite stores metadata and state; logs stay on disk per task instance.

Frequently asked questions

Is Cronova an Apache Airflow alternative?

Yes for teams that need DAGs, retries, catchup, pools, a Web UI, and APIs without operating a Python scheduler stack, external database, and broker. Airflow remains a better fit for very large, provider-heavy Python data platforms.

Do I need a database, JVM, or Python?

Cronova itself does not. The scheduler is one Go binary with embedded SQLite. Your host only needs Python, Java, or database clients when your own tasks use them.

What languages can tasks use?

Cronova supports shell, Python, SQL, JAR, and HTTP tasks. Shell tasks can also invoke Node, Go, Rust binaries, or any command available on the host.

Which platforms are supported?

Linux and macOS on amd64 and arm64. Prebuilt releases are available through GitHub Releases.

What happens to running tasks when the scheduler restarts?

Production deployments can use the decoupled gRPC executor so the scheduler probes and reattaches running work after restart instead of executing it twice.

GitHub