A Lightweight Alternative to Airflow & Cron

A single binary with built-in Web UI. You can run arbitrary workflows without any complex infrastructure.

Quick Start
# Get started in seconds
$ curl -L https://dagu.run | bash
$ dagu start-all
✓ Web UI ready at http://localhost:8080

Simple as it should be

Define complex workflows in simple YAML. No Python classes, no boilerplate.

workflow.yaml
schedule: "0 0 * * *" # Runs at 00:00 everyday

steps:
  - echo "Hello, dagu!"
  - echo "This is a second step"

Zero Dependencies

Single binary with no external database or message broker required. Works everywhere.

Visual Workflows

Modern web UI with DAG visualization, dependencies, retries, and centralized monitoring.

Instant Setup

Download, run, done. Start orchestrating workflows in minutes with sensible defaults.

Quickstart

1

Install Dagu

npm
$ npm i -g dagu
✓ Installed dagu@latest
2

Create a workflow

hello.yaml
# Your first workflow
steps:
  - echo "Hello from dagu!"
  - ls -la
3

Run it

Terminal
$ dagu start hello.yaml
⏳ hello running...
✓ hello finished
Hello from dagu!
⏳ list running...
✓ list finished
total 16
-rw-r--r-- 1 user staff 123 Jul 30 10:15 hello.yaml
drwxr-xr-x 3 user staff 96 Jul 30 10:14 .dagu
✓ Workflow completed successfully
4

Explore the Web UI

dagu includes a modern web interface for monitoring and managing workflows.

Terminal
$ dagu start-all
✓ Server started at http://localhost:8080
⚡ Web UI: Real-time monitoring, visual DAG view, execution history

Architecture

Interfaces

CLI

dagu start workflow.yaml

Web UI

Real-time monitoring

REST API

Full programmatic control

Core Components

Scheduler

Cron expressions

Timezone aware

Agent, Worker

Separated process

Parallel, Distributed execution

Executor

Shell, Docker, SSH

HTTP, jq

File-Based Storage

Workflows

Simple YAML format

Logs

Structured output

Automatically cleaned-up

History

Execution history

Simple JSON format

Join the community to develop Dagu