$git clone https://github.com/dagucloud/daguDagu is a lightweight, self-contained alternative to Airflow or Cron with Web UI. It supports Linux / Mac / Windows. Define DAGs in a simple, declarative YAML format. It natively supports shell commands, Docker containers, K
| 1 | <div align="center"> |
| 2 | <img src="./assets/images/hero-logo.webp" width="480" alt="Dagu Logo"> |
| 3 | <p> |
| 4 | <a href="https://discord.gg/gpahPUjGRk">Community</a> |
| 5 | </p> |
| 6 | </div> |
| 7 | |
| 8 | <h1>Dagu</h1> |
| 9 | |
| 10 | Dagu is a local-first workflow engine for ops automation and AI-assisted operations. It is open source and self-hostable: a single binary with a built-in Web UI, no external database or message broker, running on Linux / Mac / Windows. Define [DAGs](https://en.wikipedia.org/wiki/Directed_acyclic_graph) in a declarative YAML format. It natively supports shell commands, Docker containers, Kubernetes Jobs, remote commands via SSH, external coding-agent CLIs through `harness.run`, and more through Dagu Actions. |
| 11 | |
| 12 | Dagu turns existing scripts, runbooks, and agent-driven jobs into production workflows with scheduling, retries, approvals, and run history. It runs where your data and credentials live: on-prem, air-gapped, edge, or cloud, and scales from a single node to a distributed worker fleet. |
| 13 | |
| 14 | **Highlights:** |
| 15 | |
| 16 | - Single binary file installation. |
| 17 | - Declarative YAML format for defining DAGs. |
| 18 | - Web UI for visually managing, retrying, and monitoring pipelines. |
| 19 | - Use existing scripts or tools without any modifications. |
| 20 | - Self-contained, with no need for a DBMS. |
| 21 | - Built-in MCP support for AI agents to manage workflows. |
| 22 | - Run external coding-agent CLIs through `harness.run` when workflows need AI assistance. |
| 23 | |
| 24 | ## Quick Look |
| 25 | |
| 26 | For a quick look at how workflows are defined, see the examples. |
| 27 | |
| 28 | <div align="center"> |
| 29 | <img src="./assets/images/dagu-demo.gif" width="720" alt="Dagu demo showing the cockpit kanban view and YAML workflow editing"> |
| 30 | </div> |
| 31 | |
| 32 | | Run Details | Step Logs | |
| 33 | |---|---| |
| 34 | |  |  | |
| 35 | |
| 36 | **Try it live:** [Live Demo](https://dagu-demo-f5e33d0e.dagu.sh) (credentials: `demouser` / `demouser`) |
| 37 | |
| 38 | ## Why Dagu? |
| 39 | |
| 40 | ```sh |
| 41 | Traditional Orchestrator Dagu |
| 42 | ┌────────────────────────┐ ┌──────────────────┐ |
| 43 | │ Web Server │ │ │ |
| 44 | │ Scheduler │ │ dagu start-all │ |
| 45 | │ Worker(s) │ │ │ |
| 46 | │ PostgreSQL │ └──────────────────┘ |
| 47 | │ Redis / RabbitMQ │ Single binary. |
| 48 | │ Python Runtime │ Self-hosted. |
| 49 | └────────────────────────┘ Adds scheduling, retries, and approvals around existing automation. |
| 50 | 6+ services to manage |
| 51 | ``` |
| 52 | |
| 53 | ## Performance |
| 54 | |
| 55 | Dagu stores state in local files and reaches production throughput without external services. |
| 56 | |
| 57 | - **Throughput:** A single machine can run thousands of workflow runs per day. Actual capacity depends on CPU, memory, disk, and workflow shape. |
| 58 | - **Load control:** Queues, concurrency limits, and resource limits control how many runs execute at once and where they run. |
| 59 | - **Scale out:** Distributed workers spread execution across machines when one node is not enough. |
| 60 | |
| 61 | ## Real-World Use Cases |
| 62 | |
| 63 | | Use Case | How Dagu Helps | |
| 64 | | --- | --- | |
| 65 | | ETL and data operations | Turn data extraction scripts, SQL queries, dbt commands, and data-processing runbooks into observable pipelines with durable execution. | |
| 66 | | Legacy scripts and scheduled jobs | Turn complex jobs with interdependencies into maintainable DAGs with a UI, automatic logging, retries, and notifications instead of opaque cron jobs and bash scripts. | |
| 67 | | Media conversion | Run `ffmpeg` for video transcoding and format conversion. Thanks to Dagu's file-backed nature, workers can run heavy conversions in parallel without single machine bottlenecks or external databases. | |
| 68 | | Infrastructure and server automation | Run any command or script over SSH on remote servers, keeping logs, results, and notifications in one place. | |
| 69 | | GitHub-driven workflows | Trigger workflows from GitHub events. This is useful for running automation on private infrastructure without exposing your servers to the public internet. |