Lightweight workflow engine
Run production workflows without adopting a heavy platform.
Dagu turns shell scripts, containers, SSH tasks, HTTP calls, and agent CLIs into scheduled YAML workflows with retries, logs, queues, and a web UI.
name: nightly-ops
schedule: "0 2 * * *"
steps:
- name: extract
command: python scripts/extract.py
- name: transform
command: ./bin/transform
depends: extract
retryPolicy:
limit: 3
- name: notify
command: ./scripts/slack-success.sh
depends: transformSingle self-hosted binary
No external database or broker required
YAML workflows that stay readable in git
Local, queued, and distributed execution modes
Built for the operational middle
Most teams do not need a data platform to schedule scripts. They need dependency order, retries, output capture, history, and a way to rerun failed steps without SSHing into a server.
- Schedule existing scripts without rewriting them into a framework.
- Keep workflow definitions in YAML so code review stays simple.
- Start on one host and move to workers only when the workload needs it.
Small runtime, serious controls
Dagu keeps the runtime shape small while still providing the controls teams expect once jobs matter.
- Retries, dependencies, timeouts, logs, and status history.
- Web UI for inspection, manual runs, and operational visibility.
- Executors for commands, Docker, HTTP, SSH, sub-DAGs, and agent steps.
A natural fit for AI agent work
AI agents already operate through commands and CLIs. Dagu gives those commands a scheduler, dependency graph, retry policy, and audit trail.
- Run Claude, Codex, Gemini, or another agent CLI inside a workflow step.
- Put human approval, validation, and publishing steps around agent output.
- Swap models and agent CLIs without moving the orchestration layer.
Why teams choose Dagu
FAQ
Practical questions before adopting Dagu
What makes Dagu lightweight?
Dagu runs as a single self-hosted binary and stores workflow state in local files. You do not need to operate a database, broker, or separate control plane to get started.
Can Dagu run existing scripts?
Yes. A Dagu step can run shell commands, binaries, scripts, Docker containers, HTTP requests, SSH commands, and other executors without forcing an application rewrite.
Is Dagu only for local jobs?
No. You can start locally, use queue-based execution, or run distributed coordinator and worker processes when you need to scale beyond one machine.
Start with one workflow.
Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.