A batteries-included workflow engine that doesn't get in your way.

|

Define workflows in simple YAML, execute them anywhere with a single binary, compose complex pipelines from reusable sub-workflows, and distribute tasks across workers. All this without requiring databases, message brokers, or code changes to your existing scripts.

# Get started instantly
$curl -L https://raw.githubusercontent.com/dagu-org/dagu/main/scripts/installer.sh | sh
✓ dagu installed successfully
$dagustart-all
✓ Web UI ready at http://localhost:8080
Powerful
Enterprise ready
Portable
Run anywhere
Local-First
No vendor lock-in

Compose anything in YAML

Local scripts, remote commands, containers. All unified in simple, readable workflows.

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

steps:
  - name: local script
    command: python data_extract.py

  - name: remote command
    executor: ssh
    command: backup_database.sh

  - name: docker container
    executor: docker
    command: python:3.11 python process.py

Air-Gapped Ready

Works offline and in isolated environments. No database, no external services, no internet required.

Universal Execution

Run anything: local scripts, remote SSH commands, Docker containers, HTTP calls, and more.

Instant Setup

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

A Powerful, Portable, Local-First Workflow Engine

Packed with production-ready features in a single binary.

Quickstart

1

Install Dagu

Binary
$ curl -L https://raw.githubusercontent.com/dagu-org/dagu/main/scripts/installer.sh | bash
✓ Installed to /usr/local/bin/dagu
2

Create a workflow

Terminal
$ cat > hello.yaml << EOF
# Your first workflow
steps:
- echo "Hello from dagu!"
- ls -la
EOF
✓ hello.yaml created
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 our community! 👋

Share ideas, request features, showcase use cases, report bugs, or get help from the community