dagucloud/dagu
Local-first workflow engine for teams whose main work isn't orchestration. Declarative YAML over your scripts, SSH commands, containers, and AI agents; keep workflows separate from business logic. One binary, no database. Airflow alternative.
What it solves
Dagu is a local-first workflow engine designed for teams that need to automate operations without the overhead of managing complex orchestration platforms. It replaces opaque cron jobs and heavy frameworks like Airflow or Temporal by allowing users to turn existing scripts, containers, and runbooks into production-ready pipelines with scheduling, retries, and visual monitoring.
How it works
Workflows are defined as Directed Acyclic Graphs (DAGs) using a declarative YAML format. Dagu operates as a single binary that includes a built-in Web UI and requires no external database or message broker. It can run in standalone mode on a single machine or scale out using a coordinator and distributed workers via gRPC. It supports executing shell commands, Docker containers, Kubernetes Jobs, and remote commands via SSH, and integrates with AI agents through a built-in Model Context Protocol (MCP) server and a specific harness for running coding-agent CLIs.
Who it’s for
It is built for operations teams, data engineers, and developers who have existing automation scripts and want to add observability, dependency management, and scheduling without rewriting their logic into a specific SDK or managing a complex infrastructure stack.
Highlights
- Single Binary Installation: Self-contained deployment with no external DBMS required.
- AI Agent Integration: Built-in MCP server and
harness.runaction for integrating AI coding agents into workflows. - Language Agnostic: Works with any existing script or tool via shell, Docker, or Kubernetes.
- Human-in-the-loop: Built-in approval steps for manual intervention within automated pipelines.
- Distributed Scaling: Ability to spread execution across a fleet of workers using labels.
- Secret Management: Secure log masking to prevent credentials from leaking into the UI or logs.